summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2007-11-19 14:02:55 +1000
committerDave Airlie <airlied@redhat.com>2007-11-19 14:02:55 +1000
commit384cd8f52c89d089c6559e2eedbae45641fcd14e (patch)
treeb840d7ff3a131cc3097f0dcb7f2c06cde3d8f46d
parentf3f0e4ec92c935c89ddb2f4241fe4335a521b439 (diff)
parent234b6073054ac7630e82781683e666b94b2f12de (diff)
Merge branch 'agd-atom' of ../xf86-video-ati into agd-atom
-rw-r--r--src/atipciids.h2
-rw-r--r--src/atombios_crtc.c1
-rw-r--r--src/radeon.h1
-rw-r--r--src/radeon_chipset.h1
-rw-r--r--src/radeon_driver.c10
-rw-r--r--src/radeon_probe.c1
6 files changed, 14 insertions, 2 deletions
diff --git a/src/atipciids.h b/src/atipciids.h
index 685b8115..9c45c24d 100644
--- a/src/atipciids.h
+++ b/src/atipciids.h
@@ -288,7 +288,7 @@
#define PCI_CHIP_RV515_7142 0x7142
#define PCI_CHIP_RV515_7183 0x7183
-
+#define PCI_CHIP_R580_7249 0x7249
/* Misc */
#define PCI_CHIP_AMD761 0x700E
diff --git a/src/atombios_crtc.c b/src/atombios_crtc.c
index d0c6a065..e2f3a0b4 100644
--- a/src/atombios_crtc.c
+++ b/src/atombios_crtc.c
@@ -450,6 +450,7 @@ atombios_crtc_mode_set(xf86CrtcPtr crtc,
adjusted_mode->CrtcHTotal, adjusted_mode->CrtcVTotal, adjusted_mode->Flags);
if (IS_AVIVO_VARIANT) {
+ RADEONRestoreMemMapRegisters(pScrn, &info->ModeReg);
radeon_crtc->fb_width = adjusted_mode->CrtcHDisplay;
radeon_crtc->fb_height = pScrn->virtualY;
radeon_crtc->fb_pitch = adjusted_mode->CrtcHDisplay;
diff --git a/src/radeon.h b/src/radeon.h
index fc3509aa..db0f34af 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -496,6 +496,7 @@ typedef enum {
CHIP_FAMILY_RS400, /* xpress 200, 200m (RS400/410/480) */
CHIP_FAMILY_RV515, /* rv515 */
CHIP_FAMILY_R520, /* r520 */
+ CHIP_FAMILY_R580, /* r580 */
CHIP_FAMILY_R600, /* r60 */
CHIP_FAMILY_LAST
} RADEONChipFamily;
diff --git a/src/radeon_chipset.h b/src/radeon_chipset.h
index d6d8bae6..b2e20d20 100644
--- a/src/radeon_chipset.h
+++ b/src/radeon_chipset.h
@@ -139,6 +139,7 @@ static SymTabRec RADEONChipsets[] = {
{ PCI_CHIP_R481_4B4C, "ATI Radeon X850 XT PE (R480) (AGP)" },
{ PCI_CHIP_RV515_7142, "ATI AVIVO X1300 (PCIE)"},
{ PCI_CHIP_RV515_7183, "ATI AVIVO X1550PRO (PCI/PCIE)"},
+ { PCI_CHIP_R580_7249, "ATI Radeon X1900 XT"},
{ -1, NULL }
};
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index cabc5394..fa04413f 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -1346,6 +1346,9 @@ static void RADEONInitMemoryMap(ScrnInfoPtr pScrn)
*/
info->mc_agp_location = 0xffffffc0;
+ if (IS_AVIVO_VARIANT) {
+ OUTREG(AVIVO_HDP_FB_LOCATION, info->mc_fb_location);
+ }
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"RADEONInitMemoryMap() : \n");
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
@@ -1840,6 +1843,10 @@ static Bool RADEONPreInitChipType(ScrnInfoPtr pScrn)
info->ChipFamily = CHIP_FAMILY_RV515;
break;
+ case PCI_CHIP_R580_7249:
+ info->ChipFamily = CHIP_FAMILY_R580;
+ break;
+
default:
/* Original Radeon/7200 */
info->ChipFamily = CHIP_FAMILY_RADEON;
@@ -4132,7 +4139,7 @@ static void RADEONAdjustMemMapRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save)
agp = INMC(pScrn, RV515_MC_AGP_LOCATION);
} else {
fb = INMC(pScrn, R520_MC_FB_LOCATION);
- agp = INMC(pScrn, RV515_MC_AGP_LOCATION);
+ agp = INMC(pScrn, R520_MC_AGP_LOCATION);
}
fb_loc_changed = (fb != info->mc_fb_location);
@@ -5793,6 +5800,7 @@ void avivo_restore(ScrnInfoPtr pScrn, RADEONSavePtr restore)
OUTREG(AVIVO_LVTMA_TRANSMITTER_ENABLE, state->tmds2.transmitter_enable);
OUTREG(AVIVO_LVTMA_TRANSMITTER_CONTROL, state->tmds2.transmitter_cntl);
+ RADEONRestoreMemMapRegisters(pScrn, restore);
}
/* Save everything needed to restore the original VC state */
diff --git a/src/radeon_probe.c b/src/radeon_probe.c
index 7a3c9081..c1ed1059 100644
--- a/src/radeon_probe.c
+++ b/src/radeon_probe.c
@@ -194,6 +194,7 @@ PciChipsets RADEONPciChipsets[] = {
{ PCI_CHIP_R481_4B4C, PCI_CHIP_R481_4B4C, RES_SHARED_VGA },
{ PCI_CHIP_RV515_7142, PCI_CHIP_RV515_7142, RES_SHARED_VGA },
{ PCI_CHIP_RV515_7183, PCI_CHIP_RV515_7183, RES_SHARED_VGA },
+ { PCI_CHIP_R580_7249, PCI_CHIP_R580_7249, RES_SHARED_VGA },
{ -1, -1, RES_UNDEFINED }
};