[PATCH v2 1/1] drm/bridge: lontium-lt9611uxc: use irq as optional parameter
From: Vladimir Yakovlev
Date: Tue Jan 06 2026 - 22:24:24 EST
On some systems the interrupt pin may not be used.
In this case we exclude DRM_BRIDGE_OP_HPD from supported operations,
after which a polling thread is started to detect the connection.
(the default polling period for DRM is 10 seconds)
Signed-off-by: Vladimir Yakovlev <vovchkir@xxxxxxxxx>
---
drivers/gpu/drm/bridge/lontium-lt9611uxc.c | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
index bb5cff021c93..f7a74ec1f170 100644
--- a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
+++ b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c
@@ -851,19 +851,25 @@ static int lt9611uxc_probe(struct i2c_client *client)
init_waitqueue_head(<9611uxc->wq);
INIT_WORK(<9611uxc->work, lt9611uxc_hpd_work);
- ret = devm_request_threaded_irq(dev, client->irq, NULL,
- lt9611uxc_irq_thread_handler,
- IRQF_ONESHOT, "lt9611uxc", lt9611uxc);
- if (ret) {
- dev_err(dev, "failed to request irq\n");
- goto err_disable_regulators;
+ if (client->irq) {
+ ret = devm_request_threaded_irq(dev, client->irq, NULL,
+ lt9611uxc_irq_thread_handler,
+ IRQF_ONESHOT, "lt9611uxc", lt9611uxc);
+ if (ret) {
+ dev_err(dev, "failed to request irq\n");
+ goto err_disable_regulators;
+ }
+ dev_dbg(dev, "Uses IRQ\n");
+ } else {
+ dev_dbg(dev, "The interrupt (IRQ) is not specified in the DTS.\n");
+ dev_dbg(dev, "Check the interrupt (IRQ) or polling will be used!!!\n");
}
i2c_set_clientdata(client, lt9611uxc);
lt9611uxc->bridge.of_node = client->dev.of_node;
lt9611uxc->bridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID;
- if (lt9611uxc->hpd_supported)
+ if (lt9611uxc->hpd_supported && client->irq)
lt9611uxc->bridge.ops |= DRM_BRIDGE_OP_HPD;
lt9611uxc->bridge.type = DRM_MODE_CONNECTOR_HDMIA;
--
2.34.1