linux-yocto/drivers/gpio
Artur Weber a6d8655b9c gpio: bcm-kona: Fix GPIO lock/unlock for banks above bank 0
[ Upstream commit de1d0d160f64ee76df1d364d521b2faf465a091c ]

The GPIO lock/unlock functions clear/write a bit to the relevant
register for each bank. However, due to an oversight the bit that
was being written was based on the total GPIO number, not the index
of the GPIO within the relevant bank, causing it to fail for any
GPIO above 32 (thus any GPIO for banks above bank 0).

Fix lock/unlock for these banks by using the correct bit.

Fixes: bdb93c03c5 ("gpio: bcm281xx: Centralize register locking")
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Reviewed-by: Markus Mayer <mmayer@broadcom.com>
Signed-off-by: Artur Weber <aweber.kernel@gmail.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20250206-kona-gpio-fixes-v2-1-409135eab780@gmail.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-02-21 13:49:57 +01:00
..
gpio-74x164.c gpio: 74x164: Enable output pins after registers are reset 2024-03-06 14:45:19 +00:00
gpio-74xx-mmio.c gpio: 74xx-mmio: Use bits instead of plain numbers for flags 2022-07-28 15:47:56 +02:00
gpio-104-dio-48e.c gpio updates for v6.1-rc1 2022-10-08 09:46:29 -07:00
gpio-104-idi-48.c gpio updates for v6.1-rc1 2022-10-08 09:46:29 -07:00
gpio-104-idio-16.c gpio updates for v6.1-rc1 2022-10-08 09:46:29 -07:00
gpio-adnp.c gpio: adnp: Make use of device properties 2022-07-19 09:57:13 +02:00
gpio-adp5520.c
gpio-aggregator.c gpio: aggregator: Fix calling into sleeping GPIO controllers 2022-02-02 11:53:46 +01:00
gpio-altera-a10sr.c gpio: altera-a10sr: Switch to use fwnode instead of of_node 2022-01-24 17:23:15 +02:00
gpio-altera.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-amd-fch.c
gpio-amd8111.c gpio: amd8111: Fix PCI device reference count leak 2022-11-30 17:18:35 +01:00
gpio-amdpt.c gpio: use raw spinlock for gpio chip shadowed data 2022-04-25 12:10:02 +02:00
gpio-arizona.c gpio: Propagate firmware node from a parent device 2021-12-17 17:50:46 +01:00
gpio-aspeed-sgpio.c gpio updates for v5.17 2022-01-11 12:31:35 -08:00
gpio-aspeed.c gpio: aspeed: Use devm_clk api to manage clock source 2024-10-17 15:22:21 +02:00
gpio-ath79.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-bcm-kona.c gpio: bcm-kona: Fix GPIO lock/unlock for banks above bank 0 2025-02-21 13:49:57 +01:00
gpio-bd9571mwv.c
gpio-bd71815.c
gpio-bd71828.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-brcmstb.c gpio: updates for v6.0-rc1 2022-08-04 18:34:05 -07:00
gpio-bt8xx.c
gpio-cadence.c gpio: use raw spinlock for gpio chip shadowed data 2022-04-25 12:10:02 +02:00
gpio-clps711x.c
gpio-creg-snps.c gpio: Setup parent device and get rid of unnecessary of_node assignment 2021-12-17 17:44:19 +01:00
gpio-crystalcove.c gpio: crystalcove: Use -ENOTSUPP consistently 2024-05-17 11:56:09 +02:00
gpio-cs5535.c
gpio-da9052.c
gpio-da9055.c
gpio-davinci.c gpio: davinci: fix lazy disable 2024-10-17 15:22:02 +02:00
gpio-dln2.c gpio: dln2: make irq_chip immutable 2022-06-06 14:09:16 +03:00
gpio-dwapb.c gpio: dwapb: mask/unmask IRQ when disable/enale it 2024-01-01 12:39:07 +00:00
gpio-eic-sprd.c gpio: eic-sprd: Clear interrupt after set the interrupt type 2024-01-31 16:17:11 -08:00
gpio-em.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-en7523.c gpio: Add support for Airoha EN7523 GPIO controller 2022-02-02 10:16:19 +01:00
gpio-ep93xx.c gpio: ep93xx: Fix port F hwirq numbers in handler 2023-02-01 08:34:47 +01:00
gpio-exar.c gpio: exar: set value when external pull-up or pull-down is present 2024-12-14 19:54:01 +01:00
gpio-f7188x.c gpio-f7188x: fix chip name and pin count on Nuvoton chip 2023-06-05 09:26:18 +02:00
gpio-ftgpio010.c gpio: ftgpio010: Make irqchip immutable 2022-09-20 16:10:53 +02:00
gpio-ge.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-gpio-mm.c gpio: gpio-mm: Implement and utilize register structures 2022-07-20 17:44:47 +02:00
gpio-grgpio.c gpio: grgpio: Add NULL check in grgpio_probe 2024-12-14 19:54:24 +01:00
gpio-gw-pld.c gpio: Remove unused local OF node pointers 2021-12-22 10:05:26 +01:00
gpio-hisi.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-hlwd.c gpio: use raw spinlock for gpio chip shadowed data 2022-04-25 12:10:02 +02:00
gpio-htc-egpio.c
gpio-i8255.c gpio: i8255: Introduce the Intel 8255 interface library module 2022-07-20 17:44:36 +02:00
gpio-i8255.h gpio: i8255: Introduce the Intel 8255 interface library module 2022-07-20 17:44:36 +02:00
gpio-ich.c
gpio-idt3243x.c gpio: use raw spinlock for gpio chip shadowed data 2022-04-25 12:10:02 +02:00
gpio-imx-scu.c gpio: imx-scu: add imx-scu GPIO driver 2022-08-31 17:21:23 +02:00
gpio-iop.c
gpio-it87.c
gpio-ixp4xx.c gpio: ixp4xx: Make irqchip immutable 2022-09-13 16:17:45 +02:00
gpio-janz-ttl.c
gpio-kempld.c
gpio-logicvc.c
gpio-loongson.c
gpio-loongson1.c gpio: use raw spinlock for gpio chip shadowed data 2022-04-25 12:10:02 +02:00
gpio-lp873x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_319.RULE 2022-06-10 14:51:36 +02:00
gpio-lp3943.c gpio: lp3943: unsigned to unsigned int cleanup 2022-07-19 09:57:40 +02:00
gpio-lp87565.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_319.RULE 2022-06-10 14:51:36 +02:00
gpio-lpc18xx.c
gpio-lpc32xx.c gpio: Setup parent device and get rid of unnecessary of_node assignment 2021-12-17 17:44:19 +01:00
gpio-madera.c
gpio-max730x.c gpio: max730x: Make __max730x_remove() return void 2021-10-13 19:52:26 +02:00
gpio-max732x.c gpio: max732x: Drop unused support for irq and setup code via platform data 2022-05-05 14:37:17 +02:00
gpio-max3191x.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
gpio-max7300.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
gpio-max7301.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
gpio-max77620.c gpio: max77620: Make the irqchip immutable 2022-05-05 14:56:37 +02:00
gpio-max77650.c
gpio-mb86s7x.c
gpio-mc33880.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
gpio-menz127.c gpio: use raw spinlock for gpio chip shadowed data 2022-04-25 12:10:02 +02:00
gpio-merrifield.c gpio: merrifield: make irq_chip immutable 2022-06-06 14:09:16 +03:00
gpio-ml-ioh.c gpio: ml-ioh: Convert to use managed functions pcim* and devm_* 2022-05-20 19:20:35 +02:00
gpio-mlxbf.c
gpio-mlxbf2.c gpio: mlxbf2: Use generic_handle_irq_safe() 2022-09-19 15:08:38 +02:00
gpio-mm-lantiq.c
gpio-mmio.c gpio: use raw spinlock for gpio chip shadowed data 2022-04-25 12:10:02 +02:00
gpio-mockup.c gpio: mockup: Fix mode of debugfs files 2023-05-30 14:03:18 +01:00
gpio-moxtet.c
gpio-mpc8xxx.c gpio: mpc8xxx: Fix support for IRQ_TYPE_LEVEL_LOW flow_type in mpc85xx 2022-09-07 13:17:23 +02:00
gpio-mpc5200.c
gpio-msc313.c gpio: Remove dynamic allocation from populate_parent_alloc_arg() 2022-07-10 09:30:00 +01:00
gpio-mt7621.c gpio updates for v6.1-rc1 2022-10-08 09:46:29 -07:00
gpio-mvebu.c gpio: mvebu: fix irq domain leak 2023-08-03 10:23:49 +02:00
gpio-mxc.c gpio: mxc: remove dead code after switch to DT-only 2025-02-21 13:49:21 +01:00
gpio-mxs.c gpio: mxs: Fix header comment 2022-06-23 23:18:13 +02:00
gpio-octeon.c
gpio-omap.c gpio: omap: Move PM device over to irq domain 2022-02-09 13:36:53 +00:00
gpio-palmas.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-pca953x.c gpio: pca953x: Improve interrupt support 2025-02-21 13:49:36 +01:00
gpio-pca9570.c gpio: pca9570: add pca9571 support 2022-07-19 09:57:13 +02:00
gpio-pcf857x.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
gpio-pch.c gpio: pch: Change PCI device macros 2022-06-21 18:01:11 +03:00
gpio-pci-idio-16.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-pcie-idio-24.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-pisosr.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_319.RULE 2022-06-10 14:51:36 +02:00
gpio-pl061.c gpio: pl061: Make the irqchip immutable 2022-04-19 15:22:26 +01:00
gpio-pmic-eic-sprd.c gpio: pmic-eic-sprd: Add can_sleep flag for PMIC EIC chip 2023-10-06 14:56:50 +02:00
gpio-pxa.c gpio: pxa: disable pinctrl calls for MMP_GPIO 2023-10-10 22:00:45 +02:00
gpio-raspberrypi-exp.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-rc5t583.c
gpio-rcar.c gpio: rcar: Make the irqchip immutable 2022-05-24 16:35:49 +02:00
gpio-rda.c gpio: Remove unused local OF node pointers 2021-12-22 10:05:26 +01:00
gpio-rdc321x.c
gpio-realtek-otto.c gpio: realtek-otto: switch to 32-bit I/O 2022-08-31 17:46:30 +02:00
gpio-reg.c
gpio-regmap.c gpio: regmap: Switch to use fwnode instead of of_node 2021-12-23 17:14:19 +01:00
gpio-rockchip.c gpio: rockchip: fix OF node leak in probe() 2024-09-12 11:10:29 +02:00
gpio-sa1100.c
gpio-sama5d2-piobu.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-sch.c gpio: sch: make irq_chip immutable 2022-06-06 14:09:16 +03:00
gpio-sch311x.c
gpio-sifive.c gpio: sifive: add missing check for platform_get_irq 2023-06-28 11:12:34 +02:00
gpio-sim.c gpio: sim: pass the GPIO device's software node to irq domain 2023-08-30 16:11:13 +02:00
gpio-siox.c
gpio-sl28cpld.c
gpio-sodaville.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-spear-spics.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_56.RULE (part 2) 2022-06-10 14:51:35 +02:00
gpio-sprd.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-sta2x11.c gpio: sta2x11: fix typo in a comment 2021-12-17 12:26:13 +01:00
gpio-stmpe.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-stp-xway.c
gpio-syscon.c gpio: syscon: Remove usage of syscon_regmap_lookup_by_compatible 2022-05-02 10:41:33 +02:00
gpio-tb10x.c gpio: tb10x: Fix an error handling path in tb10x_gpio_probe() 2023-10-06 14:56:43 +02:00
gpio-tc3589x.c gpio: tc3589x: Make irqchip immutable 2022-10-03 20:56:46 +02:00
gpio-tegra.c gpio: tegra: Convert to immutable irq chip 2022-10-20 13:47:54 +02:00
gpio-tegra186.c gpio: Remove dynamic allocation from populate_parent_alloc_arg() 2022-07-10 09:30:00 +01:00
gpio-thunderx.c gpio: thunderx: Don't directly include asm-generic/msi.h 2022-07-11 09:15:58 +01:00
gpio-timberdale.c gpio: timberdale: Fix potential deadlock on &tgpio->lock 2023-10-25 12:03:09 +02:00
gpio-tn48m.c gpio: Add Delta TN48M CPLD GPIO driver 2022-02-25 09:59:35 +01:00
gpio-tpic2810.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
gpio-tps6586x.c gpio: Propagate firmware node from a parent device 2021-12-17 17:50:46 +01:00
gpio-tps65086.c
gpio-tps65218.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-tps65910.c gpio: Propagate firmware node from a parent device 2021-12-17 17:50:46 +01:00
gpio-tps65912.c
gpio-tps68470.c gpio: tps68470: Make tps68470_gpio_output() always set the initial value 2023-08-03 10:23:48 +02:00
gpio-tqmx86.c gpio: tqmx86: fix broken IRQ_TYPE_EDGE_BOTH interrupt type 2024-06-21 14:35:49 +02:00
gpio-ts4800.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_56.RULE (part 2) 2022-06-10 14:51:35 +02:00
gpio-ts4900.c gpio fixes for v5.18-rc1 2022-04-01 10:26:09 -07:00
gpio-ts5500.c gpio: ts5500: Fix Links to Technologic Systems web resources 2022-03-31 16:44:57 +02:00
gpio-twl4030.c gpio: twl4030: Reorder functions which allows to drop a forward declaraion 2022-09-20 09:02:08 +02:00
gpio-twl6040.c gpio: Propagate firmware node from a parent device 2021-12-17 17:50:46 +01:00
gpio-ucb1400.c gpio: ucb1400: Use proper header 2022-08-31 13:37:32 +02:00
gpio-uniphier.c gpio updates for v5.16 2021-11-08 11:55:21 -08:00
gpio-vf610.c gpio: vf610: mask the gpio irq in system suspend and support wakeup 2023-10-25 12:03:16 +02:00
gpio-viperboard.c gpio: viperboard: remove platform_set_drvdata() call in probe 2021-08-31 11:29:28 +02:00
gpio-virtio.c virtio: wrap config->reset calls 2022-01-14 18:50:52 -05:00
gpio-visconti.c gpio: Remove dynamic allocation from populate_parent_alloc_arg() 2022-07-10 09:30:00 +01:00
gpio-vx855.c
gpio-wcd934x.c
gpio-wcove.c gpio: wcove: Use -ENOTSUPP consistently 2024-05-17 11:56:09 +02:00
gpio-winbond.c gpio: winbond: Fix error code in winbond_gpio_get() 2022-06-23 16:29:55 +02:00
gpio-wm831x.c gpio: Propagate firmware node from a parent device 2021-12-17 17:50:46 +01:00
gpio-wm8350.c
gpio-wm8994.c
gpio-ws16c48.c gpio: ws16c48: Fix off-by-one error in WS16C48 resource region extent 2023-08-16 18:27:29 +02:00
gpio-xgene-sb.c
gpio-xgene.c
gpio-xgs-iproc.c gpio: xgs-iproc: Drop if with an always false condition 2022-07-19 09:57:13 +02:00
gpio-xilinx.c gpio: xilinx: remove excess kernel doc 2025-02-21 13:49:54 +01:00
gpio-xlp.c gpio: xlp: Fix build errors from Netlogic XLP removal 2021-12-03 16:00:40 +01:00
gpio-xra1403.c
gpio-xtensa.c
gpio-zevio.c gpio: zevio: drop of_gpio.h header 2022-05-14 14:41:21 +02:00
gpio-zynq.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-zynqmp-modepin.c gpio: modepin: Enable module autoloading 2024-09-12 11:10:29 +02:00
gpiolib-acpi.c gpiolib: acpi: Ignore touchpad wakeup on GPD G1619-04 2024-01-31 16:17:08 -08:00
gpiolib-acpi.h gpiolib: acpi: Add wake_capable variants of acpi_dev_gpio_irq_get 2022-10-04 15:41:12 +02:00
gpiolib-cdev.c gpiolib: cdev: Fix use after free in lineinfo_changed_notify 2025-01-23 17:17:14 +01:00
gpiolib-cdev.h
gpiolib-devres.c gpiolib: devres: Get rid of unused devm_gpio_free() 2022-07-19 09:56:34 +02:00
gpiolib-legacy.c
gpiolib-of.c gpiolib: fix OOB access in quirk callbacks 2022-09-20 08:30:57 +02:00
gpiolib-of.h
gpiolib-sysfs.c gpiolib: sysfs: Fix error handling on failed export 2023-12-13 18:39:24 +01:00
gpiolib-sysfs.h
gpiolib.c gpio: prevent potential speculation leaks in gpio_device_get_desc() 2024-09-30 16:23:55 +02:00
gpiolib.h gpiolib: protect the GPIO device against being dropped while in use by user-space 2022-12-31 13:32:42 +01:00
Kconfig gpio: tqmx86: fix typo in Kconfig label 2024-06-21 14:35:48 +02:00
Makefile Input updates for 6.1 merge window: 2022-10-11 10:53:25 -07:00
TODO gpio: Update TODO to mention immutable irq_chip structures 2022-04-19 15:22:26 +01:00