spi: amd: Limit max transfer and message size
[platform/kernel/linux-rpi.git] / drivers / spi / spi-amd.c
index 3cf7609..39dbe99 100644 (file)
@@ -28,6 +28,7 @@
 #define AMD_SPI_RX_COUNT_REG   0x4B
 #define AMD_SPI_STATUS_REG     0x4C
 
+#define AMD_SPI_FIFO_SIZE      70
 #define AMD_SPI_MEM_SIZE       200
 
 /* M_CMD OP codes for SPI */
@@ -245,6 +246,11 @@ static int amd_spi_master_transfer(struct spi_master *master,
        return 0;
 }
 
+static size_t amd_spi_max_transfer_size(struct spi_device *spi)
+{
+       return AMD_SPI_FIFO_SIZE;
+}
+
 static int amd_spi_probe(struct platform_device *pdev)
 {
        struct device *dev = &pdev->dev;
@@ -275,6 +281,8 @@ static int amd_spi_probe(struct platform_device *pdev)
        master->flags = SPI_MASTER_HALF_DUPLEX;
        master->setup = amd_spi_master_setup;
        master->transfer_one_message = amd_spi_master_transfer;
+       master->max_transfer_size = amd_spi_max_transfer_size;
+       master->max_message_size = amd_spi_max_transfer_size;
 
        /* Register the controller with SPI framework */
        err = devm_spi_register_master(dev, master);