Thread (52 messages) 52 messages, 9 authors, 2012-10-09

[RFC PATCH 07/13] mmc: omap_hsmmc: dma_request_slave_channel() support for DT platforms

From: tony@atomide.com (Tony Lindgren)
Date: 2012-09-20 22:16:45
Also in: linux-devicetree, linux-mmc, linux-omap, linux-spi, lkml

* Matt Porter [off-list ref] [120920 07:43]:
quoted hunk ↗ jump to hunk
For platforms with DT populated, use dma_request_slave_channel()
to acquire the DMA channel. For !DT platforms, we fall back to
explicitly passing the omap_dma_filter_fn() to dma_request_channel().
Once all platforms boot from DT, the dma_request_channel() path can
be dropped.

Signed-off-by: Matt Porter <redacted>
---
 drivers/mmc/host/omap_hsmmc.c |   16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index 3a09f93..c82d0ab 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -1923,14 +1923,26 @@ static int __devinit omap_hsmmc_probe(struct platform_device *pdev)
 	dma_cap_zero(mask);
 	dma_cap_set(DMA_SLAVE, mask);
 
-	host->rx_chan = dma_request_channel(mask, omap_dma_filter_fn, &rx_req);
+	if (pdev->dev.of_node)
+		host->rx_chan =
+			dma_request_slave_channel(&pdev->dev, "rx");
+	else
+		host->rx_chan = dma_request_channel(mask,
+						    omap_dma_filter_fn,
+						    &rx_req);
 	if (!host->rx_chan) {
 		dev_err(mmc_dev(host->mmc), "unable to obtain RX DMA engine channel %u\n", rx_req);
 		ret = -ENXIO;
 		goto err_irq;
 	}
 
-	host->tx_chan = dma_request_channel(mask, omap_dma_filter_fn, &tx_req);
+	if (pdev->dev.of_node)
+		host->tx_chan =
+			dma_request_slave_channel(&pdev->dev, "tx");
+	else
+		host->tx_chan = dma_request_channel(mask,
+						    omap_dma_filter_fn,
+						    &tx_req);
 	if (!host->tx_chan) {
 		dev_err(mmc_dev(host->mmc), "unable to obtain TX DMA engine channel %u\n", tx_req);
 		ret = -ENXIO;
Here to the omap_hsmmc.c driver should not need to care about which
way to request the dma channels.

Regards,

Tony
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help