xf86-video-intel: Branch 'modesetting' - 2 commits - src/i830_driver.c src/i830_tv.c

Keith Packard keithp at kemper.freedesktop.org
Thu Dec 14 23:49:19 EET 2006


 src/i830_driver.c |   16 ++++++++++++----
 src/i830_tv.c     |    2 +-
 2 files changed, 13 insertions(+), 5 deletions(-)

New commits:
diff-tree d4142abc68888178a8f6c54fdcece91e898bc9f5 (from 2b5a5542ad7d1c558d1684a0a69b66bab6e9d001)
Author: Keith Packard <keithp at neko.keithp.com>
Date:   Thu Dec 14 13:49:08 2006 -0800

    Set frame buffer size ranges in xf86_config.
    
    Initialization and default configuration code needs to know the range of
    legitimate sizes for the frame buffer.

diff --git a/src/i830_driver.c b/src/i830_driver.c
index d4f2aa3..a210b63 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -912,6 +912,7 @@ I830PreInit(ScrnInfoPtr pScrn, int flags
    Bool enable;
    const char *chipname;
    int num_pipe;
+   int max_width;
 #ifdef XF86DRI
    unsigned long savedMMSize;
 #endif
@@ -970,10 +971,6 @@ I830PreInit(ScrnInfoPtr pScrn, int flags
     } else 
         pI830->entityPrivate = NULL;
 
-   /* Allocate an xf86CrtcConfig */
-   xf86CrtcConfigInit (pScrn);
-   xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
-
    if (xf86RegisterResources(pI830->pEnt->index, 0, ResNone)) {
       PreInitCleanup(pScrn);
       return FALSE;
@@ -1181,6 +1178,16 @@ I830PreInit(ScrnInfoPtr pScrn, int flags
    xf86DrvMsg(pScrn->scrnIndex, from, "IO registers at addr 0x%lX\n",
 	      (unsigned long)pI830->MMIOAddr);
 
+   /* Allocate an xf86CrtcConfig */
+   xf86CrtcConfigInit (pScrn);
+   xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
+   
+   if (IS_I965G(pI830))
+      max_width = 16384;
+   else
+      max_width = 8192 / pI830->cpp;
+   xf86CrtcSetSizeRange (pScrn, 320, 200, max_width, 2048);
+
    /* Some of the probing needs MMIO access, so map it here. */
    I830MapMMIO(pScrn);
 
@@ -1836,6 +1843,7 @@ I830PreInit(ScrnInfoPtr pScrn, int flags
    if (pScrn->displayWidth * pI830->cpp > 8192) {
       xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Cannot support frame buffer stride > 8K >  DRI.\n");
       pI830->disableTiling = TRUE;
+      pI830->directRenderingDisabled = TRUE;
    }
 
    if (pScrn->virtualY > 2048) {
diff-tree 2b5a5542ad7d1c558d1684a0a69b66bab6e9d001 (from 3fe802453a85183a69c36a098639895f49b17df1)
Author: Keith Packard <keithp at neko.keithp.com>
Date:   Thu Dec 14 13:43:50 2006 -0800

    Change TV modes from Preferred to Driver.
    
    This avoids having the artificial TV mode size drive overall screen size.

diff --git a/src/i830_tv.c b/src/i830_tv.c
index ccb6aac..af9826b 100644
--- a/src/i830_tv.c
+++ b/src/i830_tv.c
@@ -702,7 +702,7 @@ i830_tv_get_modes(xf86OutputPtr output)
     new->VSyncEnd   = 777;
     new->VTotal     = 806;
 
-    new->type       = M_T_PREFERRED;
+    new->type       = M_T_DRIVER;
 
     return new;
 }



More information about the xorg-commit mailing list