961-2-pinctrl-rp1-Use-the-correct-per-bank-GPIO-base.patch 1.0 KB

123456789101112131415161718192021222324252627282930
  1. From d11b1d7f7df4bd1a5ab4df35b2a5c8569f2eacbe Mon Sep 17 00:00:00 2001
  2. From: Phil Elwell <[email protected]>
  3. Date: Thu, 4 Apr 2024 10:47:46 +0100
  4. Subject: [PATCH 2/5] pinctrl: rp1: Use the correct per-bank GPIO base
  5. The GPIO start for each bank - min_gpio - must be used in the IRQ
  6. handler.
  7. Signed-off-by: Phil Elwell <[email protected]>
  8. ---
  9. drivers/pinctrl/pinctrl-rp1.c | 4 ++--
  10. 1 file changed, 2 insertions(+), 2 deletions(-)
  11. --- a/drivers/pinctrl/pinctrl-rp1.c
  12. +++ b/drivers/pinctrl/pinctrl-rp1.c
  13. @@ -781,12 +781,12 @@ static void rp1_gpio_irq_handler(struct
  14. ints = readl(pc->gpio_base + bank->ints_offset);
  15. for_each_set_bit(b, &ints, 32) {
  16. - struct rp1_pin_info *pin = rp1_get_pin(chip, b);
  17. + struct rp1_pin_info *pin = rp1_get_pin(chip, bank->min_gpio + b);
  18. writel(RP1_GPIO_CTRL_IRQRESET,
  19. pin->gpio + RP1_SET_OFFSET + RP1_GPIO_CTRL);
  20. generic_handle_irq(irq_linear_revmap(pc->gpio_chip.irq.domain,
  21. - bank->gpio_offset + b));
  22. + bank->min_gpio + b));
  23. }
  24. chained_irq_exit(host_chip, desc);