--- radeon_monitor.c 2007-04-08 11:41:52.000000000 +0200 +++ radeon_monitor.c 2007-04-08 14:59:09.000000000 +0200 @@ -480,17 +480,6 @@ RTRACE("Starting monitor auto detection...\n"); -#if DEBUG && defined(CONFIG_FB_RADEON_I2C) - { - u8 *EDIDs[4] = { NULL, NULL, NULL, NULL }; - int mon_types[4] = {MT_NONE, MT_NONE, MT_NONE, MT_NONE}; - int i; - - for (i = 0; i < 4; i++) - mon_types[i] = radeon_probe_i2c_connector(rinfo, - i+1, &EDIDs[i]); - } -#endif /* DEBUG */ /* * Old single head cards */ @@ -530,11 +519,11 @@ if (!BIOS_IN8(tmp + i*2) && i > 1) break; tmp0 = BIOS_IN16(tmp + i*2); - if ((!(tmp0 & 0x01)) && (((tmp0 >> 8) & 0x0f) == ddc_dvi)) { + if ((!(tmp0 & 0x01)) && ((((tmp0 >> 8) & 0x0f) == ddc_dvi) || (((tmp0 >> 8) & 0x0f) == ddc_monid))) { rinfo->reversed_DAC = 1; printk(KERN_INFO "radeonfb: Reversed DACs detected\n"); } - if ((((tmp0 >> 8) & 0x0f) == ddc_dvi) && ((tmp0 >> 4) & 0x01)) { + if ((((tmp0 >> 8) & 0x0f) == ddc_dvi || (((tmp0 >> 8) & 0x0f) == ddc_monid)) && ((tmp0 >> 4) & 0x01)) { rinfo->reversed_TMDS = 1; printk(KERN_INFO "radeonfb: Reversed TMDS detected\n"); } @@ -544,6 +533,7 @@ /* * Probe primary head (DVI or laptop internal panel) */ + printk(KERN_INFO "radeonfb: Probe primary head\n"); #ifdef CONFIG_PPC_OF if (rinfo->mon1_type == MT_NONE) rinfo->mon1_type = radeon_probe_OF_head(rinfo, 0, @@ -551,6 +541,9 @@ #endif /* CONFIG_PPC_OF */ #ifdef CONFIG_FB_RADEON_I2C if (rinfo->mon1_type == MT_NONE) + rinfo->mon1_type = radeon_probe_i2c_connector(rinfo, ddc_monid, + &rinfo->mon1_EDID); + if (rinfo->mon1_type == MT_NONE) rinfo->mon1_type = radeon_probe_i2c_connector(rinfo, ddc_dvi, &rinfo->mon1_EDID); if (rinfo->mon1_type == MT_NONE) { @@ -572,6 +565,7 @@ /* * Probe secondary head (mostly VGA, can be DVI) */ + printk(KERN_INFO "radeonfb: Probe secondary head\n"); #ifdef CONFIG_PPC_OF if (rinfo->mon2_type == MT_NONE) rinfo->mon2_type = radeon_probe_OF_head(rinfo, 1, @@ -642,7 +636,7 @@ /* - * This functions applyes any arch/model/machine specific fixups + * This functions applies any arch/model/machine specific fixups * to the panel info. It may eventually alter EDID block as * well or whatever is specific to a given model and not probed * properly by the default code