Merge drm/drm-next into drm-misc-next
[linux-2.6-microblaze.git] / drivers / gpu / drm / bridge / nwl-dsi.c
index d594550..ad74e65 100644 (file)
@@ -26,7 +26,6 @@
 #include <drm/drm_bridge.h>
 #include <drm/drm_mipi_dsi.h>
 #include <drm/drm_of.h>
-#include <drm/drm_panel.h>
 #include <drm/drm_print.h>
 
 #include <video/mipi_display.h>
@@ -853,7 +852,7 @@ nwl_dsi_bridge_mode_set(struct drm_bridge *bridge,
        /* Save the new desired phy config */
        memcpy(&dsi->phy_cfg, &new_cfg, sizeof(new_cfg));
 
-       memcpy(&dsi->mode, adjusted_mode, sizeof(dsi->mode));
+       drm_mode_copy(&dsi->mode, adjusted_mode);
        drm_mode_debug_printmodeline(adjusted_mode);
 
        if (pm_runtime_resume_and_get(dev) < 0)
@@ -910,32 +909,14 @@ static int nwl_dsi_bridge_attach(struct drm_bridge *bridge,
 {
        struct nwl_dsi *dsi = bridge_to_dsi(bridge);
        struct drm_bridge *panel_bridge;
-       struct drm_panel *panel;
-       int ret;
 
-       ret = drm_of_find_panel_or_bridge(dsi->dev->of_node, 1, 0, &panel,
-                                         &panel_bridge);
-       if (ret)
-               return ret;
-
-       if (panel) {
-               panel_bridge = drm_panel_bridge_add(panel);
-               if (IS_ERR(panel_bridge))
-                       return PTR_ERR(panel_bridge);
-       }
-
-       if (!panel_bridge)
-               return -EPROBE_DEFER;
+       panel_bridge = devm_drm_of_get_bridge(dsi->dev, dsi->dev->of_node, 1, 0);
+       if (IS_ERR(panel_bridge))
+               return PTR_ERR(panel_bridge);
 
        return drm_bridge_attach(bridge->encoder, panel_bridge, bridge, flags);
 }
 
-static void nwl_dsi_bridge_detach(struct drm_bridge *bridge)
-{      struct nwl_dsi *dsi = bridge_to_dsi(bridge);
-
-       drm_of_panel_bridge_remove(dsi->dev->of_node, 1, 0);
-}
-
 static u32 *nwl_bridge_atomic_get_input_bus_fmts(struct drm_bridge *bridge,
                                                 struct drm_bridge_state *bridge_state,
                                                 struct drm_crtc_state *crtc_state,
@@ -981,7 +962,6 @@ static const struct drm_bridge_funcs nwl_dsi_bridge_funcs = {
        .mode_set               = nwl_dsi_bridge_mode_set,
        .mode_valid             = nwl_dsi_bridge_mode_valid,
        .attach                 = nwl_dsi_bridge_attach,
-       .detach                 = nwl_dsi_bridge_detach,
 };
 
 static int nwl_dsi_parse_dt(struct nwl_dsi *dsi)
@@ -1153,7 +1133,7 @@ MODULE_DEVICE_TABLE(of, nwl_dsi_dt_ids);
 static const struct soc_device_attribute nwl_dsi_quirks_match[] = {
        { .soc_id = "i.MX8MQ", .revision = "2.0",
          .data = (void *)E11418_HS_MODE_QUIRK },
-       { /* sentinel. */ },
+       { /* sentinel. */ }
 };
 
 static int nwl_dsi_probe(struct platform_device *pdev)