From: Andrew M. <ak...@li...> - 2009-06-02 20:19:22
|
On Sat, 30 May 2009 13:58:33 +0200 Krzysztof Helt <krz...@po...> wrote: > The intelfb driver sets color map depending on currently active pipe. However, if an LVDS > display is attached (like in laptop) the active pipe variable is never set. The default value is > PIPE_A and can be wrong. > Set up the pipe variable during driver initialization after hardware state was read. > > Also, the detection of the active display (and hence the pipe) is wrong. The pipes are assigned > to so called planes. Both pipes are always enabled on my laptop but only one plane is enabled > (the plane A for the CRT or the plane B for the LVDS). Change active pipe detection code > to take into account a status of the plane assigned to each pipe. > > The problem is visible in the 8 bpp mode if colors above 15 are used. The first 16 color > entries are displayed correctly. > > The graphics chip description is here (G45 vol. 3): > http://intellinuxgraphics.org/documentation.html > > Signed-off-by: Krzysztof Helt <krz...@wp...> > > --- > The second version of the fix to this problem. Now, it is much more sophisticated > based on the knowledge gained from documentation available at http://intellinuxgraphics.org/. > > It does not change a default behaviour (assumed pipe A) for all cases except the case that only > the plane assigned to the pipe B is active. It is enough to fix the issue for me. I queued this. > Please test it. But it would great be Dean and/or Michal were to be able to test it, please. |