RadeonHD: Cleanup, new cards

* Fix some incorrect chip codenames
* Introduce a dual gpu flag
* Add some new chipsets and document
  the next generation of chips
This commit is contained in:
Alexander von Gluck IV 2013-06-29 13:18:18 -05:00
parent 669d40c826
commit 4ce958fcd4
3 changed files with 47 additions and 20 deletions

View File

@ -32,10 +32,11 @@
// Card chipset flags
#define CHIP_STD (1 << 0) // Standard chipset
#define CHIP_IGP (1 << 1) // IGP chipset
#define CHIP_MOBILE (1 << 2) // Mobile chipset
#define CHIP_DISCREET (1 << 3) // Discreet chipset
#define CHIP_APU (1 << 4) // APU chipset
#define CHIP_X2 (1 << 1) // Dual cpu
#define CHIP_IGP (1 << 2) // IGP chipset
#define CHIP_MOBILE (1 << 3) // Mobile chipset
#define CHIP_DISCREET (1 << 4) // Discreet chipset
#define CHIP_APU (1 << 5) // APU chipset
#define DEVICE_NAME "radeon_hd"
#define RADEON_ACCELERANT_NAME "radeon_hd.accelerant"
@ -86,16 +87,18 @@ enum radeon_chipset {
RADEON_PALM, //Fusion APU (NI), Radeon HD 6000
RADEON_SUMO,
RADEON_SUMO2,
RADEON_CAICOS, //Nothern Islands, Radeon HD 6000
RADEON_CAICOS, //Nothern Islands, Radeon HD 6000 / Low end 7000
RADEON_TURKS,
RADEON_BARTS,
RADEON_CAYMAN,
RADEON_ANTILLES,
RADEON_LOMBOK, //Southern Islands, Radeon HD 7000
RADEON_CAPEVERDE,
RADEON_CAPEVERDE, //Southern Islands, Radeon HD 7000 aka ARUBA
RADEON_BONAIRE,
RADEON_PITCAIRN,
RADEON_TAHITI,
RADEON_NEWZEALAND
RADEON_OLAND, //Sea Islands, Radeon HD 8000
RADEON_HAINAN, // NO DCE?
RADEON_CURACAO,
};

View File

@ -124,7 +124,7 @@ const struct supported_device {
{0x9513, 2, 0, RADEON_RV670, CHIP_STD, "Radeon HD 3850 X2"},
{0x9515, 2, 0, RADEON_RV670, CHIP_STD, "Radeon HD 3850"},
{0x9501, 2, 0, RADEON_RV670, CHIP_STD, "Radeon HD 3870"},
{0x950F, 2, 0, RADEON_RV670, CHIP_STD, "Radeon HD 3870 X2"},
{0x950F, 2, 0, RADEON_RV670, CHIP_STD | CHIP_X2, "Radeon HD 3870 X2"},
{0x9710, 3, 0, RADEON_RV620, CHIP_IGP, "Radeon HD 4200"},
{0x9715, 3, 0, RADEON_RV620, CHIP_IGP, "Radeon HD 4250"},
{0x9712, 3, 0, RADEON_RV620, CHIP_IGP, "Radeon HD 4270"},
@ -153,15 +153,15 @@ const struct supported_device {
{0x944e, 3, 1, RADEON_RV770, CHIP_STD, "Radeon HD 4810"},
{0x944c, 3, 1, RADEON_RV770, CHIP_STD, "Radeon HD 4830"},
{0x9442, 3, 1, RADEON_RV770, CHIP_STD, "Radeon HD 4850"},
{0x9443, 3, 1, RADEON_RV770, CHIP_STD, "Radeon HD 4850 X2"},
{0x9443, 3, 1, RADEON_RV770, CHIP_STD | CHIP_X2, "Radeon HD 4850 X2"},
{0x94a1, 3, 1, RADEON_RV770, CHIP_IGP, "Radeon HD 4860"},
{0x9440, 3, 1, RADEON_RV770, CHIP_STD, "Radeon HD 4870"},
{0x9441, 3, 1, RADEON_RV770, CHIP_STD, "Radeon HD 4870 X2"},
{0x9441, 3, 1, RADEON_RV770, CHIP_STD | CHIP_X2, "Radeon HD 4870 X2"},
{0x9460, 3, 1, RADEON_RV770, CHIP_STD, "Radeon HD 4890"},
// From here on AMD no longer used numeric identifiers
// Marketing Names: Radeon HD 54xx ~ HD 63xx
// Marketing Names: Radeon HD 5450 - HD 6320
// Introduced: 2009
// Codename: Evergreen
// Process: 40 nm
@ -186,7 +186,8 @@ const struct supported_device {
{0x6899, 4, 0, RADEON_CYPRESS, CHIP_STD, "Radeon HD 5850"},
{0x6898, 4, 0, RADEON_CYPRESS, CHIP_STD, "Radeon HD 5870"},
// Hemlock
{0x689c, 4, 0, RADEON_HEMLOCK, CHIP_STD, "Radeon HD 5900"},
{0x689c, 4, 0, RADEON_HEMLOCK, CHIP_STD | CHIP_X2, "Radeon HD 5900 X2"},
{0x689d, 4, 0, RADEON_HEMLOCK, CHIP_STD | CHIP_X2, "Radeon HD 5900 X2"},
// Fusion APUS
// Palm
{0x9804, 4, 1, RADEON_PALM, CHIP_APU, "Radeon HD 6250"},
@ -209,7 +210,7 @@ const struct supported_device {
{0x9644, 4, 1, RADEON_SUMO2, CHIP_APU, "Radeon HD 6410D"},
{0x9645, 4, 1, RADEON_SUMO2, CHIP_APU, "Radeon HD SUMO2 M"},
// Radeon HD 64xx - HD 69xx
// Radeon HD 6450 - HD 7670
// Introduced: 2010
// Codename: Nothern Islands
// Process: 40 nm
@ -244,6 +245,7 @@ const struct supported_device {
{0x6750, 5, 0, RADEON_TURKS, CHIP_STD, "Radeon HD 6500"},
{0x6758, 5, 0, RADEON_TURKS, CHIP_STD, "Radeon HD 6670"},
{0x6759, 5, 0, RADEON_TURKS, CHIP_STD, "Radeon HD 6570/7570"},
{0x6850, 6, 0, RADEON_TURKS, CHIP_MOBILE, "Radeon HD 7570"},
// Barts
{0x673e, 5, 0, RADEON_BARTS, CHIP_STD, "Radeon HD 6790"},
{0x6739, 5, 0, RADEON_BARTS, CHIP_STD, "Radeon HD 6850"},
@ -266,12 +268,10 @@ const struct supported_device {
// Antilles (Top, Dual GPU)
{0x671d, 5, 0, RADEON_ANTILLES, CHIP_STD, "Radeon HD 6990"},
// Marketing Names: Radeon HD 74xx - HD 79xx
// Marketing Names: Radeon HD 7750 - HD 79xx
// Introduced: Late 2011
// Codename: Southern Islands
// Process: 28 nm
// Lombok?
{0x6850, 6, 0, RADEON_LOMBOK, CHIP_MOBILE, "Radeon HD 7570"},
// Cape Verde (TODO: Need to find friendly names)
{0x6820, 6, 0, RADEON_CAPEVERDE, CHIP_STD, "Radeon HD Verde"},
{0x6821, 6, 0, RADEON_CAPEVERDE, CHIP_STD, "Radeon HD Verde"},
@ -292,6 +292,13 @@ const struct supported_device {
{0x683b, 6, 0, RADEON_CAPEVERDE, CHIP_STD, "Radeon HD Verde"},
{0x683f, 6, 0, RADEON_CAPEVERDE, CHIP_STD, "Radeon HD 7750"},
{0x683d, 6, 0, RADEON_CAPEVERDE, CHIP_STD, "Radeon HD 7770"},
// Bonaire (TODO: Need to find friendly names)
{0x6649, 6, 0, RADEON_BONAIRE, CHIP_STD, "Radeon HD Bonaire"},
{0x6650, 6, 0, RADEON_BONAIRE, CHIP_STD, "Radeon HD Bonaire"},
{0x6651, 6, 0, RADEON_BONAIRE, CHIP_STD, "Radeon HD Bonaire"},
{0x6658, 6, 0, RADEON_BONAIRE, CHIP_STD, "Radeon HD Bonaire"},
{0x665c, 6, 0, RADEON_BONAIRE, CHIP_STD, "Radeon HD 7790"},
{0x665d, 6, 0, RADEON_BONAIRE, CHIP_STD, "Radeon HD Bonaire"},
// Pitcairn (TODO: Need to find friendly names)
{0x6800, 6, 0, RADEON_PITCAIRN, CHIP_MOBILE, "Radeon HD 7970"},
{0x6801, 6, 0, RADEON_PITCAIRN, CHIP_STD, "Radeon HD Pitcairn"},
@ -312,8 +319,25 @@ const struct supported_device {
{0x679f, 6, 0, RADEON_TAHITI, CHIP_STD, "Radeon HD Tahiti"},
{0x679a, 6, 0, RADEON_TAHITI, CHIP_STD, "Radeon HD 7950"},
{0x6798, 6, 0, RADEON_TAHITI, CHIP_STD, "Radeon HD 7970"},
// New Zealand (Top, Dual GPU)
{0x6799, 6, 0, RADEON_TAHITI, CHIP_STD, "Radeon HD 7990"}
{0x6799, 6, 0, RADEON_TAHITI, CHIP_STD, "Radeon HD 7990"},
// Marketing Names: Radeon HD 83xx - HD 89xx
// Introduced: Late 2013
// Codename: Sea Islands
// Process: 28 nm
// Oland DCE 6,4
// Hainan NO DCE?
// Curacao ????
// Marketing Names: Radeon HD 9xxx - HD 9xxx
// Introduced: 2014?
// Codename: Volcanic Islands
// Process: 20 nm
// Marketing Names: Radeon HD 9xxx - HD 9xxx
// Introduced: 2015?
// Codename: Pirate Islands
// Process: ?? nm
};

View File

@ -26,7 +26,7 @@ radeon_thermal_query(radeon_info &info)
uint32 rawTemp = 0;
int32 finalTemp = 0;
if (info.chipsetID >= RADEON_LOMBOK) {
if (info.chipsetID >= RADEON_CAPEVERDE) {
rawTemp = (read32(info.registers + SI_CG_MULT_THERMAL_STATUS)
& SI_CTF_TEMP_MASK) >> SI_CTF_TEMP_SHIFT;