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. Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
Родитель
ddffeb8c4d
Коммит
0243c53634
|
@ -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) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче