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

Configure Feed

Select the types of activity you want to include in your feed.

drm/msm: Cut dpu_kms hooks from msm_pm_suspend/resume

Removes the traces of the non-atomic helper calls in
msm_pm_suspend/resume since we just deleted those functions (see patch
1). Also removes the drm_kms_helper_poll_disable/enable calls, since
the DRM_CONNECTOR_POLL_CONNECT flag is never set so periodic polling
doesn't happen anyways.

v2: reorganized patch order
v3: made error checks less severe

Reviewed-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Bruce Wang <bzwang@chromium.org>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>

authored by

Bruce Wang and committed by
Rob Clark
3750e78c b2b83523

+12 -18
+12 -15
drivers/gpu/drm/msm/msm_drv.c
··· 1070 1070 { 1071 1071 struct drm_device *ddev = dev_get_drvdata(dev); 1072 1072 struct msm_drm_private *priv = ddev->dev_private; 1073 - struct msm_kms *kms = priv->kms; 1074 1073 1075 - /* TODO: Use atomic helper suspend/resume */ 1076 - if (kms && kms->funcs && kms->funcs->pm_suspend) 1077 - return kms->funcs->pm_suspend(dev); 1078 - 1079 - drm_kms_helper_poll_disable(ddev); 1074 + if (WARN_ON(priv->pm_state)) 1075 + drm_atomic_state_put(priv->pm_state); 1080 1076 1081 1077 priv->pm_state = drm_atomic_helper_suspend(ddev); 1082 1078 if (IS_ERR(priv->pm_state)) { 1083 - drm_kms_helper_poll_enable(ddev); 1084 - return PTR_ERR(priv->pm_state); 1079 + int ret = PTR_ERR(priv->pm_state); 1080 + DRM_ERROR("Failed to suspend dpu, %d\n", ret); 1081 + return ret; 1085 1082 } 1086 1083 1087 1084 return 0; ··· 1088 1091 { 1089 1092 struct drm_device *ddev = dev_get_drvdata(dev); 1090 1093 struct msm_drm_private *priv = ddev->dev_private; 1091 - struct msm_kms *kms = priv->kms; 1094 + int ret; 1092 1095 1093 - /* TODO: Use atomic helper suspend/resume */ 1094 - if (kms && kms->funcs && kms->funcs->pm_resume) 1095 - return kms->funcs->pm_resume(dev); 1096 + if (WARN_ON(!priv->pm_state)) 1097 + return -ENOENT; 1096 1098 1097 - drm_atomic_helper_resume(ddev, priv->pm_state); 1098 - drm_kms_helper_poll_enable(ddev); 1099 + ret = drm_atomic_helper_resume(ddev, priv->pm_state); 1100 + if (!ret) 1101 + priv->pm_state = NULL; 1099 1102 1100 - return 0; 1103 + return ret; 1101 1104 } 1102 1105 #endif 1103 1106
-3
drivers/gpu/drm/msm/msm_kms.h
··· 67 67 void (*set_encoder_mode)(struct msm_kms *kms, 68 68 struct drm_encoder *encoder, 69 69 bool cmd_mode); 70 - /* pm suspend/resume hooks */ 71 - int (*pm_suspend)(struct device *dev); 72 - int (*pm_resume)(struct device *dev); 73 70 /* cleanup: */ 74 71 void (*destroy)(struct msm_kms *kms); 75 72 #ifdef CONFIG_DEBUG_FS