summaryrefslogtreecommitdiff
path: root/src
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:51:44 -0400
commita5a0c4626a982a1823146eab82efc94ea7853b62 (patch)
tree18f6f813e94d2570b61311a80a39d2c0016f3ec3 /src
parent94d9bb93013c71cb212ea46458cf063cf2aba2fa (diff)
radeon: try harder when checking if a card is posted
fixes debian bug 524280, possibly others.
Diffstat (limited to 'src')
-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 9b5cb88a..2bacc40d 100644
--- a/src/radeon_bios.c
+++ b/src/radeon_bios.c
@@ -273,6 +273,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)
@@ -283,6 +284,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;
}