On 26 November 2013 02:11, Linus Walleij <[email protected]> wrote: > This uses the new API for tagging GPIO lines as in use by > IRQs. This enforces a few semantic checks on how the underlying > GPIO line is used. > > Cc: Markus Mayer <[email protected]> > Cc: Christian Daudt <[email protected]>
Please use Christian Daudt <[email protected]>. I fixed the e-mail address in this thread. > Cc: Grygorii Strashko <[email protected]> > Cc: Javier Martinez Canillas <[email protected]> > Signed-off-by: Linus Walleij <[email protected]> > --- > ChangeLog v1->v2: > - Make sure we call .unmask() and .mask() functions from the > .startup() and .shutdown() callbacks so the implicit semantics > are satisfied. > --- > drivers/gpio/gpio-bcm-kona.c | 22 ++++++++++++++++++++++ > 1 file changed, 22 insertions(+) > > diff --git a/drivers/gpio/gpio-bcm-kona.c b/drivers/gpio/gpio-bcm-kona.c > index 72c927dc3be1..3437414eaef2 100644 > --- a/drivers/gpio/gpio-bcm-kona.c > +++ b/drivers/gpio/gpio-bcm-kona.c > @@ -449,12 +449,34 @@ static void bcm_kona_gpio_irq_handler(unsigned int irq, > struct irq_desc *desc) > chained_irq_exit(chip, desc); > } > > +static unsigned int bcm_kona_gpio_irq_startup(struct irq_data *d) > +{ > + struct bcm_kona_gpio *kona_gpio = irq_data_get_irq_chip_data(d); > + > + if (gpio_lock_as_irq(&kona_gpio->gpio_chip, d->hwirq)) > + dev_err(kona_gpio->gpio_chip.dev, > + "unable to lock HW IRQ %lu for IRQ\n", > + d->hwirq); > + bcm_kona_gpio_irq_unmask(d); > + return 0; > +} > + > +static void bcm_kona_gpio_irq_shutdown(struct irq_data *d) > +{ > + struct bcm_kona_gpio *kona_gpio = irq_data_get_irq_chip_data(d); > + > + bcm_kona_gpio_irq_mask(d); > + gpio_unlock_as_irq(&kona_gpio->gpio_chip, d->hwirq); > +} > + > static struct irq_chip bcm_gpio_irq_chip = { > .name = "bcm-kona-gpio", > .irq_ack = bcm_kona_gpio_irq_ack, > .irq_mask = bcm_kona_gpio_irq_mask, > .irq_unmask = bcm_kona_gpio_irq_unmask, > .irq_set_type = bcm_kona_gpio_irq_set_type, > + .irq_startup = bcm_kona_gpio_irq_startup, > + .irq_shutdown = bcm_kona_gpio_irq_shutdown, > }; > > static struct __initconst of_device_id bcm_kona_gpio_of_match[] = { > -- > 1.8.3.1 > I verified that cd-gpio is still working with this change, therefore: Reviewed-by: Markus Mayer <[email protected]> Tested-by: Markus Mayer <[email protected]> -- Markus Mayer Broadcom Landing Team -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
