Message ID | 20220926093047.1699027-1-linus.walleij@linaro.org |
---|---|
State | New |
Headers | show |
Series | gpio: tc3589x: Make irqchip immutable | expand |
On Mon, 26 Sep 2022 10:30:47 +0100, Linus Walleij <linus.walleij@linaro.org> wrote: > > This turns the Toshiba tc3589x gpio irqchip immutable. > > Cc: Marc Zyngier <maz@kernel.org> > Signed-off-by: Linus Walleij <linus.walleij@linaro.org> > --- > drivers/gpio/gpio-tc3589x.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpio/gpio-tc3589x.c b/drivers/gpio/gpio-tc3589x.c > index 443fe975bf13..f9edb720710a 100644 > --- a/drivers/gpio/gpio-tc3589x.c > +++ b/drivers/gpio/gpio-tc3589x.c > @@ -244,13 +244,15 @@ static void tc3589x_gpio_irq_unmask(struct irq_data *d) > tc3589x_gpio->regs[REG_DIRECT][regoffset] &= ~mask; > } > > -static struct irq_chip tc3589x_gpio_irq_chip = { > +static const struct irq_chip tc3589x_gpio_irq_chip = { > .name = "tc3589x-gpio", > .irq_bus_lock = tc3589x_gpio_irq_lock, > .irq_bus_sync_unlock = tc3589x_gpio_irq_sync_unlock, > .irq_mask = tc3589x_gpio_irq_mask, > .irq_unmask = tc3589x_gpio_irq_unmask, Don't you need to update these two methods with the callbacks into the gpiolib core code? Thanks, M.
diff --git a/drivers/gpio/gpio-tc3589x.c b/drivers/gpio/gpio-tc3589x.c index 443fe975bf13..f9edb720710a 100644 --- a/drivers/gpio/gpio-tc3589x.c +++ b/drivers/gpio/gpio-tc3589x.c @@ -244,13 +244,15 @@ static void tc3589x_gpio_irq_unmask(struct irq_data *d) tc3589x_gpio->regs[REG_DIRECT][regoffset] &= ~mask; } -static struct irq_chip tc3589x_gpio_irq_chip = { +static const struct irq_chip tc3589x_gpio_irq_chip = { .name = "tc3589x-gpio", .irq_bus_lock = tc3589x_gpio_irq_lock, .irq_bus_sync_unlock = tc3589x_gpio_irq_sync_unlock, .irq_mask = tc3589x_gpio_irq_mask, .irq_unmask = tc3589x_gpio_irq_unmask, .irq_set_type = tc3589x_gpio_irq_set_type, + .flags = IRQCHIP_IMMUTABLE, + GPIOCHIP_IRQ_RESOURCE_HELPERS, }; static irqreturn_t tc3589x_gpio_irq(int irq, void *dev) @@ -321,7 +323,7 @@ static int tc3589x_gpio_probe(struct platform_device *pdev) tc3589x_gpio->chip.base = -1; girq = &tc3589x_gpio->chip.irq; - girq->chip = &tc3589x_gpio_irq_chip; + gpio_irq_chip_set_chip(girq, &tc3589x_gpio_irq_chip); /* This will let us handle the parent IRQ in the driver */ girq->parent_handler = NULL; girq->num_parents = 0;
This turns the Toshiba tc3589x gpio irqchip immutable. Cc: Marc Zyngier <maz@kernel.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> --- drivers/gpio/gpio-tc3589x.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)