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;
}
}