aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/drm_crtc_helper.c5
-rw-r--r--include/drm/drm_crtc_helper.h3
2 files changed, 7 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
index 9b2a54117c91..fa1323ff56b3 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
@@ -241,7 +241,10 @@ void drm_helper_disable_unused_functions(struct drm_device *dev)
241 struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private; 241 struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private;
242 crtc->enabled = drm_helper_crtc_in_use(crtc); 242 crtc->enabled = drm_helper_crtc_in_use(crtc);
243 if (!crtc->enabled) { 243 if (!crtc->enabled) {
244 crtc_funcs->dpms(crtc, DRM_MODE_DPMS_OFF); 244 if (crtc_funcs->disable)
245 (*crtc_funcs->disable)(crtc);
246 else
247 (*crtc_funcs->dpms)(crtc, DRM_MODE_DPMS_OFF);
245 crtc->fb = NULL; 248 crtc->fb = NULL;
246 } 249 }
247 } 250 }
diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h
index 1121f7799c6f..7e3c9766acba 100644
--- a/include/drm/drm_crtc_helper.h
+++ b/include/drm/drm_crtc_helper.h
@@ -63,6 +63,9 @@ struct drm_crtc_helper_funcs {
63 63
64 /* reload the current crtc LUT */ 64 /* reload the current crtc LUT */
65 void (*load_lut)(struct drm_crtc *crtc); 65 void (*load_lut)(struct drm_crtc *crtc);
66
67 /* disable crtc when not in use - more explicit than dpms off */
68 void (*disable)(struct drm_crtc *crtc);
66}; 69};
67 70
68struct drm_encoder_helper_funcs { 71struct drm_encoder_helper_funcs {