Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/msm/dp: use atomic callbacks for DP bridge ops

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>

authored by

Vinod Polimera and committed by
Dmitry Baryshkov
cdfd0e62 22cb02bc

+15 -9
+6 -3
drivers/gpu/drm/msm/dp/dp_display.c
··· 1652 1652 return 0; 1653 1653 } 1654 1654 1655 - void dp_bridge_enable(struct drm_bridge *drm_bridge) 1655 + void dp_bridge_atomic_enable(struct drm_bridge *drm_bridge, 1656 + struct drm_bridge_state *old_bridge_state) 1656 1657 { 1657 1658 struct msm_dp_bridge *dp_bridge = to_dp_bridge(drm_bridge); 1658 1659 struct msm_dp *dp = dp_bridge->dp_display; ··· 1708 1707 mutex_unlock(&dp_display->event_mutex); 1709 1708 } 1710 1709 1711 - void dp_bridge_disable(struct drm_bridge *drm_bridge) 1710 + void dp_bridge_atomic_disable(struct drm_bridge *drm_bridge, 1711 + struct drm_bridge_state *old_bridge_state) 1712 1712 { 1713 1713 struct msm_dp_bridge *dp_bridge = to_dp_bridge(drm_bridge); 1714 1714 struct msm_dp *dp = dp_bridge->dp_display; ··· 1720 1718 dp_ctrl_push_idle(dp_display->ctrl); 1721 1719 } 1722 1720 1723 - void dp_bridge_post_disable(struct drm_bridge *drm_bridge) 1721 + void dp_bridge_atomic_post_disable(struct drm_bridge *drm_bridge, 1722 + struct drm_bridge_state *old_bridge_state) 1724 1723 { 1725 1724 struct msm_dp_bridge *dp_bridge = to_dp_bridge(drm_bridge); 1726 1725 struct msm_dp *dp = dp_bridge->dp_display;
+3 -3
drivers/gpu/drm/msm/dp/dp_drm.c
··· 94 94 .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state, 95 95 .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state, 96 96 .atomic_reset = drm_atomic_helper_bridge_reset, 97 - .enable = dp_bridge_enable, 98 - .disable = dp_bridge_disable, 99 - .post_disable = dp_bridge_post_disable, 97 + .atomic_enable = dp_bridge_atomic_enable, 98 + .atomic_disable = dp_bridge_atomic_disable, 99 + .atomic_post_disable = dp_bridge_atomic_post_disable, 100 100 .mode_set = dp_bridge_mode_set, 101 101 .mode_valid = dp_bridge_mode_valid, 102 102 .get_modes = dp_bridge_get_modes,
+6 -3
drivers/gpu/drm/msm/dp/dp_drm.h
··· 23 23 struct drm_bridge *dp_bridge_init(struct msm_dp *dp_display, struct drm_device *dev, 24 24 struct drm_encoder *encoder); 25 25 26 - void dp_bridge_enable(struct drm_bridge *drm_bridge); 27 - void dp_bridge_disable(struct drm_bridge *drm_bridge); 28 - void dp_bridge_post_disable(struct drm_bridge *drm_bridge); 26 + void dp_bridge_atomic_enable(struct drm_bridge *drm_bridge, 27 + struct drm_bridge_state *old_bridge_state); 28 + void dp_bridge_atomic_disable(struct drm_bridge *drm_bridge, 29 + struct drm_bridge_state *old_bridge_state); 30 + void dp_bridge_atomic_post_disable(struct drm_bridge *drm_bridge, 31 + struct drm_bridge_state *old_bridge_state); 29 32 enum drm_mode_status dp_bridge_mode_valid(struct drm_bridge *bridge, 30 33 const struct drm_display_info *info, 31 34 const struct drm_display_mode *mode);