From: Krzysztof Helt <krzysztof...@wp.pl>

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.

I also found by experiment that if both pipes were enabled, the PIPE_B is used 
(active).

The problem is visible in the 8 bpp mode if colors above 15 are used. The first 
16 color
entries are displayed correctly.

Signed-off-by: Krzysztof Helt <krzysztof...@wp.pl>

---
This is not a regression. I have reproduced it in the 2.6.28 easily.

Dean, please test the patch.

diff --git a/drivers/video/intelfb/intelfbdrv.c 
b/drivers/video/intelfb/intelfbdrv.c
index ace14fe..b47f6dd 100644
--- a/drivers/video/intelfb/intelfbdrv.c
+++ b/drivers/video/intelfb/intelfbdrv.c
@@ -871,6 +871,12 @@ static int __devinit intelfb_pci_register(struct pci_dev 
*pdev,
 
        intelfbhw_print_hw_state(dinfo, &dinfo->save_state);
 
+       /* Check whether pipe A or pipe B is enabled. */
+       if (dinfo->save_state.pipe_a_conf & PIPECONF_ENABLE)
+               dinfo->pipe = PIPE_A;
+       if (dinfo->save_state.pipe_b_conf & PIPECONF_ENABLE)
+               dinfo->pipe = PIPE_B;
+
        if (bailearly == 18)
                bailout(dinfo);
 

----------------------------------------------------------------------
Dzwonki na komorkê!
Sprawdz >> http://link.interia.pl/f2161


------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables 
unlimited royalty-free distribution of the report engine 
for externally facing server and web deployment. 
http://p.sf.net/sfu/businessobjects
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to