xf86-video-ati: Branch 'master' - 3 commits

Alex Deucher agd5f at kemper.freedesktop.org
Tue Jun 24 17:23:40 PDT 2008


 src/legacy_output.c |   20 ++++++++++++++++++++
 src/radeon_crtc.c   |    1 -
 src/radeon_output.c |    4 ++--
 3 files changed, 22 insertions(+), 3 deletions(-)

New commits:
commit 8e534d69c9b19fc085f7c5ca9e18f5ea04f6fc12
Author: Alex Deucher <alex at botch2.com>
Date:   Tue Jun 24 20:08:35 2008 -0400

    RADEON: cleanups
    
    - fix some warnings
    - RS400 and RS480 are separate families now (update default tmds and dac2
    tables)

diff --git a/src/radeon_output.c b/src/radeon_output.c
index 9198920..7b89d66 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -144,6 +144,7 @@ static const RADEONTMDSPll default_tmds_pll[CHIP_FAMILY_LAST][4] =
     {{0xffffffff, 0xb01cb}, {0, 0}, {0, 0}, {0, 0}},		/*CHIP_FAMILY_R420*/
     {{0xffffffff, 0xb01cb}, {0, 0}, {0, 0}, {0, 0}},		/*CHIP_FAMILY_RV410*/ /* FIXME: just values from r420 used... */
     {{15000, 0xb0155}, {0xffffffff, 0xb01cb}, {0, 0}, {0, 0}},	/*CHIP_FAMILY_RS400*/ /* FIXME: just values from rv380 used... */
+    {{15000, 0xb0155}, {0xffffffff, 0xb01cb}, {0, 0}, {0, 0}},	/*CHIP_FAMILY_RS480*/ /* FIXME: just values from rv380 used... */
 };
 
 static const uint32_t default_tvdac_adj [CHIP_FAMILY_LAST] =
@@ -166,6 +167,7 @@ static const uint32_t default_tvdac_adj [CHIP_FAMILY_LAST] =
     0x01080000,   /* r420 */
     0x01080000,   /* rv410 */ /* FIXME: just values from r420 used... */
     0x00780000,   /* rs400 */ /* FIXME: just values from rv380 used... */
+    0x00780000,   /* rs480 */ /* FIXME: just values from rv380 used... */
 };
 
 
@@ -584,7 +586,6 @@ radeon_mode_fixup(xf86OutputPtr output, DisplayModePtr mode,
 static void
 radeon_mode_prepare(xf86OutputPtr output)
 {
-    RADEONInfoPtr info = RADEONPTR(output->scrn);
     xf86CrtcConfigPtr	config = XF86_CRTC_CONFIG_PTR (output->scrn);
     int o;
 
@@ -624,7 +625,6 @@ radeon_mode_set(xf86OutputPtr output, DisplayModePtr mode,
 static void
 radeon_mode_commit(xf86OutputPtr output)
 {
-    RADEONInfoPtr info = RADEONPTR(output->scrn);
     xf86CrtcConfigPtr	config = XF86_CRTC_CONFIG_PTR (output->scrn);
     int o;
 
commit e78e8a21b4040cd7f1983c241c860d9209398396
Author: Alex Deucher <alex at botch2.com>
Date:   Tue Jun 24 19:53:28 2008 -0400

    IGP: attempt to fix VGA on IGP chips
    
    VGA has never worked on some IGP chips.  While the chip only has
    one DAC, it appears to use a mix of Primary DAC and TVDAC controls.
    
    See bug 15708

diff --git a/src/legacy_output.c b/src/legacy_output.c
index 4df81ab..9c9ebb9 100644
--- a/src/legacy_output.c
+++ b/src/legacy_output.c
@@ -727,6 +727,14 @@ RADEONEnableDisplay(xf86OutputPtr output, BOOL bEnable)
 		    save->crtc2_gen_cntl |= RADEON_CRTC2_CRT2_ON;
 		}
 		tv_dac_change = 1;
+		/* IGP chips seem to use a mix of Primary and TVDAC controls */
+		if (info->IsIGP) {
+		    tmp = INREG(RADEON_CRTC_EXT_CNTL);
+		    tmp |= RADEON_CRTC_CRT_ON;
+		    OUTREG(RADEON_CRTC_EXT_CNTL, tmp);
+		    save->crtc_ext_cntl |= RADEON_CRTC_CRT_ON;
+		    RADEONDacPowerSet(pScrn, bEnable, TRUE);
+		}
 	    }
 	} else if (radeon_output->MonType == MT_DFP) {
 	    if (radeon_output->TMDSType == TMDS_INT) {
@@ -807,6 +815,14 @@ RADEONEnableDisplay(xf86OutputPtr output, BOOL bEnable)
 			save->crtc2_gen_cntl &= ~RADEON_CRTC2_CRT2_ON;
 		    }
 		}
+		/* IGP chips seem to use a mix of Primary and TVDAC controls */
+		if (info->IsIGP) {
+		    tmp = INREG(RADEON_CRTC_EXT_CNTL);
+		    tmp &= ~RADEON_CRTC_CRT_ON;
+		    OUTREG(RADEON_CRTC_EXT_CNTL, tmp);
+		    save->crtc_ext_cntl &= ~RADEON_CRTC_CRT_ON;
+		    RADEONDacPowerSet(pScrn, bEnable, TRUE);
+		}
 	    }
 	} else if (radeon_output->MonType == MT_DFP) {
 	    if (radeon_output->TMDSType == TMDS_INT) {
@@ -1367,6 +1383,7 @@ RADEONInitOutputRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save,
 {
     Bool IsPrimary = crtc_num == 0 ? TRUE : FALSE;
     RADEONOutputPrivatePtr radeon_output = output->driver_private;
+    RADEONInfoPtr info = RADEONPTR(pScrn);
 
     if (crtc_num == 0)
 	RADEONInitRMXRegisters(output, save, mode);
@@ -1376,6 +1393,9 @@ RADEONInitOutputRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save,
 	    RADEONInitDACRegisters(output, save, mode, IsPrimary);
 	} else {
 	    RADEONInitDAC2Registers(output, save, mode, IsPrimary);
+	    /* IGP chips seem to use a mix of primary and TVDAC controls */
+	    if (info->IsIGP)
+		RADEONInitDACRegisters(output, save, mode, IsPrimary);
 	}
     } else if (radeon_output->MonType == MT_LCD) {
 	RADEONInitLVDSRegisters(output, save, mode, IsPrimary);
commit faa4b4b8dbe9b8a452cfa60d53874350bb04e0cb
Author: Jiří Paleček <jpalecek at web.de>
Date:   Tue Jun 24 19:20:50 2008 -0400

    RADEON: remove extraneous line from new pll code

diff --git a/src/radeon_crtc.c b/src/radeon_crtc.c
index 8f2d4fc..c63b650 100644
--- a/src/radeon_crtc.c
+++ b/src/radeon_crtc.c
@@ -144,7 +144,6 @@ RADEONComputePLL(RADEONPLLPtr pll,
     if (flags & RADEON_PLL_USE_REF_DIV)
 	min_ref_div = max_ref_div = pll->reference_div;
     else {
-	max_ref_div = 2*max_ref_div - min_ref_div;
 	while (min_ref_div < max_ref_div-1) {
 	    uint32_t mid=(min_ref_div+max_ref_div)/2;
 	    uint32_t pll_in = pll->reference_freq / mid;


More information about the xorg-commit mailing list