RE: [PATCH v3] mmc: davinci: add support for SDIO irq handling

Nori, Sekhar
2010-12-31T10:18:03Z

On Fri, Dec 31, 2010 at 11:15:20, Nori, Sekhar wrote:
> Hi Sergei,
>
> On Thu, Dec 30, 2010 at 18:12:01, Sergei Shtylyov wrote:
>
> > > diff --git a/drivers/mmc/host/davinci_mmc.c b/drivers/mmc/host/davinci_mmc.c
> > > index b643dde..04c2fa4 100644
> > > --- a/drivers/mmc/host/davinci_mmc.c
> > > +++ b/drivers/mmc/host/davinci_mmc.c
> > [...]
> > > @@ -1209,7 +1267,8 @@ static int __init davinci_mmcsd_probe(struct platform_device *pdev)
> > > host->nr_sg = MAX_NR_SG;
> > >
> > > host->use_dma = use_dma;
> > > - host->irq = irq;
> > > + host->mmc_irq = irq;
> > > + host->sdio_irq = platform_get_irq(pdev, 1);
> > >
> > > if (host->use_dma&& davinci_acquire_dma_channels(host) != 0)
> > > host->use_dma = 0;
> > > @@ -1270,6 +1329,13 @@ static int __init davinci_mmcsd_probe(struct platform_device *pdev)
> > > if (ret)
> > > goto out;
> > >
> > > + if (host->sdio_irq != NO_IRQ) {
> >
> > Note that platform_get_irq() will return -EXDEV if the resource is not
> > present. Perhaps you should check for it...
>
> I checked and got back -ENXIO. arch/arm/include/asm/irq.h suggests NO_IRQ
> as the return value. I guess I will just settle for "host->sdio_irq >= 0"
> to check for a valid IRQ number passed.

Or, request_irq() validates the irq passed anyway so we can as well
depend on the return value of request_irq().

Thanks,
Sekhar