summaryrefslogtreecommitdiff
path: root/src/radeon_bios.c
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2009-05-14 15:48:54 -0400
committerAlex Deucher <alexdeucher@gmail.com>2009-05-14 15:48:54 -0400
commit1a1eef31e36f98b7a30e27e567c1b66e0e4cf7dc (patch)
treec841ff1adae7ac4a1249f3b7838a08693e8a7cc7 /src/radeon_bios.c
parent22e39392297fa11003df90c175db3c449d8f9853 (diff)
radeon: try harder when checking if a card is posted
fixes debian bug 524280, possibly others.
Diffstat (limited to 'src/radeon_bios.c')
-rw-r--r--src/radeon_bios.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/radeon_bios.c b/src/radeon_bios.c
index 9907e09c..ecf54030 100644
--- a/src/radeon_bios.c
+++ b/src/radeon_bios.c
@@ -328,6 +328,7 @@ radeon_card_posted(ScrnInfoPtr pScrn)
unsigned char *RADEONMMIO = info->MMIO;
uint32_t reg;
+ /* first check CRTCs */
if (IS_AVIVO_VARIANT) {
reg = INREG(AVIVO_D1CRTC_CONTROL) | INREG(AVIVO_D2CRTC_CONTROL);
if (reg & AVIVO_CRTC_EN)
@@ -338,6 +339,15 @@ radeon_card_posted(ScrnInfoPtr pScrn)
return TRUE;
}
+ /* then check MEM_SIZE, in case something turned the crtcs off */
+ if (info->ChipFamily >= CHIP_FAMILY_R600)
+ reg = INREG(R600_CONFIG_MEMSIZE);
+ else
+ reg = INREG(RADEON_CONFIG_MEMSIZE);
+
+ if (reg)
+ return TRUE;
+
return FALSE;
}