[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#499018: [Upstream Fixes] 3 possibilities of Blank Screen and performance issue.



François Wendling wrote:
>		* Debian/Upstream?, not fixed : autodetection fails, the
>		  generated xorg.conf leads to a blank screen while starting X.
>		  Then when it comes back to the vt, the vt turns blank, but i can
>		  still type commands blindly. It can be considered as
>		  unusable, since i need to reboot to use the vt. I attach my 
>		  (ugly but working) xorg.conf that avoids this problem. 

How is this patch?

--- a/src/smi_driver.c
+++ b/src/smi_driver.c
@@ -770,8 +770,8 @@
 	xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Option: UseBIOS %s.\n",
 		   pSmi->useBIOS ? "enabled" : "disabled");
     } else {
-	/* Default to UseBIOS enabled. */
-	pSmi->useBIOS = TRUE;
+	/* Default to UseBIOS disabled. */
+	pSmi->useBIOS = FALSE;
     }
 
     if (xf86GetOptValBool(pSmi->Options, OPTION_ZOOMONLCD, &pSmi->zoomOnLCD)) {
@@ -791,6 +791,7 @@
 	return FALSE;
     }
 
+if (pSmi->useBIOS) {
     if (xf86LoadSubModule(pScrn,"int10")) {
 	xf86LoaderReqSymLists(int10Symbols,NULL);
 	pSmi->pInt10 = xf86InitInt10(pEnt->index);
@@ -800,6 +801,7 @@
 	xf86LoaderReqSymLists(vbeSymbols, NULL);
 	pVbe = VBEInit(pSmi->pInt10, pEnt->index);
     }
+}
 
     pSmi->PciInfo = xf86GetPciInfoForEntity(pEnt->index);
     xf86RegisterResources(pEnt->index, NULL, ResExclusive);
@@ -893,6 +895,7 @@
     /* detect the panel size */
     SMI_DetectPanelSize(pScrn);
 
+if (pVbe) {
     if (xf86LoadSubModule(pScrn, "i2c")) {
 	xf86LoaderReqSymLists(i2cSymbols, NULL);
 	SMI_I2CInit(pScrn);
@@ -937,6 +940,7 @@
     vbeFree(pVbe);
     xf86FreeInt10(pSmi->pInt10);
     pSmi->pInt10 = NULL;
+}
 
     /*
      * If the driver can do gamma correction, it should call xf86SetGamma()
@@ -1148,6 +1152,7 @@
 	}
     }
 
+if (pVbe) {
     /* Load ramdac if needed */
     if (pSmi->hwcursor) {
 	if (!xf86LoadSubModule(pScrn, "ramdac")) {
@@ -1157,6 +1162,7 @@
 	}
 	xf86LoaderReqSymLists(ramdacSymbols, NULL);
     }
+}
 
     if (pSmi->shadowFB) {
 	if (!xf86LoadSubModule(pScrn, "shadowfb")) {
@@ -2032,7 +2038,7 @@
 
     pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
 	
-    if (!pSmi->pInt10) {
+    if (!pSmi->pInt10 && pSmi->useBIOS) {
 	pSmi->pInt10 = xf86InitInt10(pEnt->index);
     }
 

Attachment: fix_vt_blank.diff.gz
Description: Binary data


Reply to: