diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2013-08-14 01:01:40 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2013-08-30 16:30:28 -0400 |
commit | 41a524abff2630dce0f9c38eb7340fbf2dc5bf27 (patch) | |
tree | 212adab0104b0605013934e95dcb0460daf1130e /drivers/gpu/drm/radeon/cikd.h | |
parent | 6bb5c0d74c1962a8b1c722521c01e19d38c47370 (diff) |
drm/radeon/kms: add dpm support for KB/KV
This adds dpm support for KB/KV asics. This includes:
- dynamic engine clock scaling
- dynamic voltage scaling
- power containment
- shader power scaling
Set radeon.dpm=1 to enable.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/cikd.h')
-rw-r--r-- | drivers/gpu/drm/radeon/cikd.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/cikd.h b/drivers/gpu/drm/radeon/cikd.h index 65886caaf756..179ca3625ae4 100644 --- a/drivers/gpu/drm/radeon/cikd.h +++ b/drivers/gpu/drm/radeon/cikd.h | |||
@@ -28,10 +28,59 @@ | |||
28 | 28 | ||
29 | #define CIK_RB_BITMAP_WIDTH_PER_SH 2 | 29 | #define CIK_RB_BITMAP_WIDTH_PER_SH 2 |
30 | 30 | ||
31 | /* DIDT IND registers */ | ||
32 | #define DIDT_SQ_CTRL0 0x0 | ||
33 | # define DIDT_CTRL_EN (1 << 0) | ||
34 | #define DIDT_DB_CTRL0 0x20 | ||
35 | #define DIDT_TD_CTRL0 0x40 | ||
36 | #define DIDT_TCP_CTRL0 0x60 | ||
37 | |||
31 | /* SMC IND registers */ | 38 | /* SMC IND registers */ |
39 | #define NB_DPM_CONFIG_1 0x3F9E8 | ||
40 | # define Dpm0PgNbPsLo(x) ((x) << 0) | ||
41 | # define Dpm0PgNbPsLo_MASK 0x000000ff | ||
42 | # define Dpm0PgNbPsLo_SHIFT 0 | ||
43 | # define Dpm0PgNbPsHi(x) ((x) << 8) | ||
44 | # define Dpm0PgNbPsHi_MASK 0x0000ff00 | ||
45 | # define Dpm0PgNbPsHi_SHIFT 8 | ||
46 | # define DpmXNbPsLo(x) ((x) << 16) | ||
47 | # define DpmXNbPsLo_MASK 0x00ff0000 | ||
48 | # define DpmXNbPsLo_SHIFT 16 | ||
49 | # define DpmXNbPsHi(x) ((x) << 24) | ||
50 | # define DpmXNbPsHi_MASK 0xff000000 | ||
51 | # define DpmXNbPsHi_SHIFT 24 | ||
52 | |||
53 | #define SMC_SYSCON_MSG_ARG_0 0x80000068 | ||
54 | |||
32 | #define GENERAL_PWRMGT 0xC0200000 | 55 | #define GENERAL_PWRMGT 0xC0200000 |
56 | # define GLOBAL_PWRMGT_EN (1 << 0) | ||
33 | # define GPU_COUNTER_CLK (1 << 15) | 57 | # define GPU_COUNTER_CLK (1 << 15) |
34 | 58 | ||
59 | #define SCLK_PWRMGT_CNTL 0xC0200008 | ||
60 | # define RESET_BUSY_CNT (1 << 4) | ||
61 | # define RESET_SCLK_CNT (1 << 5) | ||
62 | # define DYNAMIC_PM_EN (1 << 21) | ||
63 | |||
64 | #define CG_FTV_0 0xC02001A8 | ||
65 | |||
66 | #define LCAC_SX0_OVR_SEL 0xC0400D04 | ||
67 | #define LCAC_SX0_OVR_VAL 0xC0400D08 | ||
68 | |||
69 | #define LCAC_MC0_OVR_SEL 0xC0400D34 | ||
70 | #define LCAC_MC0_OVR_VAL 0xC0400D38 | ||
71 | |||
72 | #define LCAC_MC1_OVR_SEL 0xC0400D40 | ||
73 | #define LCAC_MC1_OVR_VAL 0xC0400D44 | ||
74 | |||
75 | #define LCAC_MC2_OVR_SEL 0xC0400D4C | ||
76 | #define LCAC_MC2_OVR_VAL 0xC0400D50 | ||
77 | |||
78 | #define LCAC_MC3_OVR_SEL 0xC0400D58 | ||
79 | #define LCAC_MC3_OVR_VAL 0xC0400D5C | ||
80 | |||
81 | #define LCAC_CPL_OVR_SEL 0xC0400D84 | ||
82 | #define LCAC_CPL_OVR_VAL 0xC0400D88 | ||
83 | |||
35 | #define CG_MULT_THERMAL_STATUS 0xC0300014 | 84 | #define CG_MULT_THERMAL_STATUS 0xC0300014 |
36 | #define ASIC_MAX_TEMP(x) ((x) << 0) | 85 | #define ASIC_MAX_TEMP(x) ((x) << 0) |
37 | #define ASIC_MAX_TEMP_MASK 0x000001ff | 86 | #define ASIC_MAX_TEMP_MASK 0x000001ff |
@@ -60,6 +109,16 @@ | |||
60 | # define ZCLK_SEL(x) ((x) << 8) | 109 | # define ZCLK_SEL(x) ((x) << 8) |
61 | # define ZCLK_SEL_MASK 0xFF00 | 110 | # define ZCLK_SEL_MASK 0xFF00 |
62 | 111 | ||
112 | #define CG_THERMAL_INT_CTRL 0xC2100028 | ||
113 | #define DIG_THERM_INTH(x) ((x) << 0) | ||
114 | #define DIG_THERM_INTH_MASK 0x000000FF | ||
115 | #define DIG_THERM_INTH_SHIFT 0 | ||
116 | #define DIG_THERM_INTL(x) ((x) << 8) | ||
117 | #define DIG_THERM_INTL_MASK 0x0000FF00 | ||
118 | #define DIG_THERM_INTL_SHIFT 8 | ||
119 | #define THERM_INTH_MASK (1 << 24) | ||
120 | #define THERM_INTL_MASK (1 << 25) | ||
121 | |||
63 | /* PCIE registers idx/data 0x38/0x3c */ | 122 | /* PCIE registers idx/data 0x38/0x3c */ |
64 | #define PB0_PIF_PWRDOWN_0 0x1100012 /* PCIE */ | 123 | #define PB0_PIF_PWRDOWN_0 0x1100012 /* PCIE */ |
65 | # define PLL_POWER_STATE_IN_TXS2_0(x) ((x) << 7) | 124 | # define PLL_POWER_STATE_IN_TXS2_0(x) ((x) << 7) |
@@ -173,6 +232,19 @@ | |||
173 | #define PCIE_INDEX 0x38 | 232 | #define PCIE_INDEX 0x38 |
174 | #define PCIE_DATA 0x3C | 233 | #define PCIE_DATA 0x3C |
175 | 234 | ||
235 | #define SMC_IND_INDEX_0 0x200 | ||
236 | #define SMC_IND_DATA_0 0x204 | ||
237 | |||
238 | #define SMC_IND_ACCESS_CNTL 0x240 | ||
239 | #define AUTO_INCREMENT_IND_0 (1 << 0) | ||
240 | |||
241 | #define SMC_MESSAGE_0 0x250 | ||
242 | #define SMC_MSG_MASK 0xffff | ||
243 | #define SMC_RESP_0 0x254 | ||
244 | #define SMC_RESP_MASK 0xffff | ||
245 | |||
246 | #define SMC_MSG_ARG_0 0x290 | ||
247 | |||
176 | #define VGA_HDP_CONTROL 0x328 | 248 | #define VGA_HDP_CONTROL 0x328 |
177 | #define VGA_MEMORY_DISABLE (1 << 4) | 249 | #define VGA_MEMORY_DISABLE (1 << 4) |
178 | 250 | ||