All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [Bugme-new] [Bug 13285] New: INTELFB: Colors display incorrectly
       [not found] <bug-13285-10286@http.bugzilla.kernel.org/>
@ 2009-05-12 22:19 ` Andrew Morton
  2009-05-16 18:42   ` Krzysztof Helt
       [not found]   ` <20090517081743.92002707.krzysztof.h1@poczta.fm>
  0 siblings, 2 replies; 10+ messages in thread
From: Andrew Morton @ 2009-05-12 22:19 UTC (permalink / raw)
  To: linux-fbdev-devel, dri-devel; +Cc: samanddeanus, bugzilla-daemon, bugme-daemon


(switched to email.  Please respond via emailed reply-to-all, not via the
bugzilla web interface).

On Tue, 12 May 2009 01:40:48 GMT
bugzilla-daemon@bugzilla.kernel.org wrote:

> http://bugzilla.kernel.org/show_bug.cgi?id=13285
> 
>            Summary: INTELFB: Colors display incorrectly
>            Product: Drivers
>            Version: 2.5
>     Kernel Version: 2.6.30-rc5

This is a post-2.6.29 regression.

>           Platform: All
>         OS/Version: Linux
>               Tree: Mainline
>             Status: NEW
>           Severity: normal
>           Priority: P1
>          Component: Console/Framebuffers
>         AssignedTo: jsimmons@infradead.org
>         ReportedBy: samanddeanus@yahoo.com
>         Regression: Yes
> 
> 
> On my system, the colors are displaying incorrectly when using the Intel
> framebuffer.  For example the Tux penguin logo has a blue background, and when
> I start X11 with the fbdev drivers, the xterm also has a blue background, when
> it is set up to have a white background.
> 
> This does not occur in kernel 2.6.29 -- I can see the Tasmanian devil in a
> penguin mask (Tuz) just fine and can view images, etc on the framebuffer.
> 

The only change to drivers/video/intelfb/ since 2.6.29 was
347486bb108fa6e0fd2753c1be3519d6be2516ed ("intelfb: support i854")
which added a device ID.

Do we think that this regression is due to fbdev changes, or to DRI
changes?

Thanks.

------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image 
processing features enabled. http://p.sf.net/sfu/kodak-com
--

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Bugme-new] [Bug 13285] New: INTELFB: Colors display incorrectly
  2009-05-12 22:19 ` [Bugme-new] [Bug 13285] New: INTELFB: Colors display incorrectly Andrew Morton
@ 2009-05-16 18:42   ` Krzysztof Helt
       [not found]   ` <20090517081743.92002707.krzysztof.h1@poczta.fm>
  1 sibling, 0 replies; 10+ messages in thread
From: Krzysztof Helt @ 2009-05-16 18:42 UTC (permalink / raw)
  To: Andrew Morton; +Cc: dri-devel, linux-fbdev-devel, bugzilla-daemon, samanddeanus

On Tue, 12 May 2009 15:19:34 -0700
Andrew Morton <akpm@linux-foundation.org> wrote:

> 
> (switched to email.  Please respond via emailed reply-to-all, not via the
> bugzilla web interface).
> 
> On Tue, 12 May 2009 01:40:48 GMT
> bugzilla-daemon@bugzilla.kernel.org wrote:
> 
> > http://bugzilla.kernel.org/show_bug.cgi?id=13285
> > 
> >            Summary: INTELFB: Colors display incorrectly
> >            Product: Drivers
> >            Version: 2.5
> >     Kernel Version: 2.6.30-rc5
> 
> This is a post-2.6.29 regression.
> 
> >           Platform: All
> >         OS/Version: Linux
> >               Tree: Mainline
> >             Status: NEW
> >           Severity: normal
> >           Priority: P1
> >          Component: Console/Framebuffers
> >         AssignedTo: jsimmons@infradead.org
> >         ReportedBy: samanddeanus@yahoo.com
> >         Regression: Yes
> > 
> > 
> > On my system, the colors are displaying incorrectly when using the Intel
> > framebuffer.  For example the Tux penguin logo has a blue background, and when
> > I start X11 with the fbdev drivers, the xterm also has a blue background, when
> > it is set up to have a white background.
> > 
> > This does not occur in kernel 2.6.29 -- I can see the Tasmanian devil in a
> > penguin mask (Tuz) just fine and can view images, etc on the framebuffer.
> > 
> 

