diff options
| author | Dmitry Torokhov <[email protected]> | 2023-08-30 16:06:38 -0700 | 
|---|---|---|
| committer | Dmitry Torokhov <[email protected]> | 2023-08-30 16:06:38 -0700 | 
| commit | 1ac731c529cd4d6adbce134754b51ff7d822b145 (patch) | |
| tree | 143ab3f35ca5f3b69f583c84e6964b17139c2ec1 /drivers/gpio/gpio-cadence.c | |
| parent | 07b4c950f27bef0362dc6ad7ee713aab61d58149 (diff) | |
| parent | 54116d442e001e1b6bd482122043b1870998a1f3 (diff) | |
Merge branch 'next' into for-linus
Prepare input updates for 6.6 merge window.
Diffstat (limited to 'drivers/gpio/gpio-cadence.c')
| -rw-r--r-- | drivers/gpio/gpio-cadence.c | 10 | 
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/gpio/gpio-cadence.c b/drivers/gpio/gpio-cadence.c index 137aea49ba02..3720b90cad10 100644 --- a/drivers/gpio/gpio-cadence.c +++ b/drivers/gpio/gpio-cadence.c @@ -70,6 +70,7 @@ static void cdns_gpio_irq_mask(struct irq_data *d)  	struct cdns_gpio_chip *cgpio = gpiochip_get_data(chip);  	iowrite32(BIT(d->hwirq), cgpio->regs + CDNS_GPIO_IRQ_DIS); +	gpiochip_disable_irq(chip, irqd_to_hwirq(d));  }  static void cdns_gpio_irq_unmask(struct irq_data *d) @@ -77,6 +78,7 @@ static void cdns_gpio_irq_unmask(struct irq_data *d)  	struct gpio_chip *chip = irq_data_get_irq_chip_data(d);  	struct cdns_gpio_chip *cgpio = gpiochip_get_data(chip); +	gpiochip_enable_irq(chip, irqd_to_hwirq(d));  	iowrite32(BIT(d->hwirq), cgpio->regs + CDNS_GPIO_IRQ_EN);  } @@ -138,11 +140,13 @@ static void cdns_gpio_irq_handler(struct irq_desc *desc)  	chained_irq_exit(irqchip, desc);  } -static struct irq_chip cdns_gpio_irqchip = { +static const struct irq_chip cdns_gpio_irqchip = {  	.name		= "cdns-gpio",  	.irq_mask	= cdns_gpio_irq_mask,  	.irq_unmask	= cdns_gpio_irq_unmask, -	.irq_set_type	= cdns_gpio_irq_set_type +	.irq_set_type	= cdns_gpio_irq_set_type, +	.flags		= IRQCHIP_IMMUTABLE, +	GPIOCHIP_IRQ_RESOURCE_HELPERS,  };  static int cdns_gpio_probe(struct platform_device *pdev) @@ -222,7 +226,7 @@ static int cdns_gpio_probe(struct platform_device *pdev)  		struct gpio_irq_chip *girq;  		girq = &cgpio->gc.irq; -		girq->chip = &cdns_gpio_irqchip; +		gpio_irq_chip_set_chip(girq, &cdns_gpio_irqchip);  		girq->parent_handler = cdns_gpio_irq_handler;  		girq->num_parents = 1;  		girq->parents = devm_kcalloc(&pdev->dev, 1,  |