linux/drivers/gpu/drm/bridge
Li Youhong ada6678907 drm/bridge: samsung-dsim: fix TE GPIO lifetime for host attach
When the Exynos DSI driver was generalized into samsung-dsim, the TE
GPIO acquisition was switched from gpiod_get_optional() to
devm_gpiod_get_optional() while keeping the matching gpiod_put() calls.
That combination is wrong for a managed descriptor.

However, dropping the puts and keeping the managed get is also wrong:
samsung_dsim_register_te_irq() runs from the DSI host attach callback,
and host detach/reattach can happen without destroying the device that
owns the managed action. A second attach would then request the GPIO
again without having released it.

Switch back to a non-managed gpiod_get_optional() and keep the explicit
gpiod_put() on the request_irq() error path and in
samsung_dsim_unregister_te_irq().

Fixes: e7447128ca ("drm: bridge: Generalize Exynos-DSI driver into a Samsung DSIM bridge")
Suggested-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Li Youhong <liyouhong@kylinos.cn>
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://patch.msgid.link/20260904014958.1572918-1-dayou5941@163.com
[Luca: remove unnecessary comment]
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
2026-09-21 11:07:43 +02:00
..
adv7511 drm/bridge: Use named initializers for arrays of i2c_device_data 2026-07-27 15:24:28 +02:00
analogix Linux 7.2 2026-08-20 10:58:44 +10:00
cadence drm/bridge: cdns-mhdp8546: Switch to atomic_create_state 2026-06-22 11:24:59 +02:00
imx drm/bridge: imx: Add i.MX93 parallel display format configuration support 2026-07-29 12:54:54 +08:00
synopsys drm/bridge: remove unneeded 'fast_io' parameter in regmap_config 2026-08-05 09:04:18 +02:00
aux-bridge.c drm/bridge: aux-bridge: Add atomic bridge state handlers 2026-07-15 09:45:57 +02:00
aux-hpd-bridge.c drm/bridge: aux-hpd-bridge: Add atomic bridge state handlers 2026-07-15 09:45:58 +02:00
chipone-icn6211.c drm/bridge: Use named initializers for arrays of i2c_device_data 2026-07-27 15:24:28 +02:00
chrontel-ch7033.c drm/bridge: Use named initializers for arrays of i2c_device_data 2026-07-27 15:24:28 +02:00
cros-ec-anx7688.c drm/bridge: cros-ec-anx7688: Add atomic bridge state handlers 2026-07-15 09:45:59 +02:00
display-connector.c Linux 7.2 2026-08-20 10:58:44 +10:00
fsl-ldb.c drm/panel: of_drm_find_panel() return a counted reference 2026-07-20 15:07:22 +02:00
inno-hdmi.c drm-misc-next for 7.3: 2026-07-07 09:34:04 +10:00
ite-it6263.c drm/bridge: Use named initializers for arrays of i2c_device_data 2026-07-27 15:24:28 +02:00
ite-it6505.c drm/bridge: Use named initializers for arrays of i2c_device_data 2026-07-27 15:24:28 +02:00
ite-it66121.c drm/bridge: ite-it66121: Switch to atomic_create_state 2026-06-22 11:24:28 +02:00
Kconfig drm/bridge: ite-it66121: Switch to the HDMI connector helpers 2026-05-26 12:27:56 +02:00
lontium-lt8713sx.c drm/bridge: Use named initializers for arrays of i2c_device_data 2026-07-27 15:24:28 +02:00
lontium-lt8912b.c drm/bridge: Use named initializers for arrays of i2c_device_data 2026-07-27 15:24:28 +02:00
lontium-lt9211.c drm/bridge: Use named initializers for arrays of i2c_device_data 2026-07-27 15:24:28 +02:00
lontium-lt9611.c drm/bridge: Use named initializers for arrays of i2c_device_data 2026-07-27 15:24:28 +02:00
lontium-lt9611uxc.c drm/bridge: Use named initializers for arrays of i2c_device_data 2026-07-27 15:24:28 +02:00
lvds-codec.c drm/panel: of_drm_find_panel() return a counted reference 2026-07-20 15:07:22 +02:00
Makefile drm/bridge: Move legacy bridge driver out of imx directory for multi-platform use 2026-04-09 14:10:21 +02:00
megachips-stdpxxxx-ge-b850v3-fw.c drm/bridge: Use named initializers for arrays of i2c_device_data 2026-07-27 15:24:28 +02:00
microchip-lvds.c drm/bridge: microchip-lvds: Add atomic bridge state handlers 2026-07-15 09:46:02 +02:00
nwl-dsi.c drm/bridge: nwl-dsi: Switch to atomic_create_state 2026-06-22 11:24:30 +02:00
nwl-dsi.h drm/bridge: nwl-dsi: Use vsync/hsync polarity from display mode 2024-08-19 15:36:47 +02:00
nxp-ptn3460.c drm/bridge: Use named initializers for arrays of i2c_device_data 2026-07-27 15:24:28 +02:00
of-display-mode-bridge.c drm/bridge: of-display-mode-bridge: Add atomic bridge state handlers 2026-07-15 09:46:04 +02:00
panel.c drm/panel: of_drm_find_panel() return a counted reference 2026-07-20 15:07:22 +02:00
parade-ps8622.c drm/bridge: Use named initializers for arrays of i2c_device_data 2026-07-27 15:24:28 +02:00
parade-ps8640.c Linux 7.2 2026-08-20 10:58:44 +10:00
samsung-dsim.c drm/bridge: samsung-dsim: fix TE GPIO lifetime for host attach 2026-09-21 11:07:43 +02:00
sii902x.c drm/bridge: Use named initializers for arrays of i2c_device_data 2026-07-27 15:24:28 +02:00
sii9234.c drm/bridge: Use named initializers for arrays of i2c_device_data 2026-07-27 15:24:28 +02:00
sil-sii8620.c drm/bridge: Use named initializers for arrays of i2c_device_data 2026-07-27 15:24:28 +02:00
sil-sii8620.h
simple-bridge.c drm/bridge: simple-bridge: Switch to atomic bridge callbacks 2026-07-15 09:46:06 +02:00
ssd2825.c drm/panel: of_drm_find_panel() return a counted reference 2026-07-20 15:07:22 +02:00
tc358762.c drm/bridge: tc358762: use devm for bridge registration and DSI attach 2026-07-27 13:14:02 +02:00
tc358764.c drm/bridge: tc358764: use devm for bridge registration and DSI attach 2026-07-27 13:14:02 +02:00
tc358767.c drm/bridge: Use named initializers for arrays of i2c_device_data 2026-07-27 15:24:28 +02:00
tc358768.c drm/bridge: tc358768: Enforce input bus flags via atomic_check 2026-09-09 11:03:46 +02:00
tc358775.c drm/bridge: Use named initializers for arrays of i2c_device_data 2026-07-27 15:24:28 +02:00
tda998x_drv.c drm/bridge: Use named initializers for arrays of i2c_device_data 2026-07-27 15:24:28 +02:00
th1520-dw-hdmi.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
thc63lvd1024.c drm/bridge: thc63lvd1024: Switch to atomic bridge callbacks 2026-07-15 09:46:09 +02:00
ti-dlpc3433.c drm/bridge: Use named initializers for arrays of i2c_device_data 2026-07-27 15:24:28 +02:00
ti-sn65dsi83.c drm/bridge: ti-sn65dsi83: Fix error handling in sn65dsi83_reset_work() 2026-09-09 17:07:54 +02:00
ti-sn65dsi86.c drm/bridge: ti-sn65dsi86: Remove redundant dev_err_probe() 2026-07-30 14:05:00 -07:00
ti-tdp158.c drm/bridge: ti-tdp158: Switch to atomic_create_state 2026-06-22 11:24:40 +02:00
ti-tfp410.c drm/bridge: Use named initializers for arrays of i2c_device_data 2026-07-27 15:24:28 +02:00
ti-tpd12s015.c drm/bridge: ti-tpd12s015: Add atomic bridge state handlers 2026-07-15 09:46:08 +02:00
waveshare-dsi.c drm/panel: of_drm_find_panel() return a counted reference 2026-07-20 15:07:22 +02:00