I have reproduced the bug on Intel 852/855 chipset (Asus A3L laptop). 

It took me long because I had problems with a hard drive and had to wipe it with a low-level format tool.

I am trying to identify cause of the bug. 

Regards,
Krzysztof

----------------------------------------------------------------------
Fantastyczne nagrody do zgarniecia!
Zagraj >> http://link.interia.pl/f2177 



------------------------------------------------------------------------------
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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Linux-fbdev-devel] [Bugme-new] [Bug 13285] New: INTELFB: Colors display incorrectly
       [not found]   ` <20090517081743.92002707.krzysztof.h1@poczta.fm>
@ 2009-05-17  6:19     ` Andrew Morton
       [not found]       ` <20090517123032.2b8bad00.krzysztof.h1@poczta.fm>
  0 siblings, 1 reply; 10+ messages in thread
From: Andrew Morton @ 2009-05-17  6:19 UTC (permalink / raw)
  To: Krzysztof Helt
  Cc: samanddeanus, linux-fbdev-devel, dri-devel, bugzilla-daemon

On Sun, 17 May 2009 08:17:43 +0200 Krzysztof Helt <krzysztof.h1@poczta.fm> wrote:

> From: Krzysztof Helt <krzysztof.h1@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.h1@wp.pl>
> 
> ---
> This is not a regression. I have reproduced it in the 2.6.28 easily.

hm, Dean's original report had

    This does not occur in kernel 2.6.29 -- I can see the Tasmanian
    devil in a penguin mask (Tuz) just fine and can view images, etc on
    the framebuffer.

> Dean, please test the patch.

Yes please.

> 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);


------------------------------------------------------------------------------
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
--

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Bugme-new] [Bug 13285] New: INTELFB: Colors display incorrectly
       [not found]       ` <20090517123032.2b8bad00.krzysztof.h1@poczta.fm>
@ 2009-05-17 15:07         ` Michal Suchanek
  2009-05-30 11:58           ` Krzysztof Helt
  0 siblings, 1 reply; 10+ messages in thread
From: Michal Suchanek @ 2009-05-17 15:07 UTC (permalink / raw)
  To: Krzysztof Helt
  Cc: Andrew Morton, samanddeanus, linux-fbdev-devel, dri-devel,
	bugzilla-daemon

2009/5/17 Krzysztof Helt <krzysztof.h1@poczta.fm>:
> On Sat, 16 May 2009 23:19:32 -0700
> Andrew Morton <akpm@linux-foundation.org> wrote:
>
>> On Sun, 17 May 2009 08:17:43 +0200 Krzysztof Helt <krzysztof.h1@poczta.fm> wrote:
>>
>> > This is not a regression. I have reproduced it in the 2.6.28 easily.
>>
>> hm, Dean's original report had
>>
>>     This does not occur in kernel 2.6.29 -- I can see the Tasmanian
>>     devil in a penguin mask (Tuz) just fine and can view images, etc on
>>     the framebuffer.
>>
>
> I can confirm that Tuz is also broken on my laptop (kernel v2.6.29).
> Maybe Dean had set different color depth ("vga=" parameter) for the older kernel?
>
> The dmesg output for the 2.6.29 would clear any doubts.
>

For me this is broken ever since 2.6.26 on a Mac Mini with all of
efifb/intelfb/vesafb but perhaps this is a different issue.

I will try to rebuild 2.6.29 with intelfb and the patch to see if that
makes a difference.

Currently efifb does give correct geometry but wrong colours for me,
the other framebuffers would also produce picture with wrong geometry
with 2.6.26.

Thanks

Michal

