efifb swapping Red/Blue color

Started by Bruno Prémont on Nov 20, 2012 · 3 messages from 2 authors · Last reply Nov 21, 2012

open the first message on its own page

Message details and related content
On a MacBookAir2,1 with 9400M C79 nVidia GPU fbcon on efifb has
red and blue colors swapped.

Extract from kernel log:
efifb: probing for efifb
efifb: framebuffer at 0x80010000, mapped to 0xffffc90004580000, using 6400k, total 6400k
efifb: mode is 1280x800x32, linelength�92, pages=1
efifb: scrolling: redraw
efifb: Truecolor: size=8:8:8:8, shift$:0:8:16

On another system with radeon GPU and externally connected DVI monitor
colors are set properly.

Probably efifb should be looking at something to determine if display
is RGB or BGR...

Thanks,
Bruno
--
To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Message details and related content
On Wed, Nov 21, 2012 at 12:14:57AM +0100, Bruno Prémont wrote:
On a MacBookAir2,1 with 9400M C79 nVidia GPU fbcon on efifb has
red and blue colors swapped.

Extract from kernel log:
efifb: probing for efifb
efifb: framebuffer at 0x80010000, mapped to 0xffffc90004580000, using 6400k, total 6400k
efifb: mode is 1280x800x32, linelength�92, pages=1
efifb: scrolling: redraw
efifb: Truecolor: size=8:8:8:8, shift$:0:8:16

On another system with radeon GPU and externally connected DVI monitor
colors are set properly.

Probably efifb should be looking at something to determine if display
is RGB or BGR...
Right - normally we get it from the firmware graphics driver, but on a
few generations of Intel Macs they gracefully omitted an implementation
of that part of the spec, which is why we have a DMI table that just has
best-effort entries.

So that on that hardware, it doesn't really give us anything to look
at.  Though if the same machine comes with two different video cards
that are, by default, configured opposite ways, there may be something
we can do.  Could show me the "lspci -v" for each of those devices (the
nvidia and the radeon)?

-- 
        Peter
--
To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Message details and related content
Hi Peter,

On Wed, 21 November 2012 Peter Jones [off-list ref] wrote:
On Wed, Nov 21, 2012 at 12:14:57AM +0100, Bruno Prémont wrote:
quoted
On a MacBookAir2,1 with 9400M C79 nVidia GPU fbcon on efifb has
red and blue colors swapped.

Extract from kernel log:
efifb: probing for efifb
efifb: framebuffer at 0x80010000, mapped to 0xffffc90004580000, using 6400k, total 6400k
efifb: mode is 1280x800x32, linelength�92, pages=1
efifb: scrolling: redraw
efifb: Truecolor: size=8:8:8:8, shift$:0:8:16

On another system with radeon GPU and externally connected DVI monitor
colors are set properly.

Probably efifb should be looking at something to determine if display
is RGB or BGR...
Right - normally we get it from the firmware graphics driver, but on a
few generations of Intel Macs they gracefully omitted an implementation
of that part of the spec, which is why we have a DMI table that just has
best-effort entries.

So that on that hardware, it doesn't really give us anything to look
at.  Though if the same machine comes with two different video cards
that are, by default, configured opposite ways, there may be something
we can do.  Could show me the "lspci -v" for each of those devices (the
nvidia and the radeon)?
The system with Radeon is not the Mac (it's some Gigabyte mainboard that
has EFI support).

Here is lspci for the MacBook:
00:00.0 Host bridge [0600]: NVIDIA Corporation MCP79 Host Bridge [10de:0a82] (rev b1)
00:00.1 RAM memory [0500]: NVIDIA Corporation MCP79 Memory Controller [10de:0a88] (rev b1)
00:03.0 ISA bridge [0601]: NVIDIA Corporation MCP79 LPC Bridge [10de:0aaf] (rev b2)
00:03.1 RAM memory [0500]: NVIDIA Corporation MCP79 Memory Controller [10de:0aa4] (rev b1)
00:03.2 SMBus [0c05]: NVIDIA Corporation MCP79 SMBus [10de:0aa2] (rev b1)
00:03.3 RAM memory [0500]: NVIDIA Corporation MCP79 Memory Controller [10de:0a89] (rev b1)
00:03.4 RAM memory [0500]: NVIDIA Corporation Device [10de:0a98] (rev b1)
00:03.5 Co-processor [0b40]: NVIDIA Corporation MCP79 Co-processor [10de:0aa3] (rev b1)
00:04.0 USB controller [0c03]: NVIDIA Corporation MCP79 OHCI USB 1.1 Controller [10de:0aa5] (rev b1)
00:04.1 USB controller [0c03]: NVIDIA Corporation MCP79 EHCI USB 2.0 Controller [10de:0aa6] (rev b1)
00:06.0 USB controller [0c03]: NVIDIA Corporation MCP79 OHCI USB 1.1 Controller [10de:0aa7] (rev b1)
00:06.1 USB controller [0c03]: NVIDIA Corporation MCP79 EHCI USB 2.0 Controller [10de:0aa9] (rev b1)
00:08.0 Audio device [0403]: NVIDIA Corporation MCP79 High Definition Audio [10de:0ac0] (rev b1)
00:09.0 PCI bridge [0604]: NVIDIA Corporation MCP79 PCI Bridge [10de:0aab] (rev b1)
00:0b.0 SATA controller [0106]: NVIDIA Corporation MCP79 AHCI Controller [10de:0ab9] (rev b1)
00:10.0 PCI bridge [0604]: NVIDIA Corporation MCP79 PCI Express Bridge [10de:0aa0] (rev b1)
00:15.0 PCI bridge [0604]: NVIDIA Corporation MCP79 PCI Express Bridge [10de:0ac6] (rev b1)
02:00.0 VGA compatible controller [0300]: NVIDIA Corporation C79 [GeForce 9400M] [10de:0870] (rev b1)
03:00.0 Network controller [0280]: Broadcom Corporation BCM4321 802.11a/b/g/n [14e4:4328] (rev 05)

and DMI info:
# dmidecode 2.10
# SMBIOS entry point at 0x7fec7000
SMBIOS 2.4 present.
37 structures occupying 1888 bytes.
Table at 0x7FEC6000.

...
Handle 0x000E, DMI type 0, 24 bytes
BIOS Information
	Vendor: Apple Inc.
	Version:    MBA21.88Z.0075.B03.0811141325
	Release Date: 11/14/08
	ROM Size: 4096 kB
	Characteristics:

60 more lines

Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help