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