drm/msm/dp: use atomic callbacks for DP bridge ops
authorVinod Polimera <quic_vpolimer@quicinc.com>
Thu, 2 Mar 2023 16:33:11 +0000 (22:03 +0530)
committerDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Mon, 13 Mar 2023 01:43:49 +0000 (04:43 +0300)
Use atomic variants for DP bridge callback functions so that
the atomic state can be accessed in the interface drivers.
The atomic state will help the driver find out if the display
is in self refresh state.

Signed-off-by: Sankeerth Billakanti <quic_sbillaka@quicinc.com>
Signed-off-by: Vinod Polimera <quic_vpolimer@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Patchwork: https://patchwork.freedesktop.org/patch/524731/
Link: https://lore.kernel.org/r/1677774797-31063-9-git-send-email-quic_vpolimer@quicinc.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
drivers/gpu/drm/msm/dp/dp_display.c
drivers/gpu/drm/msm/dp/dp_drm.c
drivers/gpu/drm/msm/dp/dp_drm.h

index bde1a7ce442ff25f660ac13a2975fbd3825dfbc1..985287e92340adbe4ec7d497a53b43dab4498bfd 100644 (file)
@@ -1652,7 +1652,8 @@ int msm_dp_modeset_init(struct msm_dp *dp_display, struct drm_device *dev,
        return 0;
 }
 
-void dp_bridge_enable(struct drm_bridge *drm_bridge)
+void dp_bridge_atomic_enable(struct drm_bridge *drm_bridge,
+                            struct drm_bridge_state *old_bridge_state)
 {
        struct msm_dp_bridge *dp_bridge = to_dp_bridge(drm_bridge);
        struct msm_dp *dp = dp_bridge->dp_display;
@@ -1707,7 +1708,8 @@ void dp_bridge_enable(struct drm_bridge *drm_bridge)
        mutex_unlock(&dp_display->event_mutex);
 }
 
-void dp_bridge_disable(struct drm_bridge *drm_bridge)
+void dp_bridge_atomic_disable(struct drm_bridge *drm_bridge,
+                             struct drm_bridge_state *old_bridge_state)
 {
        struct msm_dp_bridge *dp_bridge = to_dp_bridge(drm_bridge);
        struct msm_dp *dp = dp_bridge->dp_display;
@@ -1718,7 +1720,8 @@ void dp_bridge_disable(struct drm_bridge *drm_bridge)
        dp_ctrl_push_idle(dp_display->ctrl);
 }
 
-void dp_bridge_post_disable(struct drm_bridge *drm_bridge)
+void dp_bridge_atomic_post_disable(struct drm_bridge *drm_bridge,
+                                  struct drm_bridge_state *old_bridge_state)
 {
        struct msm_dp_bridge *dp_bridge = to_dp_bridge(drm_bridge);
        struct msm_dp *dp = dp_bridge->dp_display;
index 275370f211159dd46836212094695e776d5c7d2c..3252d50e0f7825a39c6d409dfbadcc6de5aa8a8c 100644 (file)
@@ -94,9 +94,9 @@ static const struct drm_bridge_funcs dp_bridge_ops = {
        .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state,
        .atomic_destroy_state   = drm_atomic_helper_bridge_destroy_state,
        .atomic_reset           = drm_atomic_helper_bridge_reset,
-       .enable       = dp_bridge_enable,
-       .disable      = dp_bridge_disable,
-       .post_disable = dp_bridge_post_disable,
+       .atomic_enable          = dp_bridge_atomic_enable,
+       .atomic_disable         = dp_bridge_atomic_disable,
+       .atomic_post_disable    = dp_bridge_atomic_post_disable,
        .mode_set     = dp_bridge_mode_set,
        .mode_valid   = dp_bridge_mode_valid,
        .get_modes    = dp_bridge_get_modes,
index 250f7c66201f23a5135e2930a2793ebda04e01d4..afe79b85e183dc08125e9d6574728ad1f99ebcd1 100644 (file)
@@ -23,9 +23,12 @@ struct drm_connector *dp_drm_connector_init(struct msm_dp *dp_display, struct dr
 struct drm_bridge *dp_bridge_init(struct msm_dp *dp_display, struct drm_device *dev,
                        struct drm_encoder *encoder);
 
-void dp_bridge_enable(struct drm_bridge *drm_bridge);
-void dp_bridge_disable(struct drm_bridge *drm_bridge);
-void dp_bridge_post_disable(struct drm_bridge *drm_bridge);
+void dp_bridge_atomic_enable(struct drm_bridge *drm_bridge,
+                            struct drm_bridge_state *old_bridge_state);
+void dp_bridge_atomic_disable(struct drm_bridge *drm_bridge,
+                             struct drm_bridge_state *old_bridge_state);
+void dp_bridge_atomic_post_disable(struct drm_bridge *drm_bridge,
+                                  struct drm_bridge_state *old_bridge_state);
 enum drm_mode_status dp_bridge_mode_valid(struct drm_bridge *bridge,
                                          const struct drm_display_info *info,
                                          const struct drm_display_mode *mode);