diff --git a/src/radeon_bios.c b/src/radeon_bios.c index aec55b7..c723053 100644 --- a/src/radeon_bios.c +++ b/src/radeon_bios.c @@ -119,7 +119,7 @@ Bool RADEONGetConnectorInfoFromBIOS (Scr if (info->IsAtomBios) { if((tmp = RADEON_BIOS16 (info->MasterDataStart + 22))) { - int crtc = 0, id[2]; + int crtc = 0, id[2], ddc = 0; tmp1 = RADEON_BIOS16 (tmp + 4); for (i=0; i<8; i++) { if(tmp1 & (1<>8) & 0xf) == id[0]) { + if (((portinfo>>12) & 0xf) == id[0]) { if (i == 3) pRADEONEnt->PortInfo[0].TMDSType = TMDS_INT; else if (i == 7) @@ -141,7 +141,8 @@ Bool RADEONGetConnectorInfoFromBIOS (Scr } } - id[crtc] = (portinfo>>8) & 0xf; + id[crtc] = (portinfo>>12) & 0xf; + ddc = (portinfo >> 8) & 0xf; pRADEONEnt->PortInfo[crtc].DACType = (portinfo & 0xf) - 1; pRADEONEnt->PortInfo[crtc].ConnectorType = (portinfo>>4) & 0xf; if (i == 3) @@ -150,7 +151,7 @@ Bool RADEONGetConnectorInfoFromBIOS (Scr pRADEONEnt->PortInfo[crtc].TMDSType = TMDS_EXT; if((tmp0 = RADEON_BIOS16 (info->MasterDataStart + 24)) && id[crtc]) { - switch (RADEON_BIOS16 (tmp0 + 4 + 27 * id[crtc]) * 4) + switch (RADEON_BIOS16 (tmp0 + 4 + 27 * ddc) * 4) { case RADEON_GPIO_MONID: pRADEONEnt->PortInfo[crtc].DDCType = DDC_MONID; @@ -178,7 +179,7 @@ Bool RADEONGetConnectorInfoFromBIOS (Scr * port with the existing connector, fill in them accordingly. */ for (j=0; j<2; j++) { - if (((portinfo>>8) & 0xf) == id[j]) { + if (((portinfo>>12) & 0xf) == id[j]) { if (i == 3) pRADEONEnt->PortInfo[j].TMDSType = TMDS_INT; else if (i == 7)