[Intel-gfx] [RFC] drm/i915: check FDI config for 3 pipe

Jesse Barnes jbarnes at virtuousgeek.org
Thu Apr 19 00:32:10 CEST 2012


On Wed, 18 Apr 2012 15:27:44 -0700
Jesse Barnes <jbarnes at virtuousgeek.org> wrote:

> On Wed, 18 Apr 2012 14:25:36 -0700
> Jesse Barnes <jbarnes at virtuousgeek.org> wrote:
> 
> > Three pipe can only be enabled in some cases and updated docs indicate
> > a bit to control FDI B+C sharing.
> > 
> > This patch adds a check to make sure we can support a given config with
> > the existing FDI lane configuration, and tries to set the bit as
> > appropriate.
> > 
> > We may want to go further though and just totally break the link
> > between our pipes, planes, PLLs, FDI lanes, transcoders, etc and the
> > CRTCs we expose to userspace.  We could theoretically just allocate new
> > ones every mode set.  That wouldn't help a whole lot though since we
> > don't get full configuration changes from userspace, just a small
> > window of CRTC data with no idea of what might happen next...
> 
> Ah just found a bug in reviewing my own patch here.
> 
> +	if (intel_crtc->pipe > 1) {
> +		if (intel_crtc->fdi_lanes > 2)
> +			I915_WRITE(SOUTH_CHICKEN1, I915_READ(SOUTH_CHICKEN1) &
> +				   ~FDIBC_LANE_SHARE_EN);
> +		else
> +			I915_WRITE(SOUTH_CHICKEN1, I915_READ(SOUTH_CHICKEN1) |
> +				   FDIBC_LANE_SHARE_EN);
> +	}
> 
> Should be if (intel_crtc->pipe > 0) since we need to apply this when
> either FDI C *or* B changes config.
> 
> I'll try, maybe it'll help with the funky 3 pipe config mode set
> problem I saw.

Oh and this hunk belongs in the IVB function!

-- 
Jesse Barnes, Intel Open Source Technology Center



More information about the Intel-gfx mailing list