MLK-17137-2: drm/bridge: Fix bridge_detach for nwl-dsi
authorRobert Chiras <robert.chiras@nxp.com>
Fri, 8 Dec 2017 13:15:35 +0000 (15:15 +0200)
committerNitin Garg <nitin.garg@nxp.com>
Tue, 20 Mar 2018 19:51:05 +0000 (14:51 -0500)
When the bridge is detached from it's parent, we also need to unregister
the dsi_host. Also, in enable, check if we have a panel or a bridge
connected, otherwise enable is not needed.

Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
drivers/gpu/drm/bridge/nwl-dsi.c

index 740e996..fd5b82e 100644 (file)
@@ -447,7 +447,7 @@ static void nwl_dsi_bridge_enable(struct drm_bridge *bridge)
        struct device *dev = dsi->dev;
        int ret;
 
-       if (dsi->enabled)
+       if (dsi->enabled || (!dsi->panel && !dsi->next_bridge))
                return;
 
        if (!dsi->lanes) {
@@ -1074,6 +1074,7 @@ static void nwl_dsi_bridge_detach(struct drm_bridge *bridge)
                drm_bridge_detach(dsi->next_bridge);
                nwl_dsi_del_bridge(dsi->next_bridge->encoder, dsi->next_bridge);
        }
+       mipi_dsi_host_unregister(&dsi->host);
 }
 
 static const struct drm_bridge_funcs nwl_dsi_bridge_funcs = {