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-thunderx.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-thunderx.c')
| -rw-r--r-- | drivers/gpio/gpio-thunderx.c | 26 | 
1 files changed, 16 insertions, 10 deletions
diff --git a/drivers/gpio/gpio-thunderx.c b/drivers/gpio/gpio-thunderx.c index cc62c6e64103..8521c6aacace 100644 --- a/drivers/gpio/gpio-thunderx.c +++ b/drivers/gpio/gpio-thunderx.c @@ -354,16 +354,22 @@ static int thunderx_gpio_irq_set_type(struct irq_data *d,  	return IRQ_SET_MASK_OK;  } -static void thunderx_gpio_irq_enable(struct irq_data *data) +static void thunderx_gpio_irq_enable(struct irq_data *d)  { -	irq_chip_enable_parent(data); -	thunderx_gpio_irq_unmask(data); +	struct gpio_chip *gc = irq_data_get_irq_chip_data(d); + +	gpiochip_enable_irq(gc, irqd_to_hwirq(d)); +	irq_chip_enable_parent(d); +	thunderx_gpio_irq_unmask(d);  } -static void thunderx_gpio_irq_disable(struct irq_data *data) +static void thunderx_gpio_irq_disable(struct irq_data *d)  { -	thunderx_gpio_irq_mask(data); -	irq_chip_disable_parent(data); +	struct gpio_chip *gc = irq_data_get_irq_chip_data(d); + +	thunderx_gpio_irq_mask(d); +	irq_chip_disable_parent(d); +	gpiochip_disable_irq(gc, irqd_to_hwirq(d));  }  /* @@ -372,7 +378,7 @@ static void thunderx_gpio_irq_disable(struct irq_data *data)   * semantics and other acknowledgment tasks associated with the GPIO   * mechanism.   */ -static struct irq_chip thunderx_gpio_irq_chip = { +static const struct irq_chip thunderx_gpio_irq_chip = {  	.name			= "GPIO",  	.irq_enable		= thunderx_gpio_irq_enable,  	.irq_disable		= thunderx_gpio_irq_disable, @@ -383,8 +389,8 @@ static struct irq_chip thunderx_gpio_irq_chip = {  	.irq_eoi		= irq_chip_eoi_parent,  	.irq_set_affinity	= irq_chip_set_affinity_parent,  	.irq_set_type		= thunderx_gpio_irq_set_type, - -	.flags			= IRQCHIP_SET_TYPE_MASKED +	.flags			= IRQCHIP_SET_TYPE_MASKED | IRQCHIP_IMMUTABLE, +	GPIOCHIP_IRQ_RESOURCE_HELPERS,  };  static int thunderx_gpio_child_to_parent_hwirq(struct gpio_chip *gc, @@ -526,7 +532,7 @@ static int thunderx_gpio_probe(struct pci_dev *pdev,  	chip->set_multiple = thunderx_gpio_set_multiple;  	chip->set_config = thunderx_gpio_set_config;  	girq = &chip->irq; -	girq->chip = &thunderx_gpio_irq_chip; +	gpio_irq_chip_set_chip(girq, &thunderx_gpio_irq_chip);  	girq->fwnode = of_node_to_fwnode(dev->of_node);  	girq->parent_domain =  		irq_get_irq_data(txgpio->msix_entries[0].vector)->domain;  |