xf86-video-ati: Branch 'randr-1.2' - 3 commits

Alex Deucher agd5f at kemper.freedesktop.org
Mon May 14 21:51:17 PDT 2007


 src/radeon.h         |    2 +-
 src/radeon_bios.c    |    4 ----
 src/radeon_display.c |    6 +-----
 src/radeon_driver.c  |   48 ++++++++++++++++++++++++++----------------------
 src/radeon_output.c  |   15 ++++++---------
 5 files changed, 34 insertions(+), 41 deletions(-)

New commits:
diff-tree 11289f8206cab1a94bd64a3938cf9af50f19497e (from fba1a11e287ebf04cf311645d31299896bad7283)
Author: Alex Deucher <alex at t41p.hsd1.va.comcast.net>
Date:   Tue May 15 00:48:31 2007 -0400

    RADEON: remove some debugging code

diff --git a/src/radeon_display.c b/src/radeon_display.c
index 85a4844..f0a24ab 100644
--- a/src/radeon_display.c
+++ b/src/radeon_display.c
@@ -980,7 +980,7 @@ void RADEONEnableDisplay(xf86OutputPtr o
     RADEONOutputPrivatePtr radeon_output;
     radeon_output = output->driver_private;
 
-    ErrorF("montype: %d\n", radeon_output->MonType);
+    ErrorF("enable montype: %d\n", radeon_output->MonType);
 
     if (bEnable) {
         if (radeon_output->MonType == MT_CRT) {
@@ -1017,12 +1017,10 @@ void RADEONEnableDisplay(xf86OutputPtr o
             }
         } else if (radeon_output->MonType == MT_LCD) {
             tmp = INREG(RADEON_LVDS_GEN_CNTL);
-	    ErrorF("read in LVDS reg\n");
             tmp |= (RADEON_LVDS_ON | RADEON_LVDS_BLON);
             tmp &= ~(RADEON_LVDS_DISPLAY_DIS);
 	    usleep (radeon_output->PanelPwrDly * 1000);
             OUTREG(RADEON_LVDS_GEN_CNTL, tmp);
-	    ErrorF("wrote out LVDS reg\n");
             save->lvds_gen_cntl |= (RADEON_LVDS_ON | RADEON_LVDS_BLON);
             save->lvds_gen_cntl &= ~(RADEON_LVDS_DISPLAY_DIS);
         } 
diff-tree fba1a11e287ebf04cf311645d31299896bad7283 (from 9ed00e959fcdab2739a7e64ca1e303a6faf28f15)
Author: Alex Deucher <alex at t41p.hsd1.va.comcast.net>
Date:   Tue May 15 00:44:29 2007 -0400

    RADEON: Move DAC regs to their own Save() function

diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 32f51d6..d561fa0 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -4692,7 +4692,6 @@ static void RADEONSaveCrtcRegisters(Scrn
 
     save->crtc_gen_cntl        = INREG(RADEON_CRTC_GEN_CNTL);
     save->crtc_ext_cntl        = INREG(RADEON_CRTC_EXT_CNTL);
-    save->dac_cntl             = INREG(RADEON_DAC_CNTL);
     save->crtc_h_total_disp    = INREG(RADEON_CRTC_H_TOTAL_DISP);
     save->crtc_h_sync_strt_wid = INREG(RADEON_CRTC_H_SYNC_STRT_WID);
     save->crtc_v_total_disp    = INREG(RADEON_CRTC_V_TOTAL_DISP);
@@ -4720,6 +4719,21 @@ static void RADEONSaveCrtcRegisters(Scrn
     }
 }
 
+/* Read DAC registers */
+static void RADEONSaveDACRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save)
+{
+    RADEONInfoPtr  info       = RADEONPTR(pScrn);
+    unsigned char *RADEONMMIO = info->MMIO;
+
+    save->dac_cntl              = INREG(RADEON_DAC_CNTL);
+    save->dac2_cntl             = INREG(RADEON_DAC_CNTL2);
+    save->tv_dac_cntl           = INREG(RADEON_TV_DAC_CNTL);
+    save->disp_output_cntl      = INREG(RADEON_DISP_OUTPUT_CNTL);
+    save->disp_tv_out_cntl      = INREG(RADEON_DISP_TV_OUT_CNTL);
+    save->disp_hw_debug         = INREG(RADEON_DISP_HW_DEBUG);
+
+}
+
 /* Read flat panel registers */
 static void RADEONSaveFPRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save)
 {
@@ -4750,12 +4764,6 @@ static void RADEONSaveCrtc2Registers(Scr
     RADEONInfoPtr  info       = RADEONPTR(pScrn);
     unsigned char *RADEONMMIO = info->MMIO;
 
-    save->dac2_cntl             = INREG(RADEON_DAC_CNTL2);
-    save->tv_dac_cntl           = INREG(RADEON_TV_DAC_CNTL);
-    save->disp_output_cntl      = INREG(RADEON_DISP_OUTPUT_CNTL);
-    save->disp_tv_out_cntl      = INREG(RADEON_DISP_TV_OUT_CNTL);
-    save->disp_hw_debug         = INREG (RADEON_DISP_HW_DEBUG);
-
     save->crtc2_gen_cntl        = INREG(RADEON_CRTC2_GEN_CNTL);
     save->crtc2_h_total_disp    = INREG(RADEON_CRTC2_H_TOTAL_DISP);
     save->crtc2_h_sync_strt_wid = INREG(RADEON_CRTC2_H_SYNC_STRT_WID);
@@ -4842,6 +4850,7 @@ static void RADEONSaveMode(ScrnInfoPtr p
     RADEONSavePLLRegisters (pScrn, save);
     RADEONSaveCrtcRegisters (pScrn, save);
     RADEONSaveFPRegisters (pScrn, save);
+    RADEONSaveDACRegisters (pScrn, save);
     RADEONSaveCrtc2Registers (pScrn, save);
     RADEONSavePLL2Registers (pScrn, save);
     /*RADEONSavePalette(pScrn, save);*/
diff-tree 9ed00e959fcdab2739a7e64ca1e303a6faf28f15 (from 5106c8fe5f74865cac8b00937739a4efde9fc254)
Author: Alex Deucher <alex at t41p.hsd1.va.comcast.net>
Date:   Tue May 15 00:36:05 2007 -0400

    RADEON: Lots of small fixes
    
    - remove extra crtc2_base set
    - remove some debugging code
    - clean up RestoreMode()
    - make sure a DDC reg gets assigned for LCD_DDC
    - make sure we adjust the right frame in AdjustFrame()
    - rename RADEONMapControllers() to RADEONPrintPortMap() to
    reflect what it actually does now
    - make i2c bus name match the DDC port
    - remove or comment out un-needed code

diff --git a/src/radeon.h b/src/radeon.h
index e0b4b9b..fde7f79 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -833,7 +833,7 @@ extern void        RADEONInitDispBandwid
 extern Bool        RADEONI2cInit(ScrnInfoPtr pScrn);
 extern void        RADEONSetSyncRangeFromEdid(ScrnInfoPtr pScrn, int flag);
 extern Bool        RADEONSetupConnectors(ScrnInfoPtr pScrn);
-extern Bool        RADEONMapControllers(ScrnInfoPtr pScrn);
+extern void        RADEONPrintPortMap(ScrnInfoPtr pScrn);
 extern void        RADEONEnableDisplay(xf86OutputPtr pPort, BOOL bEnable);
 extern void        RADEONDisableDisplays(ScrnInfoPtr pScrn);
 extern void        RADEONGetPanelInfo(ScrnInfoPtr pScrn);
diff --git a/src/radeon_bios.c b/src/radeon_bios.c
index 6e08f24..f63eec7 100644
--- a/src/radeon_bios.c
+++ b/src/radeon_bios.c
@@ -408,8 +408,6 @@ Bool RADEONGetLVDSInfoFromBIOS (xf86Outp
     RADEONOutputPrivatePtr radeon_output = output->driver_private;
     unsigned long tmp, i;
 
-    ErrorF("grabbing LVDS from bios");
-
     if (!info->VBIOS) return FALSE;
 
     if (info->IsAtomBios) {
@@ -551,8 +549,6 @@ Bool RADEONGetTMDSInfoFromBIOS (xf86Outp
     CARD32 tmp, maxfreq;
     int i, n;
 
-    ErrorF("grabbing LVDS from bios");
-
     if (!info->VBIOS) return FALSE;
 
     if (info->IsAtomBios) {
diff --git a/src/radeon_display.c b/src/radeon_display.c
index c3167bc..85a4844 100644
--- a/src/radeon_display.c
+++ b/src/radeon_display.c
@@ -742,8 +742,6 @@ Bool RADEONGetLVDSInfo (xf86OutputPtr ou
     RADEONOutputPrivatePtr radeon_output = output->driver_private;
     char* s;
 
-    ErrorF("LVDS get info");
-
     if (!RADEONGetLVDSInfoFromBIOS(output))
 	RADEONGetPanelInfoFromReg(output);
 
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index c82c6ba..32f51d6 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -116,8 +116,6 @@ void RADEONRestoreMode(ScrnInfoPtr pScrn
 static Bool RADEONCloseScreen(int scrnIndex, ScreenPtr pScreen);
 static Bool RADEONSaveScreen(ScreenPtr pScreen, int mode);
 static void RADEONSave(ScrnInfoPtr pScrn);
-//static void RADEONRestore(ScrnInfoPtr pScrn);
-//static Bool RADEONModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode);
 
 static void RADEONSetDynamicClock(ScrnInfoPtr pScrn, int mode);
 static void RADEONForceSomeClocks(ScrnInfoPtr pScrn);
@@ -2498,7 +2496,7 @@ static Bool RADEONPreInitControllers(Scr
 	return FALSE;
     }
       
-    RADEONMapControllers(pScrn);
+    RADEONPrintPortMap(pScrn);
 
     RADEONGetClockInfo(pScrn);
 
@@ -3577,7 +3575,7 @@ Bool RADEONScreenInit(int scrnIndex, Scr
 
     RADEONSaveScreen(pScreen, SCREEN_SAVER_ON);
 
-    pScrn->AdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
+    //    pScrn->AdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
 
     /* Backing store setup */
     RADEONTRACE(("Initializing backing store\n"));
@@ -4612,10 +4610,8 @@ void RADEONRestoreMode(ScrnInfoPtr pScrn
      */
     RADEONRestoreMemMapRegisters(pScrn, restore);
     RADEONRestoreCommonRegisters(pScrn, restore);
-    if ((pCRTC2->binding == 1) || pRADEONEnt->HasSecondary) {
-	RADEONRestoreCrtc2Registers(pScrn, restore);
-	RADEONRestorePLL2Registers(pScrn, restore);
-    }
+    RADEONRestoreCrtc2Registers(pScrn, restore);
+    RADEONRestorePLL2Registers(pScrn, restore);
 
     RADEONRestoreCrtcRegisters(pScrn, restore);
     RADEONRestorePLLRegisters(pScrn, restore);
@@ -4623,10 +4619,7 @@ void RADEONRestoreMode(ScrnInfoPtr pScrn
     RADEONRestoreDACRegisters(pScrn, restore);
 
     RADEONEnableOutputs(pScrn, 0);
-
-    if ((pCRTC2->binding == 1) || pRADEONEnt->HasSecondary) {
-	RADEONEnableOutputs(pScrn, 1);
-    }
+    RADEONEnableOutputs(pScrn, 1);
 
 #if 0
     RADEONRestorePalette(pScrn, &info->SavedReg);
@@ -5732,7 +5725,6 @@ Bool RADEONInitCrtc2Registers(xf86CrtcPt
     }
 
     Base &= ~7;                 /* 3 lower bits are always 0 */
-    save->crtc2_offset = Base;
 
 #ifdef XF86DRI
     if (info->directRenderingInited) {
@@ -6189,6 +6181,7 @@ void RADEONAdjustFrame(int scrnIndex, in
 {
     ScrnInfoPtr    pScrn      = xf86Screens[scrnIndex];
     RADEONInfoPtr  info       = RADEONPTR(pScrn);
+    RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn);
     xf86CrtcConfigPtr	config = XF86_CRTC_CONFIG_PTR(pScrn);
     xf86OutputPtr  output = config->output[config->compat_output];
     xf86CrtcPtr	crtc = output->crtc;
@@ -6204,7 +6197,10 @@ void RADEONAdjustFrame(int scrnIndex, in
 	if (info->FBDev) {
 	    fbdevHWAdjustFrame(scrnIndex, crtc->desiredX + x, crtc->desiredY + y, flags);
 	} else {
-	    RADEONDoAdjustFrame(pScrn, crtc->desiredX + x, crtc->desiredY + y, FALSE);
+	    if (crtc == pRADEONEnt->pCrtc[0])
+		RADEONDoAdjustFrame(pScrn, crtc->desiredX + x, crtc->desiredY + y, FALSE);
+	    else
+		RADEONDoAdjustFrame(pScrn, crtc->desiredX + x, crtc->desiredY + y, TRUE);
 	}
 	crtc->x = output->initial_x + x;
 	crtc->y = output->initial_y + y;
@@ -6258,7 +6254,6 @@ Bool RADEONEnterVT(int scrnIndex, int fl
 	{
 	    xf86CrtcPtr	crtc = xf86_config->crtc[i];
 	    RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private;
-	    radeon_crtc->binding = 1;
 	    /* Mark that we'll need to re-set the mode for sure */
 	    memset(&crtc->mode, 0, sizeof(crtc->mode));
 	    if (!crtc->desiredMode.CrtcHDisplay) {
diff --git a/src/radeon_output.c b/src/radeon_output.c
index e9e1aea..3052c36 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -126,7 +126,7 @@ const char *OutputType[10] = {
 
 static RADEONMonitorType RADEONPortCheckNonDDC(ScrnInfoPtr pScrn, xf86OutputPtr output);
 
-Bool RADEONMapControllers(ScrnInfoPtr pScrn)
+void RADEONPrintPortMap(ScrnInfoPtr pScrn)
 {
     RADEONInfoPtr info       = RADEONPTR(pScrn);
     RADEONEntPtr pRADEONEnt   = RADEONEntPriv(pScrn);
@@ -136,9 +136,6 @@ Bool RADEONMapControllers(ScrnInfoPtr pS
     xf86OutputPtr output;
     int o;
 
-    pRADEONEnt->Controller[0]->binding = 1;
-    pRADEONEnt->Controller[1]->binding = 1;
-
     for (o = 0; o < xf86_config->num_output; o++) {
       output = xf86_config->output[o];
       radeon_output = output->driver_private;
@@ -156,7 +153,6 @@ Bool RADEONMapControllers(ScrnInfoPtr pS
 
     }
 
-    return TRUE;
 }
 
 /* Primary Head (DVI or Laptop Int. panel)*/
@@ -433,13 +429,14 @@ void RADEONInitConnector(xf86OutputPtr o
     ScrnInfoPtr	    pScrn = output->scrn;
     RADEONOutputPrivatePtr radeon_output = output->driver_private;
     int DDCReg = 0;
-    char* name = OutputType[radeon_output->type];
+    char* name = (char*) DDCTypeName[radeon_output->DDCType];
 
     switch(radeon_output->DDCType) {
     case DDC_MONID: DDCReg = RADEON_GPIO_MONID; break;
     case DDC_DVI  : DDCReg = RADEON_GPIO_DVI_DDC; break;
-    case DDC_VGA: DDCReg = RADEON_GPIO_VGA_DDC; break;
-    case DDC_CRT2: DDCReg = RADEON_GPIO_CRT2_DDC; break;
+    case DDC_VGA  : DDCReg = RADEON_GPIO_VGA_DDC; break;
+    case DDC_CRT2 : DDCReg = RADEON_GPIO_CRT2_DDC; break;
+    case DDC_LCD  : DDCReg = RADEON_LCD_GPIO_MASK; break;
     default: break;
     }
     
@@ -455,7 +452,7 @@ void RADEONInitConnector(xf86OutputPtr o
     if (radeon_output->type == OUTPUT_DVI) {
 	RADEONGetTMDSInfo(output);
 
-	// FIXME
+	// FIXME -- this should be done in detect or getmodes
 	/*if (i == 0)
 	  RADEONGetHardCodedEDIDFromBIOS(output);*/
 


More information about the xorg-commit mailing list