------------------------------------------------------------------------------
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
_______________________________________________
Linux-fbdev-devel mailing list
Linux-fbdev-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-fbdev-devel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Bugme-new] [Bug 13285] New: INTELFB: Colors display incorrectly
  2009-05-17 15:07         ` Michal Suchanek
@ 2009-05-30 11:58           ` Krzysztof Helt
  2009-06-02 20:18             ` Andrew Morton
  0 siblings, 1 reply; 10+ messages in thread
From: Krzysztof Helt @ 2009-05-30 11:58 UTC (permalink / raw)
  To: Michal Suchanek
  Cc: Andrew Morton, samanddeanus, linux-fbdev-devel, dri-devel,
	bugzilla-daemon

From: Krzysztof Helt <krzysztof.h1@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.

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 <krzysztof.h1@wp.pl>

---
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.

Please test it.

diff -urp linux-ref/drivers/video/intelfb/intelfbdrv.c linux-2.6.30-rc7/drivers/video/intelfb/intelfbdrv.c
--- linux-ref/drivers/video/intelfb/intelfbdrv.c	2009-05-23 23:47:00.000000000 +0200
+++ linux-2.6.30-rc7/drivers/video/intelfb/intelfbdrv.c	2009-05-29 07:37:27.000000000 +0200
@@ -874,6 +874,9 @@ static int __devinit intelfb_pci_registe
 	if (bailearly == 18)
 		bailout(dinfo);
 
+	/* read active pipe */
+	dinfo->pipe = intelfbhw_active_pipe(&dinfo->save_state);
+
 	/* Cursor initialisation */
 	if (dinfo->hwcursor) {
 		intelfbhw_cursor_init(dinfo);
diff -urp linux-ref/drivers/video/intelfb/intelfbhw.c linux-2.6.30-rc7/drivers/video/intelfb/intelfbhw.c
--- linux-ref/drivers/video/intelfb/intelfbhw.c	2009-05-23 23:47:00.000000000 +0200
+++ linux-2.6.30-rc7/drivers/video/intelfb/intelfbhw.c	2009-05-29 07:42:06.000000000 +0200
@@ -469,6 +469,32 @@ void intelfbhw_do_blank(int blank, struc
 }
 
 
+/* Check which pipe is connected to an active display plane. */
+int intelfbhw_active_pipe(const struct intelfb_hwstate *hw)
+{
+	int pipe = -1;
+
+	/* keep old default behaviour - prefer PIPE_A */
+	if (hw->disp_b_ctrl & DISPPLANE_PLANE_ENABLE) {
+		pipe = (hw->disp_b_ctrl >> DISPPLANE_SEL_PIPE_SHIFT);
+		pipe &= PIPE_MASK;
+		if (unlikely(pipe == PIPE_A))
+			return PIPE_A;
+	}
+	if (hw->disp_a_ctrl & DISPPLANE_PLANE_ENABLE) {
+		pipe = (hw->disp_a_ctrl >> DISPPLANE_SEL_PIPE_SHIFT);
+		pipe &= PIPE_MASK;
+		if (likely(pipe == PIPE_A))
+			return PIPE_A;
+	}
+	/* Impossible that no pipe is selected - return PIPE_A */
+	WARN_ON(pipe == -1);
+	if (unlikely(pipe == -1))
+		pipe = PIPE_A;
+
+	return pipe;
+}
+
 void intelfbhw_setcolreg(struct intelfb_info *dinfo, unsigned regno,
 			 unsigned red, unsigned green, unsigned blue,
 			 unsigned transp)
@@ -1019,7 +1045,7 @@ int intelfbhw_mode_to_hw(struct intelfb_
 			 struct intelfb_hwstate *hw,
 			 struct fb_var_screeninfo *var)
 {
-	int pipe = PIPE_A;
+	int pipe = intelfbhw_active_pipe(hw);
 	u32 *dpll, *fp0, *fp1;
 	u32 m1, m2, n, p1, p2, clock_target, clock;
 	u32 hsync_start, hsync_end, hblank_start, hblank_end, htotal, hactive;
@@ -1033,12 +1059,6 @@ int intelfbhw_mode_to_hw(struct intelfb_
 	/* Disable VGA */
 	hw->vgacntrl |= VGA_DISABLE;
 
-	/* Check whether pipe A or pipe B is enabled. */
-	if (hw->pipe_a_conf & PIPECONF_ENABLE)
-		pipe = PIPE_A;
-	else if (hw->pipe_b_conf & PIPECONF_ENABLE)
-		pipe = PIPE_B;
-
 	/* Set which pipe's registers will be set. */
 	if (pipe == PIPE_B) {
 		dpll = &hw->dpll_b;
@@ -1262,7 +1282,6 @@ int intelfbhw_mode_to_hw(struct intelfb_
 int intelfbhw_program_mode(struct intelfb_info *dinfo,
 			   const struct intelfb_hwstate *hw, int blank)
 {
-	int pipe = PIPE_A;
 	u32 tmp;
 	const u32 *dpll, *fp0, *fp1, *pipe_conf;
 	const u32 *hs, *ht, *hb, *vs, *vt, *vb, *ss;
@@ -1272,7 +1291,7 @@ int intelfbhw_program_mode(struct intelf
 	u32 src_size_reg;
 	u32 count, tmp_val[3];
 
-	/* Assume single pipe, display plane A, analog CRT. */
+	/* Assume single pipe */
 
 #if VERBOSE > 0
 	DBG_MSG("intelfbhw_program_mode\n");
@@ -1283,15 +1302,9 @@ int intelfbhw_program_mode(struct intelf
 	tmp |= VGA_DISABLE;
 	OUTREG(VGACNTRL, tmp);
 
-	/* Check whether pipe A or pipe B is enabled. */
-	if (hw->pipe_a_conf & PIPECONF_ENABLE)
-		pipe = PIPE_A;
-	else if (hw->pipe_b_conf & PIPECONF_ENABLE)
-		pipe = PIPE_B;
+	dinfo->pipe = intelfbhw_active_pipe(hw);
 
-	dinfo->pipe = pipe;
-
-	if (pipe == PIPE_B) {
+	if (dinfo->pipe == PIPE_B) {
 		dpll = &hw->dpll_b;
 		fp0 = &hw->fpb0;
 		fp1 = &hw->fpb1;
diff -urp linux-ref/drivers/video/intelfb/intelfbhw.h linux-2.6.30-rc7/drivers/video/intelfb/intelfbhw.h
--- linux-ref/drivers/video/intelfb/intelfbhw.h	2009-05-23 23:47:00.000000000 +0200
+++ linux-2.6.30-rc7/drivers/video/intelfb/intelfbhw.h	2009-05-29 07:43:54.000000000 +0200
@@ -604,5 +604,6 @@ extern void intelfbhw_cursor_reset(struc
 extern int intelfbhw_enable_irq(struct intelfb_info *dinfo);
 extern void intelfbhw_disable_irq(struct intelfb_info *dinfo);
 extern int intelfbhw_wait_for_vsync(struct intelfb_info *dinfo, u32 pipe);
+extern int intelfbhw_active_pipe(const struct intelfb_hwstate *hw);
 
 #endif /* _INTELFBHW_H */



----------------------------------------------------------------------
Kup wlasne mieszkanie za 33 tys. zl.
Sprawdz >>> http://link.interia.pl/f21a3


------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT 
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & 
iPhoneDevCamp as they present alongside digital heavyweights like Barbarian 
Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Bugme-new] [Bug 13285] New: INTELFB: Colors display incorrectly
  2009-05-30 11:58           ` Krzysztof Helt
