diff -up xf86-video-ati-6.9.0/src/radeon_output.c.jx xf86-video-ati-6.9.0/src/radeon_output.c --- xf86-video-ati-6.9.0/src/radeon_output.c.jx 2008-09-11 15:31:28.000000000 -0400 +++ xf86-video-ati-6.9.0/src/radeon_output.c 2008-09-11 15:41:33.000000000 -0400 @@ -1972,14 +1972,18 @@ RADEONGetLVDSInfo (xf86OutputPtr output) RADEONOutputPrivatePtr radeon_output = output->driver_private; char* s; - if (!RADEONGetLVDSInfoFromBIOS(output)) - RADEONGetPanelInfoFromReg(output); - if ((s = xf86GetOptValString(info->Options, OPTION_PANEL_SIZE))) { radeon_output->PanelPwrDly = 200; if (sscanf (s, "%dx%d", &radeon_output->PanelXRes, &radeon_output->PanelYRes) != 2) { - xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Invalid PanelSize option: %s\n", s); - RADEONGetPanelInfoFromReg(output); + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Invalid PanelSize option: %s, disabling the panel\n", s); + return FALSE; + } + } else if (!RADEONGetLVDSInfoFromBIOS(output)) { + RADEONGetPanelInfoFromReg(output); + if (radeon_output->PanelXRes < 800 || radeon_output->PanelYRes < 480) { + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "Implausible panel size, disabling\n"); + return FALSE; } }