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