On Fri, Jan 18, 2013 at 07:11:38PM +0200, ville.syrjala at linux.intel.com wrote: > From: Ville Syrj?l? <ville.syrjala at linux.intel.com> > > HSW no longer has the PIPECONF bit for limited range RGB output. > Instead the pipe CSC unit must be used to perform that task. > > The CSC pre offset are set to 0, since the incoming data is full > [0:255] range RGB, the coefficients are programmed to compress the > data into [0:219] range, and then we use either the CSC_MODE black > screen offset bit, or the CSC post offsets to shift the data to > the correct [16:235] range. > > Also have to change the confiuration of all planes so that the > data is sent through the pipe CSC unit. For simplicity send the > plane data through the pipe CSC unit always, and in case full > range output is requested, the pipe CSC unit is set up with an > identity transform to pass the plane data through unchanged. > > I've been told by some hardware people that the use of the pipe > CSC unit shouldn't result in any measurable increase in power > consumption numbers. > > Signed-off-by: Ville Syrj?l? <ville.syrjala at linux.intel.com> > --- > Note that I haven't actually tested this on HSW. I did test the earlier > prototype version on ILK and IVB. The pipe CSC unit on ILK isn't programmed > in quite the same as on HSW, but the IVB unit _should_ be identical to HSW. > > The main risk involves the coefficient registers. If the channel mapping > changed for some reason, we could get swapped channels. For some reason > reality and documenation didn't seem to agree how the channels are mapped > even on ILK and IVB. So I'd like someone to try this out on HSW to make > sure the output still looks correct. FYI I just tested this on a HSW box, and all the colors look correct. I also verified that the pipeconf color range bit is well and truly gone (hw won't allow you to even set it). So Daniel, I think this can go in as is. -- Ville Syrj?l? Intel OTC