diff mbox series

gpio: tc3589x: Make irqchip immutable

Message ID 20220926093047.1699027-1-linus.walleij@linaro.org
State New
Headers show
Series gpio: tc3589x: Make irqchip immutable | expand

Commit Message

Linus Walleij Sept. 26, 2022, 9:30 a.m. UTC
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(-)

Comments

Marc Zyngier Sept. 26, 2022, 9:37 a.m. UTC | #1
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 mbox series

Patch

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;