Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965579Ab3FUK1x (ORCPT ); Fri, 21 Jun 2013 06:27:53 -0400 Received: from bear.ext.ti.com ([192.94.94.41]:43507 "EHLO bear.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750900Ab3FUK1u (ORCPT ); Fri, 21 Jun 2013 06:27:50 -0400 Message-ID: <51C42A71.1090403@ti.com> Date: Fri, 21 Jun 2013 15:56:57 +0530 From: Sourav Poddar User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.28) Gecko/20120313 Thunderbird/3.1.20 MIME-Version: 1.0 To: Mark Brown CC: Joel A Fernandes , Tony Lindgren , Sekhar Nori , Matt Porter , Grant Likely , Rob Herring , Vinod Koul , Benoit Cousson , Russell King , Rob Landley , Andrew Morton , Jason Kridner , Koen Kooi , Devicetree Discuss , Linux OMAP List , Linux ARM Kernel List , Linux DaVinci Kernel List , Linux Kernel Mailing List , Linux Documentation List , Linux MMC List , Linux SPI Devel List , Arnd Bergmann Subject: Re: [PATCH v12 09/11] spi: omap2-mcspi: convert to dma_request_slave_channel_compat() References: <1371762407-24544-1-git-send-email-joelagnel@ti.com> <1371762407-24544-10-git-send-email-joelagnel@ti.com> In-Reply-To: <1371762407-24544-10-git-send-email-joelagnel@ti.com> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4315 Lines: 130 Hi Mark, On Friday 21 June 2013 02:36 AM, Joel A Fernandes wrote: > From: Matt Porter > > Convert dmaengine channel requests to use > dma_request_slave_channel_compat(). This supports the DT case of > platforms requiring channel selection from either the OMAP DMA or > the EDMA engine. AM33xx only boots from DT and is the only user > implementing EDMA so in the !DT case we can default to the OMAP DMA > filter. > > Signed-off-by: Matt Porter > Acked-by: Mark Brown > Signed-off-by: Joel A Fernandes > --- > drivers/spi/spi-omap2-mcspi.c | 64 ++++++++++++++++++++++++++++------------- > 1 file changed, 44 insertions(+), 20 deletions(-) > > diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c > index 86d2158..ca4ab78 100644 > --- a/drivers/spi/spi-omap2-mcspi.c > +++ b/drivers/spi/spi-omap2-mcspi.c > @@ -102,6 +102,9 @@ struct omap2_mcspi_dma { > > struct completion dma_tx_completion; > struct completion dma_rx_completion; > + > + char dma_rx_ch_name[14]; > + char dma_tx_ch_name[14]; > }; > > /* use PIO for small transfers, avoiding DMA setup/teardown overhead and > @@ -830,12 +833,20 @@ static int omap2_mcspi_request_dma(struct spi_device *spi) > dma_cap_zero(mask); > dma_cap_set(DMA_SLAVE, mask); > sig = mcspi_dma->dma_rx_sync_dev; > - mcspi_dma->dma_rx = dma_request_channel(mask, omap_dma_filter_fn,&sig); > + > + mcspi_dma->dma_rx = > + dma_request_slave_channel_compat(mask, omap_dma_filter_fn, > + &sig,&master->dev, > + mcspi_dma->dma_rx_ch_name); > if (!mcspi_dma->dma_rx) > goto no_dma; > > sig = mcspi_dma->dma_tx_sync_dev; > - mcspi_dma->dma_tx = dma_request_channel(mask, omap_dma_filter_fn,&sig); > + mcspi_dma->dma_tx = > + dma_request_slave_channel_compat(mask, omap_dma_filter_fn, > + &sig,&master->dev, > + mcspi_dma->dma_tx_ch_name); > + > if (!mcspi_dma->dma_tx) { > dma_release_channel(mcspi_dma->dma_rx); > mcspi_dma->dma_rx = NULL; > @@ -1256,29 +1267,42 @@ static int omap2_mcspi_probe(struct platform_device *pdev) > goto free_master; > > for (i = 0; i< master->num_chipselect; i++) { > - char dma_ch_name[14]; > + char *dma_rx_ch_name = mcspi->dma_channels[i].dma_rx_ch_name; > + char *dma_tx_ch_name = mcspi->dma_channels[i].dma_tx_ch_name; > struct resource *dma_res; > > - sprintf(dma_ch_name, "rx%d", i); > - dma_res = platform_get_resource_byname(pdev, IORESOURCE_DMA, > - dma_ch_name); > - if (!dma_res) { > - dev_dbg(&pdev->dev, "cannot get DMA RX channel\n"); > - status = -ENODEV; > - break; > - } > + sprintf(dma_rx_ch_name, "rx%d", i); > + if (!pdev->dev.of_node) { > + dma_res = > + platform_get_resource_byname(pdev, > + IORESOURCE_DMA, > + dma_rx_ch_name); > + if (!dma_res) { > + dev_dbg(&pdev->dev, > + "cannot get DMA RX channel\n"); > + status = -ENODEV; > + break; > + } > > - mcspi->dma_channels[i].dma_rx_sync_dev = dma_res->start; > - sprintf(dma_ch_name, "tx%d", i); > - dma_res = platform_get_resource_byname(pdev, IORESOURCE_DMA, > - dma_ch_name); > - if (!dma_res) { > - dev_dbg(&pdev->dev, "cannot get DMA TX channel\n"); > - status = -ENODEV; > - break; > + mcspi->dma_channels[i].dma_rx_sync_dev = > + dma_res->start; > } > + sprintf(dma_tx_ch_name, "tx%d", i); > + if (!pdev->dev.of_node) { > + dma_res = > + platform_get_resource_byname(pdev, > + IORESOURCE_DMA, > + dma_tx_ch_name); > + if (!dma_res) { > + dev_dbg(&pdev->dev, > + "cannot get DMA TX channel\n"); > + status = -ENODEV; > + break; > + } > > - mcspi->dma_channels[i].dma_tx_sync_dev = dma_res->start; > + mcspi->dma_channels[i].dma_tx_sync_dev = > + dma_res->start; > + } > } > > if (status< 0) Acked-by: Sourav Poddar Tested-by: Sourav Poddar This patch can go independently and does not depend on the rest of the series. Can these patch be pulled? -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/