|
@@ -1750,6 +1750,19 @@ static void cdv_intel_crtc_destroy(struct drm_crtc *crtc)
|
|
kfree(psb_intel_crtc);
|
|
kfree(psb_intel_crtc);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static void cdv_intel_crtc_disable(struct drm_crtc *crtc)
|
|
|
|
+{
|
|
|
|
+ struct gtt_range *gt;
|
|
|
|
+ struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private;
|
|
|
|
+
|
|
|
|
+ crtc_funcs->dpms(crtc, DRM_MODE_DPMS_OFF);
|
|
|
|
+
|
|
|
|
+ if (crtc->fb) {
|
|
|
|
+ gt = to_psb_fb(crtc->fb)->gtt;
|
|
|
|
+ psb_gtt_unpin(gt);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
const struct drm_crtc_helper_funcs cdv_intel_helper_funcs = {
|
|
const struct drm_crtc_helper_funcs cdv_intel_helper_funcs = {
|
|
.dpms = cdv_intel_crtc_dpms,
|
|
.dpms = cdv_intel_crtc_dpms,
|
|
.mode_fixup = cdv_intel_crtc_mode_fixup,
|
|
.mode_fixup = cdv_intel_crtc_mode_fixup,
|
|
@@ -1757,6 +1770,7 @@ const struct drm_crtc_helper_funcs cdv_intel_helper_funcs = {
|
|
.mode_set_base = cdv_intel_pipe_set_base,
|
|
.mode_set_base = cdv_intel_pipe_set_base,
|
|
.prepare = cdv_intel_crtc_prepare,
|
|
.prepare = cdv_intel_crtc_prepare,
|
|
.commit = cdv_intel_crtc_commit,
|
|
.commit = cdv_intel_crtc_commit,
|
|
|
|
+ .disable = cdv_intel_crtc_disable,
|
|
};
|
|
};
|
|
|
|
|
|
const struct drm_crtc_funcs cdv_intel_crtc_funcs = {
|
|
const struct drm_crtc_funcs cdv_intel_crtc_funcs = {
|