3
0
Fork 0
forked from mirrors/linux
kernel/drivers/gpio
Mathieu Dubois-Briand b424bb88af gpiolib: Allow to use setters with return value for output-only gpios
The gpiod_direction_output_raw_commit() function checks if any setter
callback is present before doing anything. As the new GPIO setters with
return values were introduced, make this check also succeed if one is
present.

Fixes: 98ce1eb1fd ("gpiolib: introduce gpio_chip setters that return values")
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Link: https://lore.kernel.org/r/20250411-mdb-gpiolib-setters-fix-v2-1-9611280d8822@bootlin.com
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
2025-04-14 20:31:00 +02:00
..
dev-sync-probe.c gpio: introduce utilities for synchronous fake device creation 2025-02-24 14:57:39 +01:00
dev-sync-probe.h gpio: introduce utilities for synchronous fake device creation 2025-02-24 14:57:39 +01:00
gpio-74x164.c gpio: 74x164: use new line value setter callbacks 2025-03-10 11:52:12 +01:00
gpio-74xx-mmio.c gpio: 74xx-mmio: remove unneeded platform_set_drvdata() call 2023-07-29 16:03:17 +02:00
gpio-104-dio-48e.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
gpio-104-idi-48.c
gpio-104-idio-16.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
gpio-adnp.c gpio: adnp: use new line value setter callbacks 2025-03-10 11:54:34 +01:00
gpio-adp5520.c gpio: adp5520: use new line value setter callbacks 2025-03-10 11:52:12 +01:00
gpio-adp5585.c gpio: adp5585: use new line value setter callbacks 2025-03-10 11:52:12 +01:00
gpio-aggregator.c Linux 6.14-rc7 2025-03-17 08:27:10 +01:00
gpio-altera-a10sr.c gpio: altera-a10sr: use new line value setter callbacks 2025-03-10 11:52:12 +01:00
gpio-altera.c gpio: altera: use new line value setter callbacks 2025-03-10 11:52:13 +01:00
gpio-amd-fch.c gpio: amd-fch: use new line value setter callbacks 2025-03-10 11:52:13 +01:00
gpio-amd8111.c gpio: amd8111: use new line value setter callbacks 2025-03-10 11:52:13 +01:00
gpio-amdpt.c gpio: amdpt: remove remove() 2024-10-17 08:53:34 +02:00
gpio-arizona.c gpio: arizona: use new line value setter callbacks 2025-03-10 11:52:13 +01:00
gpio-aspeed-sgpio.c gpio: aspeed-sgpio: use new line value setter callbacks 2025-03-10 11:52:13 +01:00
gpio-aspeed.c gpio: aspeed: use new line value setter callbacks 2025-03-10 11:52:13 +01:00
gpio-ath79.c gpio: ath79: remove support for platform data 2024-09-02 09:45:18 +02:00
gpio-bcm-kona.c gpio: bcm-kona: use new line value setter callbacks 2025-03-17 08:27:41 +01:00
gpio-bd9571mwv.c gpio: bd9571mwv: use new line value setter callbacks 2025-03-17 08:27:41 +01:00
gpio-bd71815.c gpio: bd71815: use new line value setter callbacks 2025-03-17 08:27:41 +01:00
gpio-bd71828.c gpio: bd71828: use new line value setter callbacks 2025-03-17 08:27:41 +01:00
gpio-brcmstb.c gpio: Use str_enable_disable-like helpers 2025-02-03 09:12:44 +01:00
gpio-bt8xx.c gpio: bt8xx: use new line value setter callbacks 2025-03-17 08:27:41 +01:00
gpio-cadence.c gpio: Switch back to struct platform_driver::remove() 2024-10-17 09:00:48 +02:00
gpio-cgbc.c gpio: cgbc: use new line value setter callbacks 2025-03-17 08:27:41 +01:00
gpio-clps711x.c gpio: clps711x: remove redundant of_match_ptr() 2023-08-03 15:58:46 +02:00
gpio-creg-snps.c gpio: creg-snps: use new line value setter callbacks 2025-03-17 08:27:41 +01:00
gpio-cros-ec.c gpio: cros-ec: use new line value setter callbacks 2025-03-17 08:27:41 +01:00
gpio-crystalcove.c gpio: crystalcove: use new line value setter callbacks 2025-03-17 08:27:41 +01:00
gpio-cs5535.c gpio: cs5535: use new line value setter callbacks 2025-03-17 08:27:41 +01:00
gpio-da9052.c gpio: da9052: use new line value setter callbacks 2025-03-17 08:27:42 +01:00
gpio-da9055.c gpio: da9055: use new line value setter callbacks 2025-03-17 08:27:42 +01:00
gpio-davinci.c gpio: davinci: use value returning setters 2025-02-26 11:17:40 +01:00
gpio-dln2.c gpio: Switch back to struct platform_driver::remove() 2024-10-17 09:00:48 +02:00
gpio-ds4520.c gpio: ds4520: Add ADI DS4520 GPIO Expander Support 2023-07-29 15:56:33 +02:00
gpio-dwapb.c gpio: dwapb: Add ACPI HID for DWAPB GPIO controller on Fujitsu MONAKA 2024-10-31 13:37:54 +01:00
gpio-eic-sprd.c gpio: eic-sprd: use generic device_get_match_data() 2024-10-14 10:28:56 +02:00
gpio-elkhartlake.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
gpio-em.c pinctrl: em: drop the wrapper around pinctrl_gpio_request() 2023-11-04 10:23:23 +01:00
gpio-en7523.c gpio: EN7523: fix kernel-doc warnings 2024-01-15 23:15:35 +01:00
gpio-ep93xx.c Fix a potential abuse of seq_printf() format string in drivers 2024-11-22 15:31:35 +01:00
gpio-exar.c gpio: exar: set value when external pull-up or pull-down is present 2024-11-21 09:08:47 +01:00
gpio-f7188x.c gpio-f7188x: fix base values conflicts with other gpio pins 2023-09-11 09:03:44 +02:00
gpio-ftgpio010.c gpio: ftgpio010: shrink code 2024-10-21 09:23:34 +02:00
gpio-fxl6408.c gpio: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-07-29 10:50:51 +02:00
gpio-ge.c gpio: ge: Replace GPLv2 boilerplate with SPDX 2023-07-27 09:33:07 +02:00
gpio-gpio-mm.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
gpio-graniterapids.c gpio: graniterapids: Fix GPIO Ack functionality 2024-12-10 10:35:13 +01:00
gpio-grgpio.c gpio: Use str_enable_disable-like helpers 2025-02-03 09:12:44 +01:00
gpio-gw-pld.c gpio: add missing MODULE_DESCRIPTION() macros 2024-06-07 10:05:21 +02:00
gpio-hisi.c gpio: hisi: Fix format specifier 2023-10-13 08:39:30 +02:00
gpio-hlwd.c Fix a potential abuse of seq_printf() format string in drivers 2024-11-22 15:31:35 +01:00
gpio-htc-egpio.c
gpio-i8255.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
gpio-i8255.h
gpio-ich.c
gpio-idio-16.c gpio: idio-16: Actually make use of the GPIO_IDIO_16 symbol namespace 2024-12-10 11:38:57 +01:00
gpio-idio-16.h gpio: idio-16: Remove unused legacy interface 2023-08-11 14:23:32 +02:00
gpio-idt3243x.c
gpio-imx-scu.c gpio: imx-scu: Use ARRAY_SIZE for array length 2023-08-11 16:20:02 +02:00
gpio-it87.c
gpio-ixp4xx.c gpio: ixp4xx: Replace of_node_to_fwnode() with more suitable API 2024-09-02 12:27:36 +02:00
gpio-janz-ttl.c
gpio-kempld.c
gpio-latch.c gpio: latch: use value returning setters 2025-02-26 11:17:40 +01:00
gpio-ljca.c Linux 6.13-rc2 2024-12-10 11:38:38 +01:00
gpio-logicvc.c gpio: logicvc: remove unneeded platform_set_drvdata() call 2023-07-29 16:05:50 +02:00
gpio-loongson-64bit.c gpio: loongson-64bit: Add more gpio chip support 2025-03-05 09:55:56 +01:00
gpio-loongson.c
gpio-loongson1.c
gpio-lp873x.c
gpio-lp3943.c gpio: lp3943: remove unneeded platform_set_drvdata() call 2023-08-01 21:14:48 +02:00
gpio-lp87565.c
gpio-lpc18xx.c gpio: Switch back to struct platform_driver::remove() 2024-10-17 09:00:48 +02:00
gpio-lpc32xx.c gpio: lpc32xx: fix module autoloading 2024-04-12 21:30:58 +02:00
gpio-madera.c
gpio-max730x.c gpio: max730x: use devres to shrink and simplify code 2024-10-21 09:23:47 +02:00
gpio-max732x.c gpio: max732x: remove redundant CONFIG_OF and of_match_ptr() 2023-08-03 15:56:30 +02:00
gpio-max3191x.c gpio: max3191x: use gpiod_multi_set_value_cansleep 2025-02-12 10:36:40 +01:00
gpio-max7300.c gpio: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-07-29 10:50:51 +02:00
gpio-max7301.c
gpio-max77620.c gpio: max77620: remove unneeded platform_set_drvdata() call 2023-08-01 21:15:23 +02:00
gpio-max77650.c gpio: max77650: use value returning setters 2025-02-26 11:17:40 +01:00
gpio-mb86s7x.c gpio: mb86s7x: remove some dead code in mb86s70_gpio_to_irq() 2024-10-24 10:37:51 +02:00
gpio-mc33880.c gpio updates for v6.11-rc1 2024-07-15 17:53:24 -07:00
gpio-menz127.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
gpio-merrifield.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
gpio-ml-ioh.c
gpio-mlxbf.c
gpio-mlxbf2.c Fix a potential abuse of seq_printf() format string in drivers 2024-11-22 15:31:35 +01:00
gpio-mlxbf3.c gpio: mlxbf3: Support shutdown() function 2024-08-10 21:35:16 +02:00
gpio-mm-lantiq.c gpio: Switch back to struct platform_driver::remove() 2024-10-17 09:00:48 +02:00
gpio-mmio.c gpio: mmio: Add flag for calling pinctrl back-end 2025-02-24 20:49:20 +01:00
gpio-mockup.c gpio: mockup: use value returning setters 2025-02-26 11:17:39 +01:00
gpio-moxtet.c
gpio-mpc8xxx.c gpio: mpc8xxx: Fix wakeup source leaks on device unbind 2025-04-08 10:56:25 +02:00
gpio-mpc5200.c gpio: Switch back to struct platform_driver::remove() 2024-10-17 09:00:48 +02:00
gpio-mpfs.c gpio: mpfs: add CoreGPIO support 2024-11-13 16:29:27 +01:00
gpio-mpsse.c gpio: mpsse: Remove usage of the deprecated ida_simple_xx() API 2024-11-22 15:23:31 +01:00
gpio-msc313.c gpio: msc313: Replace of_node_to_fwnode() with more suitable API 2024-09-02 12:27:36 +02:00
gpio-mt7621.c
gpio-mvebu.c gpio: mvebu: use value returning setters 2025-02-26 11:17:40 +01:00
gpio-mxc.c gpio: mxc: remove dead code after switch to DT-only 2025-01-23 08:44:51 +01:00
gpio-mxs.c gpio: mxs: fix Wvoid-pointer-to-enum-cast warning 2023-08-11 16:21:46 +02:00
gpio-nomadik.c gpio: Use str_enable_disable-like helpers 2025-02-03 09:12:44 +01:00
gpio-npcm-sgpio.c gpio: nuvoton: Fix sgpio irq handle error 2024-05-07 09:44:33 +02:00
gpio-octeon.c
gpio-omap.c Driver core changes for 6.13-rc1 2024-11-29 11:43:29 -08:00
gpio-palmas.c gpio: palmas: remove unnecessary call to platform_set_drvdata() 2023-08-01 21:22:38 +02:00
gpio-pca953x.c gpio: pca953x: use value returning setters 2025-02-26 11:17:39 +01:00
gpio-pca9570.c gpio: pca9570: fix kerneldoc 2023-08-21 10:39:58 +02:00
gpio-pcf857x.c gpio: pcf857x: add support for reset-gpios on (most) PCA967x 2025-02-26 11:25:30 +01:00
gpio-pch.c gpio: pch: kerneldoc fixes for excess members 2024-09-02 14:35:32 +02:00
gpio-pci-idio-16.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
gpio-pcie-idio-24.c gpio: pcie-idio-24: Replace deprecated PCI functions 2024-11-04 09:15:38 +01:00
gpio-pisosr.c gpio: pisosr: Use devm_gpiochip_add_data() to simplify remove path 2023-07-20 17:22:10 +02:00
gpio-pl061.c Fix a potential abuse of seq_printf() format string in drivers 2024-11-22 15:31:35 +01:00
gpio-pmic-eic-sprd.c gpio: pmic-eic-sprd: Configure the bit corresponding to the EIC through offset 2024-01-03 09:50:47 +01:00
gpio-pxa.c treewide: rename pinctrl_gpio_direction_output_new() 2023-11-04 10:23:22 +01:00
gpio-raspberrypi-exp.c gpio: raspberrypi-exp: remove redundant of_match_ptr() 2023-08-03 15:58:52 +02:00
gpio-rc5t583.c gpio: rc5t583: remove unneeded call to platform_set_drvdata() 2023-08-01 21:26:48 +02:00
gpio-rcar.c Linux 6.14-rc7 2025-03-17 08:27:10 +01:00
gpio-rda.c
gpio-rdc321x.c gpio: rdc321x: Convert PCIBIOS_* return codes to errnos 2024-05-30 11:21:05 +02:00
gpio-realtek-otto.c
gpio-reg.c
gpio-regmap.c gpio: regmap: use value returning setters 2025-02-26 11:17:39 +01:00
gpio-rockchip.c gpio: rockchip: support new version GPIO 2024-11-12 13:51:25 +01:00
gpio-rtd.c gpio: rtd: Fix signedness bug in probe 2024-01-15 11:07:46 +01:00
gpio-sa1100.c gpio: sa1100: include <mach/generic.h> 2023-05-17 11:56:24 +02:00
gpio-sama5d2-piobu.c gpio: sama5d2-piobu: convert comma to semicolon 2024-09-05 09:34:51 +02:00
gpio-sch.c gpio: sch: Utilise temporary variable for struct device 2024-04-15 16:12:18 +03:00
gpio-sch311x.c gpio: sch311x: Use devm_gpiochip_add_data() to simplify remove path 2023-05-17 11:52:14 +02:00
gpio-sifive.c gpio: sifive: remove unneeded call to platform_set_drvdata() 2023-11-15 15:39:40 +01:00
gpio-sim.c gpio: sim: use value returning setters 2025-02-26 11:17:39 +01:00
gpio-siox.c
gpio-sl28cpld.c
gpio-sloppy-logic-analyzer.c Linux 6.12-rc6 2024-11-04 08:46:55 +01:00
gpio-sodaville.c
gpio-spear-spics.c
gpio-sprd.c gpio: Explicitly include correct DT includes 2023-07-19 13:24:01 +02:00
gpio-stmpe.c Linux 6.14-rc4 2025-02-24 09:58:42 +01:00
gpio-stp-xway.c gpio: stp-xway: Simplify using devm_clk_get_enabled() 2024-09-02 12:31:48 +02:00
gpio-syscon.c gpio: syscon: fix excess struct member build warning 2024-09-02 12:35:59 +02:00
gpio-tangier.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
gpio-tangier.h gpio: tangier: unexport suspend/resume handles 2023-11-13 17:59:48 +02:00
gpio-tb10x.c gpio: Switch back to struct platform_driver::remove() 2024-10-17 09:00:48 +02:00
gpio-tc3589x.c
gpio-tegra.c Fix a potential abuse of seq_printf() format string in drivers 2024-11-22 15:31:35 +01:00
gpio-tegra186.c gpio: tegra186: fix resource handling in ACPI probe path 2025-04-07 08:53:10 +02:00
gpio-thunderx.c gpio: thunderx: Replace of_node_to_fwnode() with more suitable API 2024-09-02 12:27:36 +02:00
gpio-timberdale.c gpio: timberdale: Fix potential deadlock on &tgpio->lock 2023-09-27 08:51:28 +02:00
gpio-tn48m.c
gpio-tpic2810.c gpio: Switch i2c drivers back to use .probe() 2023-05-23 10:09:11 +02:00
gpio-tps6586x.c gpio: Explicitly include correct DT includes 2023-07-19 13:24:01 +02:00
gpio-tps65086.c gpio: tps65086: Use devm_gpiochip_add_data() to simplify remove path 2023-05-17 11:40:40 +02:00
gpio-tps65218.c gpio: tps65218: remove redundant of_match_ptr() 2023-08-03 15:55:34 +02:00
gpio-tps65219.c gpio: tps65219: Use existing kernel gpio macros 2024-12-20 14:44:24 +01:00
gpio-tps65910.c gpio: Explicitly include correct DT includes 2023-07-19 13:24:01 +02:00
gpio-tps65912.c
gpio-tps68470.c gpio: tps68470: Make tps68470_gpio_output() always set the initial value 2023-07-19 13:22:13 +02:00
gpio-tqmx86.c gpio: tqmx86: add support for changing GPIO directions 2024-12-16 10:00:46 +01:00
gpio-ts4800.c gpio: Explicitly include correct DT includes 2023-07-19 13:24:01 +02:00
gpio-ts4900.c gpio: ts4900: use generic device properties 2024-10-14 10:28:21 +02:00
gpio-ts5500.c gpio: Switch back to struct platform_driver::remove() 2024-10-17 09:00:48 +02:00
gpio-twl4030.c This removes all usage of global GPIO numbers from 2023-05-31 17:01:34 +02:00
gpio-twl6040.c gpio: twl4030: use gpiochip_get_data 2024-12-05 13:14:44 +01:00
gpio-uniphier.c gpio: Switch back to struct platform_driver::remove() 2024-10-17 09:00:48 +02:00
gpio-vf610.c gpio: vf610: Switch to gpio-mmio 2025-02-24 20:49:43 +01:00
gpio-viperboard.c
gpio-virtio.c gpio: virtio: support multiple virtio-gpio controller instances 2025-02-11 09:21:18 +01:00
gpio-virtuser.c gpio: virtuser: convert to use dev-sync-probe utilities 2025-02-24 14:57:40 +01:00
gpio-visconti.c Fix a potential abuse of seq_printf() format string in drivers 2024-11-22 15:31:35 +01:00
gpio-vx855.c gpio: vx855: remove unneeded call to platform_set_drvdata() 2023-08-03 15:48:15 +02:00
gpio-wcd934x.c gpio: Explicitly include correct DT includes 2023-07-19 13:24:01 +02:00
gpio-wcove.c gpio: Use str_enable_disable-like helpers 2025-02-03 09:12:44 +01:00
gpio-winbond.c
gpio-wm831x.c gpio: Use str_enable_disable-like helpers 2025-02-03 09:12:44 +01:00
gpio-wm8350.c
gpio-wm8994.c gpio: wm8994: use gpiochip_dup_line_label() 2023-12-08 09:26:25 +01:00
gpio-ws16c48.c gpio updates for v6.6 2023-08-29 10:21:56 -07:00
gpio-xgene-sb.c gpio: xgene-sb: don't use "proxy" headers 2024-10-22 09:21:12 +02:00
gpio-xgene.c
gpio-xgs-iproc.c Driver core changes for 6.13-rc1 2024-11-29 11:43:29 -08:00
gpio-xilinx.c gpio: xilinx: Replace custom variants of bitmap_read()/bitmap_write() 2025-02-12 10:58:14 +01:00
gpio-xlp.c
gpio-xra1403.c gpio: Use str_enable_disable-like helpers 2025-02-03 09:12:44 +01:00
gpio-xtensa.c
gpio-zevio.c gpio: zevio: Add missed label initialisation 2024-11-21 09:06:17 +01:00
gpio-zynq.c gpio: zynq: Fix wakeup source leaks on device unbind 2025-04-08 10:56:38 +02:00
gpio-zynqmp-modepin.c gpio: modepin: Enable module autoloading 2024-09-02 15:00:53 +02:00
gpiolib-acpi.c intel-gpio for v6.15-1 2025-03-13 09:45:50 +01:00
gpiolib-acpi.h gpio: acpi: Make acpi_gpio_count() take firmware node as a parameter 2024-03-01 09:08:34 +01:00
gpiolib-cdev.c gpio: cdev: use raw notifier for line state events 2025-03-13 09:20:12 +01:00
gpiolib-cdev.h
gpiolib-devres.c gpio: deprecate devm_gpiod_unhinge() 2025-04-08 10:41:58 +02:00
gpiolib-legacy.c gpio: Get rid of GPIOF_ACTIVE_LOW 2024-11-09 14:55:33 +01:00
gpiolib-of.c gpiolib: of: Move Atmel HSMCI quirk up out of the regulator comment 2025-04-08 11:06:45 +02:00
gpiolib-of.h gpio: of: Make of_gpio_get_count() take firmware node as a parameter 2024-03-01 09:07:21 +01:00
gpiolib-swnode.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
gpiolib-swnode.h
gpiolib-sysfs.c gpio: sysfs: emit chardev line-state events on edge store 2024-11-04 08:56:20 +01:00
gpiolib-sysfs.h gpiolib: revert the attempt to protect the GPIO device list with an rwsem 2024-01-17 09:52:37 +01:00
gpiolib.c gpiolib: Allow to use setters with return value for output-only gpios 2025-04-14 20:31:00 +02:00
gpiolib.h Linux 6.14-rc7 2025-03-17 08:27:10 +01:00
Kconfig gpio: bt8xx: allow to build the module with COMPILE_TEST=y 2025-03-17 08:27:41 +01:00
Makefile gpio: introduce utilities for synchronous fake device creation 2025-02-24 14:57:39 +01:00
TODO gpio: TODO: track the removal of regulator-related workarounds 2025-04-08 10:41:59 +02:00