[Intel-gfx] [PATCH] drm/i915: Fix RGB color range property for PCH platforms

Ville Syrjälä ville.syrjala at linux.intel.com
Thu Jan 10 12:10:37 CET 2013


On Wed, Jan 09, 2013 at 07:49:07PM +0100, Daniel Vetter wrote:
> On Wed, Jan 9, 2013 at 7:36 PM,  <ville.syrjala at linux.intel.com> wrote:
> > From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> >
> > The RGB color range select bit on the DP/SDVO/HDMI registers
> > disappeared when PCH was introduced, and instead a new PIPECONF bit
> > was added that performs the same function.
> >
> > Add a new intel_encoder function pointer to query the encoder whether
> > limited or full range should be selected, and set the PIPECONF bit 13
> > accordingly.
> >
> > Experimentation showed that simply toggling the bit while the pipe is
> > active doesn't work. We need to restart the pipe, which luckily already
> > happens.
> >
> > The DP/SDVO/HDMI bit 8 is marked MBZ in the docs, so avoid setting it,
> > although it doesn't seem to do any harm in practice.
> >
> > TODO:
> > - the PIPECONF bit too seems to have disappeared from HSW. Need a
> >   volunteer to test if it's just a documentation issue or if it's really
> >   gone. If the bit is gone and no easy replacement is found, then I suppose
> >   we may need to use the pipe CSC unit to perform the range compression.
> > - move color_range to intel_encoder to avoid the silly func pointer?
> >
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=46800
> > Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> 
> Can't we just add another flag to mod->private_flags like we do for
> 6bpc dithering? I know that that's ugly, and we need to extend this
> into a more generic pipe configuration struct, but we have way to many
> bits&pieces where encoders want to control/influence pipe state like
> that, so adding new virtual functions like this wont scale.

Right. private_flags seems like a decent way to handle this.
v2 coming up soon.

-- 
Ville Syrjälä
Intel OTC



More information about the Intel-gfx mailing list