Skip to contentSkip to conversation

nvidiafb: Fix reversed DDC port

PATCH In review Antonino A. Daplas 2 participants 3 messages Apr 1, 2007 Framebuffer layer

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 nvidiafb: Fix reversed DDC port

From: Petr Vandrovec <[email protected]>

After I added some debugging printks I've found that code became a bit confused because it believed that primary monitor is 1920x540, but later it found in CRTC0's registers that panel size is 1920x1200 (Windows also agree that 1920x1200 is primary monitor, and 1920x1080i secondary one).

When I applied attached patch then my monitor became as happy as it was before I connected HDMI cable to secondary output.

---

 drivers/video/nvidia/nv_i2c.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
drivers/video/nvidia/nv_i2c.c +2 -2
index b91d404..bcde013 100644
@@ -131,10 +131,10 @@ void nvidia_create_i2c_busses(struct nvi
 	par->chan[1].par = par;
 	par->chan[2].par = par;
 
-	par->chan[0].ddc_base = 0x3e;
+	par->chan[0].ddc_base = 0x36;
 	nvidia_setup_i2c_bus(&par->chan[0], "nvidia #0");
 
-	par->chan[1].ddc_base = 0x36;
+	par->chan[1].ddc_base = 0x3e;
 	nvidia_setup_i2c_bus(&par->chan[1], "nvidia #1");
 
 	par->chan[2].ddc_base = 0x50;

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

#1 lore raw
Quoted 8 lines

After I added some debugging printks I've found that code became a bit confused because it believed that primary monitor is 1920x540, but later it found in CRTC0's registers that panel size is 1920x1200 (Windows also agree that 1920x1200 is primary monitor, and 1920x1080i secondary one).

When I applied attached patch then my monitor became as happy as it was before I connected HDMI cable to secondary output.

I don't think this will do much except break other peoples cards, different nvidia cards map the i2c to outputs differently, the correct way to fix it is to read a table in the BIOS called the DCB table (for NV4x and above...) guess what? we don't know how to do that properly because nvidia are very unfriendly...

Dave.

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

#2 lore raw
Quoted 9 lines · Dave Airlie
Quoted 8 lines

After I added some debugging printks I've found that code became a bit confused because it believed that primary monitor is 1920x540, but later it found in CRTC0's registers that panel size is 1920x1200 (Windows also agree that 1920x1200 is primary monitor, and 1920x1080i secondary one).

When I applied attached patch then my monitor became as happy as it was before I connected HDMI cable to secondary output.

Quoted 6 lines

I don't think this will do much except break other peoples cards, different nvidia cards map the i2c to outputs differently, the correct way to fix it is to read a table in the BIOS called the DCB table (for NV4x and above...) guess what? we don't know how to do that properly because nvidia are very unfriendly...

True. The port assignment does not matter for a single display, or dual-displays with different output types, as nvidiafb and nv has code that matches the EDID output to the monitor type.

If nvidia is not consistent with the port assignment, and there is no sane way of determining this, the best hack we can do is a boot option.

Anyway, Petr's patch is still 'correct', because, in relation with X's nv driver, the ports are indeed reversed :-)

Tony

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV