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 via email to