Messages in this thread | | | From | David Brownell <> | Subject | Re: [PATCH v5] gpio: driver for PrimeCell PL061 GPIO controller | Date | Tue, 16 Jun 2009 00:42:28 -0700 |
| |
On Monday 15 June 2009, Baruch Siach wrote: > > > > +static unsigned int pl061_irq_startup(unsigned irq) > > > +{ > > > + if (gpio_request(irq_to_gpio(irq), "IRQ") == 0) > > > + pr_warning("%s: warning: GPIO%d has not been requested\n", > > > + __func__, irq_to_gpio(irq)); > > > > No, that's the responsibility of whoever is setting this up. > > The gpio_request() here is only for warning. It is expected to fail. Should I > remove it? Shouldn't there be an is_gpio_requested() as part of gpiolib?
As I said elsewhere: yes, remove it; and no, such a call would be pointless since it's conceptually broken in threaded environments, like inside the Linux kernel.
> > Normally, platform setup code would request the GPIO since it's > > being dedicated to some task on the board ... and then pass the > > gpio_to_irq() value as a device resource, or maybe the GPIO itself > > (if the driver had to deal with GPIOs per se). > > > > Also, irq_to_gpio() can be problematic in some systems; avoid it. > > I use irq_to_gpio() extensively to implement the enable/disable etc. methods > of irq_chip. Is there a way to implement them without irq_to_gpio()?
If it works on your systems, so be it ... it's highly system-specific whether it works. But this driver is not supposed to be system-specific, and shouldn't use it. (And it doesn't need to use it, as noted.)
> > > + > > > + pl061_irq_enable(irq); > > > + > > > + return 0; > > > +} > > > > Remove that gpio_request(), and the irq_to_gpio(), and you get: > > > > Acked-by: David Brownell <dbrownell@users.sourceforge.net> > > Thanks, > > Baruch > > -- > ~. .~ Tk Open Systems > =}------------------------------------------------ooO--U--Ooo------------{= > - baruch@tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il - > >
-- 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/
| |