spi: spi-rspi: fix build error for the latest shdma driver
PATCH 1/1 spi: spi-rspi: fix build error for the latest shdma driver
Because the latest shdma driver changed, it caused build error in the spi-rspi driver. This patch fixed the build error.
--- drivers/spi/spi-rspi.c | 56 +++++++++++++++++++++++++++++------------------ 1 files changed, 34 insertions(+), 22 deletions(-)
drivers/spi/spi-rspi.c +34 -22
@@ -147,8 +147,6 @@ struct rspi_data {unsigned char spsr;/* for dmaengine */ -struct sh_dmae_slave dma_tx; -struct sh_dmae_slave dma_rx;struct dma_chan *chan_tx;struct dma_chan *chan_rx;int irq;
@@ -663,20 +661,16 @@ static irqreturn_t rspi_irq(int irq, void *_sr)return ret; } -static bool rspi_filter (struct dma_chan *chan,void *filter_param) -{ - chan->private = filter_param; -return true; -} - -static void __devinit rspi_request_dma (struct rspi_data *rspi, -struct platform_device *pdev) +static int __devinit rspi_request_dma (struct rspi_data *rspi, +struct platform_device *pdev) {struct rspi_plat_data *rspi_pd = pdev->dev.platform_data;dma_cap_mask_t mask; +struct dma_slave_config cfg; +int ret;if (!rspi_pd) -return ; +return 0 ;/* The driver assumes no error. */ rspi->dma_width_16bit = rspi_pd->dma_width_16bit;
@@ -684,21 +678,35 @@ static void __devinit rspi_request_dma(struct rspi_data *rspi,if (rspi_pd->dma_rx_id && rspi_pd->dma_tx_id) {dma_cap_zero (mask);dma_cap_set (DMA_SLAVE , mask); - rspi->dma_rx.slave_id = rspi_pd->dma_rx_id; - rspi->chan_rx =dma_request_channel (mask, rspi_filter, - &rspi->dma_rx); -if (rspi->chan_rx) -dev_info (&pdev->dev,"Use DMA when rx.\n" ); + rspi->chan_rx =dma_request_channel (mask, shdma_chan_filter, + (void *)rspi_pd->dma_rx_id); +if (rspi->chan_rx) { + cfg.slave_id = rspi_pd->dma_rx_id; + cfg.direction =DMA_DEV_TO_MEM ; + ret =dmaengine_slave_config (rspi->chan_rx, &cfg); +if (!ret) +dev_info (&pdev->dev,"Use DMA when rx.\n" ); +else +return ret; + } }if (rspi_pd->dma_tx_id) {dma_cap_zero (mask);dma_cap_set (DMA_SLAVE , mask); - rspi->dma_tx.slave_id = rspi_pd->dma_tx_id; - rspi->chan_tx =dma_request_channel (mask, rspi_filter, - &rspi->dma_tx); -if (rspi->chan_tx) -dev_info (&pdev->dev,"Use DMA when tx\n" ); + rspi->chan_tx =dma_request_channel (mask, shdma_chan_filter, + (void *)rspi_pd->dma_tx_id); +if (rspi->chan_tx) { + cfg.slave_id = rspi_pd->dma_tx_id; + cfg.direction =DMA_MEM_TO_DEV ; + ret =dmaengine_slave_config (rspi->chan_tx, &cfg); +if (!ret) +dev_info (&pdev->dev,"Use DMA when tx\n" ); +else +return ret; + } } + +return 0 ; } static void __devexit rspi_release_dma(struct rspi_data *rspi)
@@ -788,7 +796,11 @@ static int __devinit rspi_probe(struct platform_device *pdev) } rspi->irq = irq; -rspi_request_dma (rspi, pdev); + ret =rspi_request_dma (rspi, pdev); +if (ret <0 ) { +dev_err (&pdev->dev,"rspi_request_dma failed.\n" ); + goto error4; + } ret =spi_register_master (master);if (ret <0 ) {
Signature · 1 line
1.7.1
Quoted 4 lines · Yoshihiro
Because the latest shdma driver changed, it caused build error in the spi-rspi driver. This patch fixed the build error.
Signed-off-by Yoshihiro Shimoda <[email protected]>
Hi Shimoda-san,
could you let me know what the merge-status of this patch is?
A message that is not in the archive (sent off-list or not yet received): 20120827082801.GB29274-/[email protected]
Quoted 3 lines · Simon Horman
could you let me know what the merge-status of this patch is?
Hi Simon-san,
The patch needs Grant's review. So, the patch is not merged to his repository yet.
Best regards,
Yoshihiro Shimoda
Mark Brown
AppliedQuoted 2 lines · Yoshihiro
Because the latest shdma driver changed, it caused build error in the spi-rspi driver. This patch fixed the build error.
Applied, thanks. This should really have been done as part of the shdma update...