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:48:54 -0400 |
commit | 1a1eef31e36f98b7a30e27e567c1b66e0e4cf7dc (patch) | |
tree | c841ff1adae7ac4a1249f3b7838a08693e8a7cc7 /src/radeon_bios.c | |
parent | 22e39392297fa11003df90c175db3c449d8f9853 (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.c | 10 |
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; } |