diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2009-05-14 15:48:54 -0400 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2009-05-14 15:51:44 -0400 |
commit | a5a0c4626a982a1823146eab82efc94ea7853b62 (patch) | |
tree | 18f6f813e94d2570b61311a80a39d2c0016f3ec3 /src | |
parent | 94d9bb93013c71cb212ea46458cf063cf2aba2fa (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.c | 10 |
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; } |