Message ID | 1359140356-4050-8-git-send-email-przanoni@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Jan 25, 2013 at 04:59:16PM -0200, Paulo Zanoni wrote: > From: Paulo Zanoni <paulo.r.zanoni@intel.com> > > Instead of setting it at the beginning of haswell_crtc_mode_set, let's > set it at the beginning of intel_crtc_mode_set. When > intel_crt_mode_set calls drm_vblank_pre_modeset we already need to > have the transcoder_edp correctly set, because eventually > drm_vblank_pre_modeset calls functions that call i915_pipe_enabled > from i915_irq.c, which will read PIPECONF(cpu_transcoder). > > This is a bug that affects us since we added support for > TRANSCODER_EDP, but I was only able to see the problem after > suspending a machine with the power well disabled (got an "unclaimed > register" error. > > Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> > Reviewed-by: Jani Nikula <jani.nikula@intel.com> I've picked up patches 4-7 from this series. I'm leaving patch 3 out for now until that entire "unclaimed register write business" with the dynamic power down well code is settled. -Daniel
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 022c59d..dfe8cd7 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -5668,11 +5668,6 @@ static int haswell_crtc_mode_set(struct drm_crtc *crtc, num_connectors++; } - if (is_cpu_edp) - intel_crtc->cpu_transcoder = TRANSCODER_EDP; - else - intel_crtc->cpu_transcoder = pipe; - /* We are not sure yet this won't happen. */ WARN(!HAS_PCH_LPT(dev), "Unexpected PCH type %d\n", INTEL_PCH_TYPE(dev)); @@ -5737,6 +5732,11 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc, int pipe = intel_crtc->pipe; int ret; + if (IS_HASWELL(dev) && intel_pipe_has_type(crtc, INTEL_OUTPUT_EDP)) + intel_crtc->cpu_transcoder = TRANSCODER_EDP; + else + intel_crtc->cpu_transcoder = pipe; + drm_vblank_pre_modeset(dev, pipe); ret = dev_priv->display.crtc_mode_set(crtc, mode, adjusted_mode,