diff mbox

drm/i915/vlv: use W_SYNC_SHIFT for interlaced modes on VLV

Message ID 1395946568-24618-1-git-send-email-jbarnes@virtuousgeek.org (mailing list archive)
State New, archived
Headers show

Commit Message

Jesse Barnes March 27, 2014, 6:56 p.m. UTC
This makes HDMI testers happier on VLV platforms.  It may be that we
need it for any non-SVO platform, but I don't have any tests to back
that up, so I'm leaving other pre-ILK platforms alone for now.

Tested-by: "Clint Taylor <clinton.a.taylor@intel.com>"
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
 drivers/gpu/drm/i915/intel_display.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Ville Syrjälä March 28, 2014, 7:49 p.m. UTC | #1
On Thu, Mar 27, 2014 at 11:56:08AM -0700, Jesse Barnes wrote:
> This makes HDMI testers happier on VLV platforms.  It may be that we
> need it for any non-SVO platform, but I don't have any tests to back
> that up, so I'm leaving other pre-ILK platforms alone for now.

It looks like we should use PIPECONF_INTERLACE_W_FIELD_INDICATION
only with sdvo on gen4+, and always on gen3 (simply because VSYNCSHIFT
didn't yet exist).

Oh and we seem to misprogram VSYNCSHIFT on ILK+ with SDVO. The correct
value would be htotal/2 instead of the midway point between hsync
pulses. That's the value PIPECONF_INTERLACE_W_FIELD_INDICATION also
implies, but ILK+ no longer has that option in PIPECONF, so VSYNCSHIFT
must be progammed manually.

> 
> Tested-by: "Clint Taylor <clinton.a.taylor@intel.com>"
> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> ---
>  drivers/gpu/drm/i915/intel_display.c |    5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index e0a87aa..d633139 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -5541,8 +5541,11 @@ static void i9xx_set_pipeconf(struct intel_crtc *intel_crtc)
>  		}
>  	}
>  
> -	if (!IS_GEN2(dev) &&
> +	if (IS_VALLEYVIEW(dev) &&
>  	    intel_crtc->config.adjusted_mode.flags & DRM_MODE_FLAG_INTERLACE)
> +		pipeconf |= PIPECONF_INTERLACE_W_SYNC_SHIFT;
> +	else if (!IS_GEN2(dev) &&
> +		 intel_crtc->config.adjusted_mode.flags & DRM_MODE_FLAG_INTERLACE)
>  		pipeconf |= PIPECONF_INTERLACE_W_FIELD_INDICATION;
>  	else
>  		pipeconf |= PIPECONF_PROGRESSIVE;
> -- 
> 1.7.9.5PIPECONF_PROGRESSIVE
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Ville Syrjälä March 28, 2014, 8:08 p.m. UTC | #2
On Thu, Mar 27, 2014 at 11:56:08AM -0700, Jesse Barnes wrote:
> This makes HDMI testers happier on VLV platforms.  It may be that we
> need it for any non-SVO platform, but I don't have any tests to back
> that up, so I'm leaving other pre-ILK platforms alone for now.
> 
> Tested-by: "Clint Taylor <clinton.a.taylor@intel.com>"
> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

> ---
>  drivers/gpu/drm/i915/intel_display.c |    5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index e0a87aa..d633139 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -5541,8 +5541,11 @@ static void i9xx_set_pipeconf(struct intel_crtc *intel_crtc)
>  		}
>  	}
>  
> -	if (!IS_GEN2(dev) &&
> +	if (IS_VALLEYVIEW(dev) &&
>  	    intel_crtc->config.adjusted_mode.flags & DRM_MODE_FLAG_INTERLACE)
> +		pipeconf |= PIPECONF_INTERLACE_W_SYNC_SHIFT;
> +	else if (!IS_GEN2(dev) &&
> +		 intel_crtc->config.adjusted_mode.flags & DRM_MODE_FLAG_INTERLACE)
>  		pipeconf |= PIPECONF_INTERLACE_W_FIELD_INDICATION;
>  	else
>  		pipeconf |= PIPECONF_PROGRESSIVE;
> -- 
> 1.7.9.5
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Chris Wilson March 28, 2014, 8:30 p.m. UTC | #3
On Fri, Mar 28, 2014 at 10:08:55PM +0200, Ville Syrjälä wrote:
> On Thu, Mar 27, 2014 at 11:56:08AM -0700, Jesse Barnes wrote:
> > This makes HDMI testers happier on VLV platforms.  It may be that we
> > need it for any non-SVO platform, but I don't have any tests to back
> > that up, so I'm leaving other pre-ILK platforms alone for now.
> > 
> > Tested-by: "Clint Taylor <clinton.a.taylor@intel.com>"
> > Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> 
> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=74964

Shouldn't this only be applied if sdvo or hdmi?
-Chris
Daniel Vetter March 29, 2014, 9:36 a.m. UTC | #4
On Fri, Mar 28, 2014 at 08:30:55PM +0000, Chris Wilson wrote:
> On Fri, Mar 28, 2014 at 10:08:55PM +0200, Ville Syrjälä wrote:
> > On Thu, Mar 27, 2014 at 11:56:08AM -0700, Jesse Barnes wrote:
> > > This makes HDMI testers happier on VLV platforms.  It may be that we
> > > need it for any non-SVO platform, but I don't have any tests to back
> > > that up, so I'm leaving other pre-ILK platforms alone for now.
> > > 
> > > Tested-by: "Clint Taylor <clinton.a.taylor@intel.com>"
> > > Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> > 
> > Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=74964
> 
> Shouldn't this only be applied if sdvo or hdmi?

Thanks for patch, review and bz link, applied. Ville has some follow-up
patches to rectify, I'll slurp them in now.
-Daniel
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index e0a87aa..d633139 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -5541,8 +5541,11 @@  static void i9xx_set_pipeconf(struct intel_crtc *intel_crtc)
 		}
 	}
 
-	if (!IS_GEN2(dev) &&
+	if (IS_VALLEYVIEW(dev) &&
 	    intel_crtc->config.adjusted_mode.flags & DRM_MODE_FLAG_INTERLACE)
+		pipeconf |= PIPECONF_INTERLACE_W_SYNC_SHIFT;
+	else if (!IS_GEN2(dev) &&
+		 intel_crtc->config.adjusted_mode.flags & DRM_MODE_FLAG_INTERLACE)
 		pipeconf |= PIPECONF_INTERLACE_W_FIELD_INDICATION;
 	else
 		pipeconf |= PIPECONF_PROGRESSIVE;