From e35c1f2d026c5b3874367ecd6ae7b26326ffde03 Mon Sep 17 00:00:00 2001 From: Alexander von Gluck IV Date: Sat, 12 Nov 2011 14:22:57 -0600 Subject: [PATCH] Add card post detection for legacy models * check for older cards, and see if they are posted using the older pre-avivo registers --- src/add-ons/accelerants/radeon_hd/bios.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/add-ons/accelerants/radeon_hd/bios.cpp b/src/add-ons/accelerants/radeon_hd/bios.cpp index 2d03c699e9..e1b6b23afe 100644 --- a/src/add-ons/accelerants/radeon_hd/bios.cpp +++ b/src/add-ons/accelerants/radeon_hd/bios.cpp @@ -91,15 +91,30 @@ radeon_bios_isposted() + EVERGREEN_CRTC5_REGISTER_OFFSET); if ((reg & EVERGREEN_CRTC_MASTER_EN) != 0) return true; - } else { + } else if (info.chipsetID >= RADEON_RS600) { // avivio through r700 reg = Read32(OUT, AVIVO_D1CRTC_CONTROL) | Read32(OUT, AVIVO_D2CRTC_CONTROL); if ((reg & AVIVO_CRTC_EN) != 0) { return true; } + } else { + // early cards + reg = Read32(OUT, RADEON_CRTC_GEN_CNTL) + | Read32(OUT, RADEON_CRTC2_GEN_CNTL); + if ((reg & RADEON_CRTC_EN) != 0) + return true; } + // also check memory size incase crt controlers are disabled + if (info.chipsetID >= RADEON_R600) + reg = Read32(OUT, R600_CONFIG_MEMSIZE); + else + reg = Read32(OUT, RADEON_CONFIG_MEMSIZE); + + if (reg) + return true; + return false; }