| From 82161b2209ac8fc97b473c77442defeef84b3400 Mon Sep 17 00:00:00 2001 |
| From: Rodrigo Vivi <rodrigo.vivi@gmail.com> |
| Date: Thu, 11 Jul 2013 18:45:05 -0300 |
| Subject: drm/i915: Hook PSR functionality |
| |
| PSR must be enabled after transcoder and port are running. |
| And it is only available for HSW. |
| |
| v2: move enable/disable to intel_ddi |
| v3: The spec suggests PSR should be disabled even before backlight (by pzanoni) |
| v4: also disabling and enabling whenever panel is disabled/enabled. |
| v5: make it last patch to avoid breaking whenever bisecting. So calling for |
| update and force exit came to this patch along with enable/disable calls. |
| v6: Remove unused and unecessary psr_enable/disable calls, as notice by Paulo. |
| |
| CC: Paulo Zanoni <paulo.r.zanoni@intel.com> |
| Signed-off-by: Rodrigo Vivi <rodrigo.vivi@gmail.com> |
| [danvet: Drop the psr exit code in the busy ioctl since I didn't merge |
| that part of the infrastructure yet - it needs more thought.] |
| Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> |
| |
| (cherry picked from commit 4906557eb37b7fef84fad4304acef6dedf919880) |
| Signed-off-by: Darren Hart <dvhart@linux.intel.com> |
| --- |
| drivers/gpu/drm/i915/intel_ddi.c | 2 ++ |
| drivers/gpu/drm/i915/intel_display.c | 1 + |
| 2 files changed, 3 insertions(+) |
| |
| --- a/drivers/gpu/drm/i915/intel_ddi.c |
| +++ b/drivers/gpu/drm/i915/intel_ddi.c |
| @@ -1124,6 +1124,7 @@ static void intel_enable_ddi(struct inte |
| intel_dp_stop_link_train(intel_dp); |
| |
| ironlake_edp_backlight_on(intel_dp); |
| + intel_edp_psr_enable(intel_dp); |
| } |
| |
| if (intel_crtc->eld_vld && type != INTEL_OUTPUT_EDP) { |
| @@ -1154,6 +1155,7 @@ static void intel_disable_ddi(struct int |
| if (type == INTEL_OUTPUT_EDP) { |
| struct intel_dp *intel_dp = enc_to_intel_dp(encoder); |
| |
| + intel_edp_psr_disable(intel_dp); |
| ironlake_edp_backlight_off(intel_dp); |
| } |
| } |
| --- a/drivers/gpu/drm/i915/intel_display.c |
| +++ b/drivers/gpu/drm/i915/intel_display.c |
| @@ -2274,6 +2274,7 @@ intel_pipe_set_base(struct drm_crtc *crt |
| } |
| |
| intel_update_fbc(dev); |
| + intel_edp_psr_update(dev); |
| mutex_unlock(&dev->struct_mutex); |
| |
| intel_crtc_update_sarea_pos(crtc, x, y); |