@ 2009-06-02 20:18             ` Andrew Morton
  2009-06-03  9:27               ` Michal Suchanek
  2009-06-30 11:35               ` Michal Suchanek
  0 siblings, 2 replies; 10+ messages in thread
From: Andrew Morton @ 2009-06-02 20:18 UTC (permalink / raw)
  To: Krzysztof Helt
  Cc: bugzilla-daemon, samanddeanus, linux-fbdev-devel, dri-devel, hramrach

On Sat, 30 May 2009 13:58:33 +0200
Krzysztof Helt <krzysztof.h1@poczta.fm> 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 <krzysztof.h1@wp.pl>
> 
> ---
> 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.

------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Bugme-new] [Bug 13285] New: INTELFB: Colors display incorrectly
  2009-06-02 20:18             ` Andrew Morton
@ 2009-06-03  9:27               ` Michal Suchanek
  2009-06-04 20:58                 ` Krzysztof Helt
  2009-06-30 11:35               ` Michal Suchanek
  1 sibling, 1 reply; 10+ messages in thread
From: Michal Suchanek @ 2009-06-03  9:27 UTC (permalink / raw)
  To: Andrew Morton; +Cc: bugzilla-daemon, samanddeanus, linux-fbdev-devel, dri-devel

2009/6/2 Andrew Morton <akpm@linux-foundation.org>:
> On Sat, 30 May 2009 13:58:33 +0200
> Krzysztof Helt <krzysztof.h1@poczta.fm> 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 <krzysztof.h1@wp.pl>
>>
>> ---
>> 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.
>

Thanks for the patch.

Unfortunately I did not get to testing the patch yet.

According to the description it is supposed to resolve some confusion
over what pipe is enabled or not.

X server reports the pipes connected as follows:
(II) intel(0):   Pipe A is on
(II) intel(0):   Display plane A is now enabled and connected to pipe A.
(II) intel(0):   Pipe B is off
(II) intel(0):   Display plane B is now disabled and connected to pipe A.
(II) intel(0):   Output VGA is connected to pipe none
(II) intel(0):   Output TMDS-1 is connected to pipe A
(II) intel(0):   Output TV is connected to pipe none

However, I also get this warning before the outputs are listed:
(WW) intel(0): Couldn't detect panel mode.  Disabling panel

Is this a configuration that would likely be affected by the issue
fixed here or do I have a different problem?

I am currently not using intelfb because last time I tried it produced
even worse results than efifb (which does suffer from the wrong colors
as well).

Thanks

Michal

------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Bugme-new] [Bug 13285] New: INTELFB: Colors display incorrectly
  2009-06-03  9:27               ` Michal Suchanek
