Message ID | CANfBPZ_rS230ziPFTDVUdad_oCHNapLKpdrKst_6RxLDqixm4A@mail.gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Jul 20, 2012 at 2:58 PM, S, Venkatraman <svenkatr@ti.com> wrote: > On Thu, Jul 19, 2012 at 5:02 PM, Tony Lindgren <tony@atomide.com> wrote: >> * Shilimkar, Santosh <santosh.shilimkar@ti.com> [120718 02:49]: >>> >>> "The patch simply make them depend on DMA_OMAP since DMA_OMAP >>> will select DMA_ENGINE automatically" >>> >>> This won't be true if the DMA selection are not done >>> at ARCH_OMAP level as discussed in this thread. >>> >>> Having said that, I think Russell and Tony need to >>> take call on how this needs to be handled. >> >> As the DMA channels can run out, drivers should also work >> without DMA. And building everything as modules should be >> possible for the distro kernels. >> >> So I'd rather not have either select or depends and have >> the drivers fixed. >> > > Ok - I'll work on getting polling mode to work, but as you know it's > not the mode to get the best performance out of the device. > I see that you've also merged the changes to omap2plus_defconfig, which should > get MMC working as before DMA Engine conversion. > > There's a small patch needed to omap_hsmmc to return a non-zero error code > during the probe error path. This will atleast make probe failure > explicit when DMA > is not available. > > Let me know if you want me to post it separately as a patch.. > > diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c > index 2338703..892a046 100644 > --- a/drivers/mmc/host/omap_hsmmc.c > +++ b/drivers/mmc/host/omap_hsmmc.c > @@ -1773,7 +1773,7 @@ static int __devinit omap_hsmmc_probe(struct > platform_device *pdev) > struct mmc_host *mmc; > struct omap_hsmmc_host *host = NULL; > struct resource *res; > - int ret, irq; > + int ret = -ENXIO, irq; > const struct of_device_id *match; > dma_cap_mask_t mask; > unsigned tx_req, rx_req; Please ignore this patch. The correct one was posted by Kevin last week [1]. An additional patch is needed on top of that to fix other error paths, I'll send both now. [1] http://marc.info/?l=linux-omap&m=134196391719430&w=2
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 2338703..892a046 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -1773,7 +1773,7 @@ static int __devinit omap_hsmmc_probe(struct platform_device *pdev) struct mmc_host *mmc; struct omap_hsmmc_host *host = NULL; struct resource *res; - int ret, irq; + int ret = -ENXIO, irq; const struct of_device_id *match; dma_cap_mask_t mask;