return ret;
        }
 
-       /* Attach primary DSI */
-       lt9611uxc->dsi0 = lt9611uxc_attach_dsi(lt9611uxc, lt9611uxc->dsi0_node);
-       if (IS_ERR(lt9611uxc->dsi0))
-               return PTR_ERR(lt9611uxc->dsi0);
-
-       /* Attach secondary DSI, if specified */
-       if (lt9611uxc->dsi1_node) {
-               lt9611uxc->dsi1 = lt9611uxc_attach_dsi(lt9611uxc, lt9611uxc->dsi1_node);
-               if (IS_ERR(lt9611uxc->dsi1))
-                       return PTR_ERR(lt9611uxc->dsi1);
-       }
-
        return 0;
 }
 
 
        drm_bridge_add(<9611uxc->bridge);
 
+       /* Attach primary DSI */
+       lt9611uxc->dsi0 = lt9611uxc_attach_dsi(lt9611uxc, lt9611uxc->dsi0_node);
+       if (IS_ERR(lt9611uxc->dsi0)) {
+               ret = PTR_ERR(lt9611uxc->dsi0);
+               goto err_remove_bridge;
+       }
+
+       /* Attach secondary DSI, if specified */
+       if (lt9611uxc->dsi1_node) {
+               lt9611uxc->dsi1 = lt9611uxc_attach_dsi(lt9611uxc, lt9611uxc->dsi1_node);
+               if (IS_ERR(lt9611uxc->dsi1)) {
+                       ret = PTR_ERR(lt9611uxc->dsi1);
+                       goto err_remove_bridge;
+               }
+       }
+
        return lt9611uxc_audio_init(dev, lt9611uxc);
 
+err_remove_bridge:
+       drm_bridge_remove(<9611uxc->bridge);
+
 err_disable_regulators:
        regulator_bulk_disable(ARRAY_SIZE(lt9611uxc->supplies), lt9611uxc->supplies);