[PATCH v8 04/14] drm/bridge: it6505: unregister DP AUX adapter on bridge detach
From: Daniel Golle
Date: Sun Sep 27 2026 - 19:52:00 EST
The DP AUX adapter is registered in .attach() but only unregistered
in i2c remove(). Unbinding and rebinding the DRM device while the
i2c driver stays bound registers the adapter a second time, which
fails. Also unregister it in .detach() and on the .attach() error
path, which so far leaked the registration. remove() keeps its call,
which waits for in-flight AUX device users before devres frees the
regmap; drm_dp_aux_unregister() does nothing for an adapter that is
already unregistered.
Fixes: b5c84a9edcd4 ("drm/bridge: add it6505 driver")
Assisted-by: LLM
Signed-off-by: Daniel Golle <daniel@xxxxxxxxxxxxxx>
---
v8: keep the unregister in remove() so an i2c unbind waits for
in-flight AUX device users before the regmap is freed
v7: no changes
v6: no changes
v5: new patch
---
drivers/gpu/drm/bridge/ite-it6505.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/bridge/ite-it6505.c b/drivers/gpu/drm/bridge/ite-it6505.c
index 9c4aae383c1c5..7a0702e441ad7 100644
--- a/drivers/gpu/drm/bridge/ite-it6505.c
+++ b/drivers/gpu/drm/bridge/ite-it6505.c
@@ -3096,6 +3096,7 @@ static int it6505_bridge_attach(struct drm_bridge *bridge,
ret = it6505_use_notifier_module(it6505);
if (ret < 0) {
dev_err(dev, "use notifier module failed");
+ drm_dp_aux_unregister(&it6505->aux);
return ret;
}
}
@@ -3109,6 +3110,7 @@ static void it6505_bridge_detach(struct drm_bridge *bridge)
flush_work(&it6505->link_works);
it6505_remove_notifier_module(it6505);
+ drm_dp_aux_unregister(&it6505->aux);
}
static enum drm_mode_status
--
2.55.0