mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
bcma: gpio: Use irqchip template
This makes the driver use the irqchip template to assign properties to the gpio_irq_chip instead of using the explicit call to gpiochip_irqchip_add(). The irqchip is instead added while adding the gpiochip. Cc: Rafał Miłecki <rafal@milecki.pl> Cc: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Link: https://lore.kernel.org/r/20200722111725.210923-1-linus.walleij@linaro.org
This commit is contained in:
parent
92d26d1abf
commit
a080ecb11a
@ -122,6 +122,7 @@ static irqreturn_t bcma_gpio_irq_handler(int irq, void *dev_id)
|
||||
static int bcma_gpio_irq_init(struct bcma_drv_cc *cc)
|
||||
{
|
||||
struct gpio_chip *chip = &cc->gpio;
|
||||
struct gpio_irq_chip *girq = &chip->irq;
|
||||
int hwirq, err;
|
||||
|
||||
if (cc->core->bus->hosttype != BCMA_HOSTTYPE_SOC)
|
||||
@ -136,15 +137,13 @@ static int bcma_gpio_irq_init(struct bcma_drv_cc *cc)
|
||||
bcma_chipco_gpio_intmask(cc, ~0, 0);
|
||||
bcma_cc_set32(cc, BCMA_CC_IRQMASK, BCMA_CC_IRQ_GPIO);
|
||||
|
||||
err = gpiochip_irqchip_add(chip,
|
||||
&bcma_gpio_irq_chip,
|
||||
0,
|
||||
handle_simple_irq,
|
||||
IRQ_TYPE_NONE);
|
||||
if (err) {
|
||||
free_irq(hwirq, cc);
|
||||
return err;
|
||||
}
|
||||
girq->chip = &bcma_gpio_irq_chip;
|
||||
/* This will let us handle the parent IRQ in the driver */
|
||||
girq->parent_handler = NULL;
|
||||
girq->num_parents = 0;
|
||||
girq->parents = NULL;
|
||||
girq->default_type = IRQ_TYPE_NONE;
|
||||
girq->handler = handle_simple_irq;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -212,13 +211,13 @@ int bcma_gpio_init(struct bcma_drv_cc *cc)
|
||||
else
|
||||
chip->base = -1;
|
||||
|
||||
err = gpiochip_add_data(chip, cc);
|
||||
err = bcma_gpio_irq_init(cc);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
err = bcma_gpio_irq_init(cc);
|
||||
err = gpiochip_add_data(chip, cc);
|
||||
if (err) {
|
||||
gpiochip_remove(chip);
|
||||
bcma_gpio_irq_exit(cc);
|
||||
return err;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user