Some masters may have different DMA burst size than hard coded default.
In such case respect the value given by DMA burst size provided via
platform data.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Tested-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Reviewed-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
                                           u32 *threshold)
 {
        struct pxa2xx_spi_chip *chip_info = spi->controller_data;
+       struct driver_data *drv_data = spi_controller_get_devdata(spi->controller);
+       u32 dma_burst_size = drv_data->controller_info->dma_burst_size;
 
        /*
         * If the DMA burst size is given in chip_info we use that,
         * otherwise we use the default. Also we use the default FIFO
         * thresholds for now.
         */
-       *burst_code = chip_info ? chip_info->dma_burst_size : 1;
+       *burst_code = chip_info ? chip_info->dma_burst_size : dma_burst_size;
        *threshold = SSCR1_RxTresh(RX_THRESH_DFLT)
                   | SSCR1_TxTresh(TX_THRESH_DFLT);
 
 
        void *tx_param;
        void *rx_param;
 
+       int dma_burst_size;
+
        int (*setup)(struct pci_dev *pdev, struct pxa_spi_info *c);
 };
 
        rx->dma_dev = &dma_dev->dev;
 
        c->dma_filter = lpss_dma_filter;
+       c->dma_burst_size = 8;
        return 0;
 }
 
        spi_pdata.tx_param = c->tx_param;
        spi_pdata.rx_param = c->rx_param;
        spi_pdata.enable_dma = c->rx_param && c->tx_param;
+       spi_pdata.dma_burst_size = c->dma_burst_size ? c->dma_burst_size : 1;
 
        ssp = &spi_pdata.ssp;
        ssp->phys_base = pci_resource_start(dev, 0);
 
        pdata->is_slave = of_property_read_bool(pdev->dev.of_node, "spi-slave");
        pdata->num_chipselect = 1;
        pdata->enable_dma = true;
+       pdata->dma_burst_size = 1;
 
        return pdata;
 }
 
 struct pxa2xx_spi_controller {
        u16 num_chipselect;
        u8 enable_dma;
+       u8 dma_burst_size;
        bool is_slave;
 
        /* DMA engine specific config */