Blob Blame Raw
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;
 	}
     }