On Fri, 6 Sep 2019 at 06:26, Rashmica Gupta <rashmica.g@xxxxxxxxx> wrote: > > This is in preparation for adding ast2600 support. The ast2600 SoC > requires two instances of the GPIO driver as it has two GPIO > controllers. Each instance needs it's own irqchip. > > Signed-off-by: Rashmica Gupta <rashmica.g@xxxxxxxxx> Reviewed-by: Joel Stanley <joel@xxxxxxxxx> > --- > drivers/gpio/gpio-aspeed.c | 16 +++++++--------- > 1 file changed, 7 insertions(+), 9 deletions(-) > > diff --git a/drivers/gpio/gpio-aspeed.c b/drivers/gpio/gpio-aspeed.c > index b83e23aecd18..16c6eaf70857 100644 > --- a/drivers/gpio/gpio-aspeed.c > +++ b/drivers/gpio/gpio-aspeed.c > @@ -52,6 +52,7 @@ struct aspeed_gpio_config { > */ > struct aspeed_gpio { > struct gpio_chip chip; > + struct irq_chip irqc; > spinlock_t lock; > void __iomem *base; > int irq; > @@ -681,14 +682,6 @@ static void aspeed_gpio_irq_handler(struct irq_desc *desc) > chained_irq_exit(ic, desc); > } > > -static struct irq_chip aspeed_gpio_irqchip = { > - .name = "aspeed-gpio", > - .irq_ack = aspeed_gpio_irq_ack, > - .irq_mask = aspeed_gpio_irq_mask, > - .irq_unmask = aspeed_gpio_irq_unmask, > - .irq_set_type = aspeed_gpio_set_type, > -}; > - > static void set_irq_valid_mask(struct aspeed_gpio *gpio) > { > const struct aspeed_bank_props *props = gpio->config->props; > @@ -1192,7 +1185,12 @@ static int __init aspeed_gpio_probe(struct platform_device *pdev) > > gpio->irq = rc; > girq = &gpio->chip.irq; > - girq->chip = &aspeed_gpio_irqchip; > + girq->chip = &gpio->irqc; > + girq->chip->name = dev_name(&pdev->dev); > + girq->chip->irq_ack = aspeed_gpio_irq_ack; > + girq->chip->irq_mask = aspeed_gpio_irq_mask; > + girq->chip->irq_unmask = aspeed_gpio_irq_unmask; > + girq->chip->irq_set_type = aspeed_gpio_set_type; > girq->parent_handler = aspeed_gpio_irq_handler; > girq->num_parents = 1; > girq->parents = devm_kcalloc(&pdev->dev, 1, > -- > 2.20.1 >