The register() / attach() for MIPI happen in the bridge's
attach(). That means that the inverse belongs in the bridge's
detach().

Signed-off-by: Douglas Anderson <diand...@chromium.org>
---

(no changes since v1)

 drivers/gpu/drm/bridge/ti-sn65dsi86.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c 
b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
index c006678c9921..e8e523b3a16b 100644
--- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
+++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
@@ -437,7 +437,15 @@ static int ti_sn_bridge_attach(struct drm_bridge *bridge,
 
 static void ti_sn_bridge_detach(struct drm_bridge *bridge)
 {
-       drm_dp_aux_unregister(&bridge_to_ti_sn_bridge(bridge)->aux);
+       struct ti_sn_bridge *pdata = bridge_to_ti_sn_bridge(bridge);
+
+
+       if (pdata->dsi) {
+               mipi_dsi_detach(pdata->dsi);
+               mipi_dsi_device_unregister(pdata->dsi);
+       }
+
+       drm_dp_aux_unregister(&pdata->aux);
 }
 
 static void ti_sn_bridge_disable(struct drm_bridge *bridge)
@@ -1315,11 +1323,6 @@ static int ti_sn_bridge_remove(struct i2c_client *client)
        if (!pdata)
                return -EINVAL;
 
-       if (pdata->dsi) {
-               mipi_dsi_detach(pdata->dsi);
-               mipi_dsi_device_unregister(pdata->dsi);
-       }
-
        kfree(pdata->edid);
 
        ti_sn_debugfs_remove(pdata);
-- 
2.31.0.291.g576ba9dcdaf-goog

Reply via email to