--- zzzz-none-000/linux-2.4.17/drivers/video/controlfb.c 2001-11-14 22:52:20.000000000 +0000 +++ sangam-fb-322/linux-2.4.17/drivers/video/controlfb.c 2004-11-24 13:23:17.000000000 +0000 @@ -621,14 +621,10 @@ full = p->total_vram == 0x400000; +#ifdef CONFIG_NVRAM /* Try to pick a video mode out of NVRAM if we have one. */ - if (default_cmode == CMODE_NVRAM){ + if (default_cmode == CMODE_NVRAM) cmode = nvram_read_byte(NV_CMODE); - if(cmode < CMODE_8 || cmode > CMODE_32) - cmode = CMODE_8; - } else - cmode=default_cmode; - if (default_vmode == VMODE_NVRAM) { vmode = nvram_read_byte(NV_VMODE); if (vmode < 1 || vmode > VMODE_MAX || @@ -639,15 +635,16 @@ if (control_mac_modes[vmode - 1].m[full] < cmode) vmode = VMODE_640_480_60; } - } else { - vmode=default_vmode; - if (control_mac_modes[vmode - 1].m[full] < cmode) { - if (cmode > CMODE_8) - cmode--; - else - vmode = VMODE_640_480_60; - } } +#endif + + /* If we didn't get something from NVRAM, pick a + * sane default. + */ + if (vmode <= 0 || vmode > VMODE_MAX) + vmode = VMODE_640_480_67; + if (cmode < CMODE_8 || cmode > CMODE_32) + cmode = CMODE_8; if (mac_vmode_to_var(vmode, cmode, &var) < 0) { /* This shouldn't happen! */