@ 2009-06-04 20:58                 ` Krzysztof Helt
  2009-06-05 12:14                   ` Michal Suchanek
  0 siblings, 1 reply; 10+ messages in thread
From: Krzysztof Helt @ 2009-06-04 20:58 UTC (permalink / raw)
  To: Michal Suchanek
  Cc: Andrew Morton, samanddeanus, linux-fbdev-devel, dri-devel,
	bugzilla-daemon

On Wed, 3 Jun 2009 11:27:17 +0200
Michal Suchanek <hramrach@centrum.cz> wrote:

> Unfortunately I did not get to testing the patch yet.
> 
> According to the description it is supposed to resolve some confusion
> over what pipe is enabled or not.
> 
> X server reports the pipes connected as follows:
> (II) intel(0):   Pipe A is on
> (II) intel(0):   Display plane A is now enabled and connected to pipe A.
> (II) intel(0):   Pipe B is off
> (II) intel(0):   Display plane B is now disabled and connected to pipe A.
> (II) intel(0):   Output VGA is connected to pipe none
> (II) intel(0):   Output TMDS-1 is connected to pipe A
> (II) intel(0):   Output TV is connected to pipe none
> 
> However, I also get this warning before the outputs are listed:
> (WW) intel(0): Couldn't detect panel mode.  Disabling panel
> 
> Is this a configuration that would likely be affected by the issue
> fixed here or do I have a different problem?
> 

Frankly speaking, I don't know. Please describe your problem.

The panel mode I suppose is LVDS (LCD panel directly connected
to the chip) which is possible only in laptops and tablets or other
computers where the LCD panel is integrated with the main unit
(e.g. "desk-lamp" like Apple computers). All other computers which you
connect the display by external cable (DVI/HDMI or VGA) does not
work in the "panel mode".

Kind regards,
Krzysztof


----------------------------------------------------------------------
Sprawdz wiadomosci z Twojego regionu!
Kliknij >>> http://link.interia.pl/f21ba


------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Bugme-new] [Bug 13285] New: INTELFB: Colors display incorrectly
  2009-06-04 20:58                 ` Krzysztof Helt
@ 2009-06-05 12:14                   ` Michal Suchanek
  0 siblings, 0 replies; 10+ messages in thread
From: Michal Suchanek @ 2009-06-05 12:14 UTC (permalink / raw)
  To: Krzysztof Helt
  Cc: Andrew Morton, samanddeanus, linux-fbdev-devel, dri-devel,
	bugzilla-daemon

