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

Alex Deucher agd5f at kemper.freedesktop.org
Wed Jan 27 13:11:49 PST 2010


 src/radeon.h          |    6 ++++--
 src/radeon_atombios.c |    6 ++++--
 src/radeon_crtc.c     |    7 ++++++-
 src/radeon_reg.h      |    3 +++
 4 files changed, 17 insertions(+), 5 deletions(-)

New commits:
commit 95b56275d80dcee48a7927df124602c34cd72235
Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Wed Jan 27 15:48:25 2010 -0500

    avivo: add some hotplug detect regs

diff --git a/src/radeon_reg.h b/src/radeon_reg.h
index e656f5f..5895da5 100644
--- a/src/radeon_reg.h
+++ b/src/radeon_reg.h
@@ -4020,6 +4020,9 @@
 #define AVIVO_GPIO_2                        0x7e50
 #define AVIVO_GPIO_3                        0x7e60
 
+#define AVIVO_DC_GPIO_HPD_MASK              0x7e90
+#define AVIVO_DC_GPIO_HPD_A                 0x7e94
+#define AVIVO_DC_GPIO_HPD_EN                0x7e98
 #define AVIVO_DC_GPIO_HPD_Y                 0x7e9c
 
 #define AVIVO_I2C_STATUS					0x7d30
commit 5a4327f7784361933484895c9af751ccfa242d48
Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Tue Jan 26 16:06:00 2010 -0500

    radeon: minor pll updates
    
    add new fixed post divider option

diff --git a/src/radeon.h b/src/radeon.h
index 10710a8..adc848d 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -277,10 +277,12 @@ typedef struct {
 #define RADEON_PLL_PREFER_HIGH_POST_DIV (1 << 9)
 #define RADEON_PLL_USE_FRAC_FB_DIV      (1 << 10)
 #define RADEON_PLL_PREFER_CLOSEST_LOWER (1 << 11)
+#define RADEON_PLL_USE_POST_DIV    (1 << 12)
 
 typedef struct {
-    uint16_t          reference_freq;
-    uint16_t          reference_div;
+    uint32_t          reference_freq;
+    uint32_t          reference_div;
+    uint32_t          post_div;
     uint32_t          pll_in_min;
     uint32_t          pll_in_max;
     uint32_t          pll_out_min;
diff --git a/src/radeon_crtc.c b/src/radeon_crtc.c
index 4e8b490..fd2c38c 100644
--- a/src/radeon_crtc.c
+++ b/src/radeon_crtc.c
@@ -144,6 +144,8 @@ RADEONComputePLL(RADEONPLLPtr pll,
 {
     uint32_t min_ref_div = pll->min_ref_div;
     uint32_t max_ref_div = pll->max_ref_div;
+    uint32_t min_post_div = pll->min_post_div;
+    uint32_t max_post_div = pll->max_post_div;
     uint32_t min_fractional_feed_div = 0;
     uint32_t max_fractional_feed_div = 0;
     uint32_t best_vco = pll->best_vco;
@@ -174,12 +176,15 @@ RADEONComputePLL(RADEONPLLPtr pll,
 	}
     }
 
+    if (flags & RADEON_PLL_USE_POST_DIV)
+	min_post_div = max_post_div = pll->post_div;
+
     if (flags & RADEON_PLL_USE_FRAC_FB_DIV) {
 	min_fractional_feed_div = pll->min_frac_feedback_div;
 	max_fractional_feed_div = pll->max_frac_feedback_div;
     }
 
-    for (post_div = pll->min_post_div; post_div <= pll->max_post_div; ++post_div) {
+    for (post_div = min_post_div; post_div <= max_post_div; ++post_div) {
 	uint32_t ref_div;
 
 	if ((flags & RADEON_PLL_NO_ODD_POST_DIV) && (post_div & 1))
commit cbd642af7c76469d701471daea0c8d167567ccf8
Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Tue Jan 26 12:03:45 2010 -0500

    radeon: use mmio bar size rather than hardcoded number for register ops
    
    newer asics have larger mmio bars

diff --git a/src/radeon_atombios.c b/src/radeon_atombios.c
index b19e653..d6c58bc 100644
--- a/src/radeon_atombios.c
+++ b/src/radeon_atombios.c
@@ -2691,13 +2691,14 @@ UINT32
 CailReadATIRegister(VOID* CAIL, UINT32 idx)
 {
     ScrnInfoPtr pScrn = xf86Screens[((atomBiosHandlePtr)CAIL)->scrnIndex];
+    RADEONInfoPtr info = RADEONPTR(pScrn);
     RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn);
     unsigned char *RADEONMMIO = pRADEONEnt->MMIO;
     UINT32 ret;
     UINT32 mm_reg = idx << 2;
     CAILFUNC(CAIL);
 
-    if (mm_reg < 0x10000)
+    if (mm_reg < info->MMIOSize)
 	ret = INREG(mm_reg);
     else {
 	OUTREG(RADEON_MM_INDEX, mm_reg);
@@ -2712,12 +2713,13 @@ VOID
 CailWriteATIRegister(VOID *CAIL, UINT32 idx, UINT32 data)
 {
     ScrnInfoPtr pScrn = xf86Screens[((atomBiosHandlePtr)CAIL)->scrnIndex];
+    RADEONInfoPtr info = RADEONPTR(pScrn);
     RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn);
     unsigned char *RADEONMMIO = pRADEONEnt->MMIO;
     UINT32 mm_reg = idx << 2;
     CAILFUNC(CAIL);
 
-    if (mm_reg < 0x10000)
+    if (mm_reg < info->MMIOSize)
 	OUTREG(mm_reg, data);
     else {
 	OUTREG(RADEON_MM_INDEX, mm_reg);


More information about the xorg-commit mailing list