Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Revert "gpio: pxa: Make irq_chip immutable"

This reverts commit 20117cf426b6 ("gpio: pxa: Make irq_chip immutableas")
as it caused a regression on samsung coreprimevelte and we've not been
able to fix it so far.

Cc: stable@vger.kernel.org # v6.16
Fixes: 20117cf426b6 ("gpio: pxa: Make irq_chip immutableas")
Reported-by: Duje Mihanović <duje@dujemihanovic.xyz>
Closes: https://lore.kernel.org/all/3367665.aeNJFYEL58@radijator/
Tested-by: Duje Mihanović <duje@dujemihanovic.xyz>
Link: https://lore.kernel.org/r/20250801071858.7554-1-brgl@bgdev.pl
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

+1 -7
+1 -7
drivers/gpio/gpio-pxa.c
··· 499 499 gfer = readl_relaxed(base + GFER_OFFSET) & ~GPIO_bit(gpio); 500 500 writel_relaxed(grer, base + GRER_OFFSET); 501 501 writel_relaxed(gfer, base + GFER_OFFSET); 502 - 503 - gpiochip_disable_irq(&pchip->chip, gpio); 504 502 } 505 503 506 504 static int pxa_gpio_set_wake(struct irq_data *d, unsigned int on) ··· 518 520 unsigned int gpio = irqd_to_hwirq(d); 519 521 struct pxa_gpio_bank *c = gpio_to_pxabank(&pchip->chip, gpio); 520 522 521 - gpiochip_enable_irq(&pchip->chip, gpio); 522 - 523 523 c->irq_mask |= GPIO_bit(gpio); 524 524 update_edge_detect(c); 525 525 } 526 526 527 - static const struct irq_chip pxa_muxed_gpio_chip = { 527 + static struct irq_chip pxa_muxed_gpio_chip = { 528 528 .name = "GPIO", 529 529 .irq_ack = pxa_ack_muxed_gpio, 530 530 .irq_mask = pxa_mask_muxed_gpio, 531 531 .irq_unmask = pxa_unmask_muxed_gpio, 532 532 .irq_set_type = pxa_gpio_irq_type, 533 533 .irq_set_wake = pxa_gpio_set_wake, 534 - .flags = IRQCHIP_IMMUTABLE, 535 - GPIOCHIP_IRQ_RESOURCE_HELPERS, 536 534 }; 537 535 538 536 static int pxa_gpio_nums(struct platform_device *pdev)