2009/6/4 Krzysztof Helt <krzysztof.h1@poczta.fm>:
> On Wed, 3 Jun 2009 11:27:17 +0200
> Michal Suchanek <hramrach@centrum.cz> wrote:
>
>> Unfortunately I did not get to testing the patch yet.
>>
>> According to the description it is supposed to resolve some confusion
>> over what pipe is enabled or not.
>>
>> X server reports the pipes connected as follows:
>> (II) intel(0):   Pipe A is on
>> (II) intel(0):   Display plane A is now enabled and connected to pipe A.
>> (II) intel(0):   Pipe B is off
>> (II) intel(0):   Display plane B is now disabled and connected to pipe A.
>> (II) intel(0):   Output VGA is connected to pipe none
>> (II) intel(0):   Output TMDS-1 is connected to pipe A
>> (II) intel(0):   Output TV is connected to pipe none
>>
>> However, I also get this warning before the outputs are listed:
>> (WW) intel(0): Couldn't detect panel mode.  Disabling panel
>>
>> Is this a configuration that would likely be affected by the issue
>> fixed here or do I have a different problem?
>>
>
> Frankly speaking, I don't know. Please describe your problem.
>
> The panel mode I suppose is LVDS (LCD panel directly connected
> to the chip) which is possible only in laptops and tablets or other
> computers where the LCD panel is integrated with the main unit
> (e.g. "desk-lamp" like Apple computers). All other computers which you
> connect the display by external cable (DVI/HDMI or VGA) does not
> work in the "panel mode".

This is a mac mini with single TMDS display only.

Thanks

Michal

------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get
_______________________________________________
Linux-fbdev-devel mailing list
Linux-fbdev-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-fbdev-devel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Bugme-new] [Bug 13285] New: INTELFB: Colors display incorrectly
  2009-06-02 20:18             ` Andrew Morton
  2009-06-03  9:27               ` Michal Suchanek
