[PATCH v2 2/3] mmc: omap_hsmmc: Skip platform_get_resource_byname() for dt case

Matt Porter mporter at ti.com
Thu Mar 7 00:56:05 EST 2013


On Wed, Mar 06, 2013 at 07:12:29PM +0530, Balaji T K wrote:
> On Wednesday 06 March 2013 02:43 AM, Matt Porter wrote:
> >From: Santosh Shilimkar <santosh.shilimkar at ti.com>
> >
> >MMC driver probe will abort for DT case because of failed
> >platform_get_resource_byname() lookup. Fix it by skipping resource
> >byname lookup for device tree build.
> >
> >Issue is hidden because hwmod popullates the IO resources which
> >helps to succeed platform_get_resource_byname() and probe.
> >
> 
> Hi Matt,
> Could you please drop this patch from the current series,
> since this patch causes regression on omap3,4 platform
> which are not yet dma dt adapted.
> It is best to send this patch along with Jon Hunter dma dt series,
> which adds dt dma support and mmc dma data. DMA dt series is needed
> any way before hwmod cleanup can happen.

*sigh* ok, I should have never split this stuff out from the am33xx
series. Will do.

-Matt

> >Signed-off-by: Santosh Shilimkar <santosh.shilimkar at ti.com>
> >---
> >  drivers/mmc/host/omap_hsmmc.c |   28 +++++++++++++++-------------
> >  1 file changed, 15 insertions(+), 13 deletions(-)
> >
> >diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
> >index e79b12d..8ae1225 100644
> >--- a/drivers/mmc/host/omap_hsmmc.c
> >+++ b/drivers/mmc/host/omap_hsmmc.c
> >@@ -1896,21 +1896,23 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
> >
> >  	omap_hsmmc_conf_bus_power(host);
> >
> >-	res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "tx");
> >-	if (!res) {
> >-		dev_err(mmc_dev(host->mmc), "cannot get DMA TX channel\n");
> >-		ret = -ENXIO;
> >-		goto err_irq;
> >-	}
> >-	tx_req = res->start;
> >+	if (!pdev->dev.of_node) {
> >+		res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "tx");
> >+		if (!res) {
> >+			dev_err(mmc_dev(host->mmc), "cannot get DMA TX channel\n");
> >+			ret = -ENXIO;
> >+			goto err_irq;
> >+		}
> >+		tx_req = res->start;
> >
> >-	res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "rx");
> >-	if (!res) {
> >-		dev_err(mmc_dev(host->mmc), "cannot get DMA RX channel\n");
> >-		ret = -ENXIO;
> >-		goto err_irq;
> >+		res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "rx");
> >+		if (!res) {
> >+			dev_err(mmc_dev(host->mmc), "cannot get DMA RX channel\n");
> >+			ret = -ENXIO;
> >+			goto err_irq;
> >+		}
> >+		rx_req = res->start;
> >  	}
> >-	rx_req = res->start;
> >
> >  	dma_cap_zero(mask);
> >  	dma_cap_set(DMA_SLAVE, mask);
> >
> 
> _______________________________________________
> devicetree-discuss mailing list
> devicetree-discuss at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/devicetree-discuss


More information about the devicetree-discuss mailing list