@ 2009-06-30 11:35               ` Michal Suchanek
  1 sibling, 0 replies; 10+ messages in thread
From: Michal Suchanek @ 2009-06-30 11:35 UTC (permalink / raw)
  To: Andrew Morton; +Cc: bugzilla-daemon, samanddeanus, linux-fbdev-devel, dri-devel

Hello

2009/6/2 Andrew Morton <akpm@linux-foundation.org>:
> On Sat, 30 May 2009 13:58:33 +0200
> Krzysztof Helt <krzysztof.h1@poczta.fm> 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 <krzysztof.h1@wp.pl>
>>
>> ---
>> 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.
>

Sorry about the late reply.

In the end I could not test the patch on my system. Not only does the
patch not apply but intelfb fails to produce any screen output at all.
the command line is like this:

video=intelfb:mode=1280x1024 fbcon=rotate:1

Here is a boot with both intelfb and efifb. For some reason the efifb
is shown in this case but breaks so I thought I was looking at intelfb
because the output was different. Both geometry and colours are
broken. Part of the console (top, physical right) is invisible, part
(right, physical bottom) is not drawn (shows black initially and
garbage after switching to X and back).


Jun 29 12:50:30 uvt316-2 kernel: [    0.366168] efifb: dmi detected
Macmini1,1 - framebuffer at 80000000
(1024x768, stride 8192)
Jun 29 12:50:30 uvt316-2 kernel: [    0.366273] efifb: probing for efifb
Jun 29 12:50:30 uvt316-2 kernel: [    0.366486] efifb: framebuffer at
0x80000000, mapped to 0xf8100000, u
sing 6144k, total 6144k
Jun 29 12:50:30 uvt316-2 kernel: [    0.366496] efifb: mode is
1024x768x32, linelength=8192, pages=1
Jun 29 12:50:30 uvt316-2 kernel: [    0.366501] efifb: scrolling: redraw
Jun 29 12:50:30 uvt316-2 kernel: [    0.366508] efifb: Truecolor:
size=8:8:8:8, shift=24:16:8:0
Jun 29 12:50:30 uvt316-2 kernel: [    0.395938] Console: switching to
colour frame buffer device 96x64
Jun 29 12:50:30 uvt316-2 kernel: [    0.423483] fb0: EFI VGA frame buffer device
Jun 29 12:50:30 uvt316-2 kernel: [    0.427641] Linux agpgart interface v0.103
Jun 29 12:50:30 uvt316-2 kernel: [    0.427886] agpgart-intel
0000:00:00.0: Intel 945GM Chipset
Jun 29 12:50:30 uvt316-2 kernel: [    0.429006] agpgart-intel
0000:00:00.0: detected 16124K stolen memory
Jun 29 12:50:30 uvt316-2 kernel: [    0.432312] agpgart-intel
0000:00:00.0: AGP aperture is 256M @ 0x8000
0000
Jun 29 12:50:30 uvt316-2 kernel: [    0.432750] intelfb: Framebuffer
driver for Intel(R)
830M/845G/852GM/855GM/865G/915G/915GM/945G/945GM/945GME/965G/965GM
chipsets
Jun 29 12:50:30 uvt316-2 kernel: [    0.433387] intelfb: Version 0.9.6
Jun 29 12:50:30 uvt316-2 kernel: [    0.433626] intelfb 0000:00:02.0:
PCI INT A -> GSI 16 (level, low) -> IRQ 16
Jun 29 12:50:30 uvt316-2 kernel: [    0.434067] intelfb: Cannot
reserve FB region.


Intelfb only. No console output.

Jun 29 14:16:18 uvt316-2 kernel: [    0.370014] Linux agpgart interface v0.103
Jun 29 14:16:18 uvt316-2 kernel: [    0.370037] agpgart-intel
0000:00:00.0: Intel 945GM Chipset
Jun 29 14:16:18 uvt316-2 kernel: [    0.370786] agpgart-intel
0000:00:00.0: detected 16124K stolen memory
Jun 29 14:16:18 uvt316-2 kernel: [    0.373808] agpgart-intel
0000:00:00.0: AGP aperture is 256M @ 0x8000
0000
Jun 29 14:16:18 uvt316-2 kernel: [    0.373876] intelfb: Framebuffer
driver for Intel(R)
830M/845G/852GM/855GM/865G/915G/915GM/945G/945GM/945GME/965G/965GM
chipsets
Jun 29 14:16:18 uvt316-2 kernel: [    0.373886] intelfb: Version 0.9.6
Jun 29 14:16:18 uvt316-2 kernel: [    0.373937] intelfb 0000:00:02.0:
PCI INT A -> GSI 16 (level, low) -> IRQ 16
Jun 29 14:16:18 uvt316-2 kernel: [    0.373960] intelfb: 00:02.0:
Intel(R) 945GM, aperture size 256MB, stolen memory 16124kB
Jun 29 14:16:18 uvt316-2 kernel: [    0.377376] intelfb: Non-CRT
device is enabled ( DVO port B ).  Disabling mode switching.
Jun 29 14:16:18 uvt316-2 kernel: [    0.377392] intelfb: Video mode
must be programmed at boot time.



Efifb only with video=efifb fbcon=rotate:1
Produces correct geometry but broken colours.

Jun 29 15:26:59 uvt316-2 kernel: [    0.364224] efifb: dmi detected
Macmini1,1 - framebuffer at 80000000
(1024x768, stride 8192)
Jun 29 15:26:59 uvt316-2 kernel: [    0.364328] efifb: probing for efifb
Jun 29 15:26:59 uvt316-2 kernel: [    0.364609] efifb: framebuffer at
0x80000000, mapped to 0xf8100000, u
sing 8192k, total 8192k
Jun 29 15:26:59 uvt316-2 kernel: [    0.364619] efifb: mode is
1280x1024x16, linelength=8192, pages=1
Jun 29 15:26:59 uvt316-2 kernel: [    0.364624] efifb: scrolling: redraw
Jun 29 15:26:59 uvt316-2 kernel: [    0.364631] efifb: Truecolor:
size=8:8:8:8, shift=24:16:8:0
Jun 29 15:26:59 uvt316-2 kernel: [    0.389698] Console: switching to
colour frame buffer device 128x80
Jun 29 15:26:59 uvt316-2 kernel: [    0.413244] fb0: EFI VGA frame buffer device

------------------------------------------------------------------------------

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2009-06-30 11:35 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <bug-13285-10286@http.bugzilla.kernel.org/>
2009-05-12 22:19 ` [Bugme-new] [Bug 13285] New: INTELFB: Colors display incorrectly Andrew Morton
2009-05-16 18:42   ` Krzysztof Helt
     [not found]   ` <20090517081743.92002707.krzysztof.h1@poczta.fm>
2009-05-17  6:19     ` [Linux-fbdev-devel] " Andrew Morton
     [not found]       ` <20090517123032.2b8bad00.krzysztof.h1@poczta.fm>
2009-05-17 15:07         ` Michal Suchanek
2009-05-30 11:58           ` Krzysztof Helt
2009-06-02 20:18             ` Andrew Morton
2009-06-03  9:27               ` Michal Suchanek
2009-06-04 20:58                 ` Krzysztof Helt
2009-06-05 12:14                   ` Michal Suchanek
2009-06-30 11:35               ` Michal Suchanek

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.