| .. | .. |
|---|
| 29 | 29 | #include "core_types.h" |
|---|
| 30 | 30 | #include "dchubbub.h" |
|---|
| 31 | 31 | |
|---|
| 32 | | -#define HUBHUB_REG_LIST_DCN()\ |
|---|
| 32 | +#define TO_DCN10_HUBBUB(hubbub)\ |
|---|
| 33 | + container_of(hubbub, struct dcn10_hubbub, base) |
|---|
| 34 | + |
|---|
| 35 | +#define HUBBUB_REG_LIST_DCN_COMMON()\ |
|---|
| 33 | 36 | SR(DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_A),\ |
|---|
| 34 | | - SR(DCHUBBUB_ARB_PTE_META_URGENCY_WATERMARK_A),\ |
|---|
| 35 | 37 | SR(DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_A),\ |
|---|
| 36 | 38 | SR(DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_B),\ |
|---|
| 37 | | - SR(DCHUBBUB_ARB_PTE_META_URGENCY_WATERMARK_B),\ |
|---|
| 38 | 39 | SR(DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_B),\ |
|---|
| 39 | 40 | SR(DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_C),\ |
|---|
| 40 | | - SR(DCHUBBUB_ARB_PTE_META_URGENCY_WATERMARK_C),\ |
|---|
| 41 | 41 | SR(DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_C),\ |
|---|
| 42 | 42 | SR(DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_D),\ |
|---|
| 43 | | - SR(DCHUBBUB_ARB_PTE_META_URGENCY_WATERMARK_D),\ |
|---|
| 44 | 43 | SR(DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_D),\ |
|---|
| 45 | 44 | SR(DCHUBBUB_ARB_WATERMARK_CHANGE_CNTL),\ |
|---|
| 46 | 45 | SR(DCHUBBUB_ARB_DRAM_STATE_CNTL),\ |
|---|
| .. | .. |
|---|
| 50 | 49 | SR(DCHUBBUB_TEST_DEBUG_INDEX), \ |
|---|
| 51 | 50 | SR(DCHUBBUB_TEST_DEBUG_DATA),\ |
|---|
| 52 | 51 | SR(DCHUBBUB_SOFT_RESET) |
|---|
| 52 | + |
|---|
| 53 | +#define HUBBUB_VM_REG_LIST() \ |
|---|
| 54 | + SR(DCHUBBUB_ARB_PTE_META_URGENCY_WATERMARK_A),\ |
|---|
| 55 | + SR(DCHUBBUB_ARB_PTE_META_URGENCY_WATERMARK_B),\ |
|---|
| 56 | + SR(DCHUBBUB_ARB_PTE_META_URGENCY_WATERMARK_C),\ |
|---|
| 57 | + SR(DCHUBBUB_ARB_PTE_META_URGENCY_WATERMARK_D) |
|---|
| 53 | 58 | |
|---|
| 54 | 59 | #define HUBBUB_SR_WATERMARK_REG_LIST()\ |
|---|
| 55 | 60 | SR(DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_A),\ |
|---|
| .. | .. |
|---|
| 62 | 67 | SR(DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_D) |
|---|
| 63 | 68 | |
|---|
| 64 | 69 | #define HUBBUB_REG_LIST_DCN10(id)\ |
|---|
| 65 | | - HUBHUB_REG_LIST_DCN(), \ |
|---|
| 70 | + HUBBUB_REG_LIST_DCN_COMMON(), \ |
|---|
| 71 | + HUBBUB_VM_REG_LIST(), \ |
|---|
| 66 | 72 | HUBBUB_SR_WATERMARK_REG_LIST(), \ |
|---|
| 67 | 73 | SR(DCHUBBUB_SDPIF_FB_TOP),\ |
|---|
| 68 | 74 | SR(DCHUBBUB_SDPIF_FB_BASE),\ |
|---|
| .. | .. |
|---|
| 107 | 113 | uint32_t DCHUBBUB_SDPIF_AGP_TOP; |
|---|
| 108 | 114 | uint32_t DCHUBBUB_CRC_CTRL; |
|---|
| 109 | 115 | uint32_t DCHUBBUB_SOFT_RESET; |
|---|
| 116 | + uint32_t DCN_VM_FB_LOCATION_BASE; |
|---|
| 117 | + uint32_t DCN_VM_FB_LOCATION_TOP; |
|---|
| 118 | + uint32_t DCN_VM_FB_OFFSET; |
|---|
| 119 | + uint32_t DCN_VM_AGP_BOT; |
|---|
| 120 | + uint32_t DCN_VM_AGP_TOP; |
|---|
| 121 | + uint32_t DCN_VM_AGP_BASE; |
|---|
| 122 | + uint32_t DCN_VM_PROTECTION_FAULT_DEFAULT_ADDR_MSB; |
|---|
| 123 | + uint32_t DCN_VM_PROTECTION_FAULT_DEFAULT_ADDR_LSB; |
|---|
| 124 | + uint32_t DCHUBBUB_ARB_FRAC_URG_BW_NOM_A; |
|---|
| 125 | + uint32_t DCHUBBUB_ARB_FRAC_URG_BW_NOM_B; |
|---|
| 126 | + uint32_t DCHUBBUB_ARB_FRAC_URG_BW_NOM_C; |
|---|
| 127 | + uint32_t DCHUBBUB_ARB_FRAC_URG_BW_NOM_D; |
|---|
| 128 | + uint32_t DCHUBBUB_ARB_FRAC_URG_BW_FLIP_A; |
|---|
| 129 | + uint32_t DCHUBBUB_ARB_FRAC_URG_BW_FLIP_B; |
|---|
| 130 | + uint32_t DCHUBBUB_ARB_FRAC_URG_BW_FLIP_C; |
|---|
| 131 | + uint32_t DCHUBBUB_ARB_FRAC_URG_BW_FLIP_D; |
|---|
| 132 | + uint32_t DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_A; |
|---|
| 133 | + uint32_t DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_B; |
|---|
| 134 | + uint32_t DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_C; |
|---|
| 135 | + uint32_t DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_D; |
|---|
| 136 | + uint32_t DCHUBBUB_ARB_HOSTVM_CNTL; |
|---|
| 137 | + uint32_t DCHVM_CTRL0; |
|---|
| 138 | + uint32_t DCHVM_MEM_CTRL; |
|---|
| 139 | + uint32_t DCHVM_CLK_CTRL; |
|---|
| 140 | + uint32_t DCHVM_RIOMMU_CTRL0; |
|---|
| 141 | + uint32_t DCHVM_RIOMMU_STAT0; |
|---|
| 110 | 142 | }; |
|---|
| 111 | 143 | |
|---|
| 112 | 144 | /* set field name */ |
|---|
| 113 | 145 | #define HUBBUB_SF(reg_name, field_name, post_fix)\ |
|---|
| 114 | 146 | .field_name = reg_name ## __ ## field_name ## post_fix |
|---|
| 115 | 147 | |
|---|
| 116 | | - |
|---|
| 117 | | -#define HUBBUB_MASK_SH_LIST_DCN(mask_sh)\ |
|---|
| 148 | +#define HUBBUB_MASK_SH_LIST_DCN_COMMON(mask_sh)\ |
|---|
| 118 | 149 | HUBBUB_SF(DCHUBBUB_GLOBAL_TIMER_CNTL, DCHUBBUB_GLOBAL_TIMER_ENABLE, mask_sh), \ |
|---|
| 119 | 150 | HUBBUB_SF(DCHUBBUB_SOFT_RESET, DCHUBBUB_GLOBAL_SOFT_RESET, mask_sh), \ |
|---|
| 120 | 151 | HUBBUB_SF(DCHUBBUB_ARB_WATERMARK_CHANGE_CNTL, DCHUBBUB_ARB_WATERMARK_CHANGE_REQUEST, mask_sh), \ |
|---|
| .. | .. |
|---|
| 124 | 155 | HUBBUB_SF(DCHUBBUB_ARB_DRAM_STATE_CNTL, DCHUBBUB_ARB_ALLOW_PSTATE_CHANGE_FORCE_VALUE, mask_sh), \ |
|---|
| 125 | 156 | HUBBUB_SF(DCHUBBUB_ARB_DRAM_STATE_CNTL, DCHUBBUB_ARB_ALLOW_PSTATE_CHANGE_FORCE_ENABLE, mask_sh), \ |
|---|
| 126 | 157 | HUBBUB_SF(DCHUBBUB_ARB_SAT_LEVEL, DCHUBBUB_ARB_SAT_LEVEL, mask_sh), \ |
|---|
| 127 | | - HUBBUB_SF(DCHUBBUB_ARB_DF_REQ_OUTSTAND, DCHUBBUB_ARB_MIN_REQ_OUTSTAND, mask_sh) |
|---|
| 158 | + HUBBUB_SF(DCHUBBUB_ARB_DF_REQ_OUTSTAND, DCHUBBUB_ARB_MIN_REQ_OUTSTAND, mask_sh), \ |
|---|
| 159 | + HUBBUB_SF(DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_A, DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_A, mask_sh), \ |
|---|
| 160 | + HUBBUB_SF(DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_B, DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_B, mask_sh), \ |
|---|
| 161 | + HUBBUB_SF(DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_C, DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_C, mask_sh), \ |
|---|
| 162 | + HUBBUB_SF(DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_D, DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_D, mask_sh), \ |
|---|
| 163 | + HUBBUB_SF(DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_A, DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_A, mask_sh), \ |
|---|
| 164 | + HUBBUB_SF(DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_B, DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_B, mask_sh), \ |
|---|
| 165 | + HUBBUB_SF(DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_C, DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_C, mask_sh), \ |
|---|
| 166 | + HUBBUB_SF(DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_D, DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_D, mask_sh) |
|---|
| 167 | + |
|---|
| 168 | +#define HUBBUB_MASK_SH_LIST_STUTTER(mask_sh) \ |
|---|
| 169 | + HUBBUB_SF(DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_A, DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_A, mask_sh), \ |
|---|
| 170 | + HUBBUB_SF(DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_B, DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_B, mask_sh), \ |
|---|
| 171 | + HUBBUB_SF(DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_C, DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_C, mask_sh), \ |
|---|
| 172 | + HUBBUB_SF(DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_D, DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_D, mask_sh), \ |
|---|
| 173 | + HUBBUB_SF(DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_A, DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_A, mask_sh), \ |
|---|
| 174 | + HUBBUB_SF(DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_B, DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_B, mask_sh), \ |
|---|
| 175 | + HUBBUB_SF(DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_C, DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_C, mask_sh), \ |
|---|
| 176 | + HUBBUB_SF(DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_D, DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_D, mask_sh) |
|---|
| 128 | 177 | |
|---|
| 129 | 178 | #define HUBBUB_MASK_SH_LIST_DCN10(mask_sh)\ |
|---|
| 130 | | - HUBBUB_MASK_SH_LIST_DCN(mask_sh), \ |
|---|
| 179 | + HUBBUB_MASK_SH_LIST_DCN_COMMON(mask_sh), \ |
|---|
| 180 | + HUBBUB_MASK_SH_LIST_STUTTER(mask_sh), \ |
|---|
| 131 | 181 | HUBBUB_SF(DCHUBBUB_SDPIF_FB_TOP, SDPIF_FB_TOP, mask_sh), \ |
|---|
| 132 | 182 | HUBBUB_SF(DCHUBBUB_SDPIF_FB_BASE, SDPIF_FB_BASE, mask_sh), \ |
|---|
| 133 | 183 | HUBBUB_SF(DCHUBBUB_SDPIF_FB_OFFSET, SDPIF_FB_OFFSET, mask_sh), \ |
|---|
| .. | .. |
|---|
| 152 | 202 | type SDPIF_FB_OFFSET;\ |
|---|
| 153 | 203 | type SDPIF_AGP_BASE;\ |
|---|
| 154 | 204 | type SDPIF_AGP_BOT;\ |
|---|
| 155 | | - type SDPIF_AGP_TOP |
|---|
| 205 | + type SDPIF_AGP_TOP;\ |
|---|
| 206 | + type FB_BASE;\ |
|---|
| 207 | + type FB_TOP;\ |
|---|
| 208 | + type FB_OFFSET;\ |
|---|
| 209 | + type AGP_BOT;\ |
|---|
| 210 | + type AGP_TOP;\ |
|---|
| 211 | + type AGP_BASE;\ |
|---|
| 212 | + type DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_A;\ |
|---|
| 213 | + type DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_B;\ |
|---|
| 214 | + type DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_C;\ |
|---|
| 215 | + type DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_D;\ |
|---|
| 216 | + type DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_A;\ |
|---|
| 217 | + type DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_B;\ |
|---|
| 218 | + type DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_C;\ |
|---|
| 219 | + type DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_D;\ |
|---|
| 220 | + type DCN_VM_PROTECTION_FAULT_DEFAULT_ADDR_MSB;\ |
|---|
| 221 | + type DCN_VM_PROTECTION_FAULT_DEFAULT_ADDR_LSB |
|---|
| 156 | 222 | |
|---|
| 223 | +#define HUBBUB_STUTTER_REG_FIELD_LIST(type) \ |
|---|
| 224 | + type DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_A;\ |
|---|
| 225 | + type DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_B;\ |
|---|
| 226 | + type DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_C;\ |
|---|
| 227 | + type DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_D;\ |
|---|
| 228 | + type DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_A;\ |
|---|
| 229 | + type DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_B;\ |
|---|
| 230 | + type DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_C;\ |
|---|
| 231 | + type DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_D |
|---|
| 232 | + |
|---|
| 233 | +#define HUBBUB_HVM_REG_FIELD_LIST(type) \ |
|---|
| 234 | + type DCHUBBUB_ARB_MIN_REQ_OUTSTAND_COMMIT_THRESHOLD;\ |
|---|
| 235 | + type DCHUBBUB_ARB_VM_ROW_URGENCY_WATERMARK_A;\ |
|---|
| 236 | + type DCHUBBUB_ARB_VM_ROW_URGENCY_WATERMARK_B;\ |
|---|
| 237 | + type DCHUBBUB_ARB_VM_ROW_URGENCY_WATERMARK_C;\ |
|---|
| 238 | + type DCHUBBUB_ARB_VM_ROW_URGENCY_WATERMARK_D;\ |
|---|
| 239 | + type DCHUBBUB_ARB_VM_ROW_ALLOW_SR_ENTER_WATERMARK_A;\ |
|---|
| 240 | + type DCHUBBUB_ARB_VM_ROW_ALLOW_SR_ENTER_WATERMARK_B;\ |
|---|
| 241 | + type DCHUBBUB_ARB_VM_ROW_ALLOW_SR_ENTER_WATERMARK_C;\ |
|---|
| 242 | + type DCHUBBUB_ARB_VM_ROW_ALLOW_SR_ENTER_WATERMARK_D;\ |
|---|
| 243 | + type DCHUBBUB_ARB_VM_ROW_ALLOW_SR_EXIT_WATERMARK_A;\ |
|---|
| 244 | + type DCHUBBUB_ARB_VM_ROW_ALLOW_SR_EXIT_WATERMARK_B;\ |
|---|
| 245 | + type DCHUBBUB_ARB_VM_ROW_ALLOW_SR_EXIT_WATERMARK_C;\ |
|---|
| 246 | + type DCHUBBUB_ARB_VM_ROW_ALLOW_SR_EXIT_WATERMARK_D;\ |
|---|
| 247 | + type DCHUBBUB_ARB_VM_ROW_ALLOW_DRAM_CLK_CHANGE_WATERMARK_A;\ |
|---|
| 248 | + type DCHUBBUB_ARB_VM_ROW_ALLOW_DRAM_CLK_CHANGE_WATERMARK_B;\ |
|---|
| 249 | + type DCHUBBUB_ARB_VM_ROW_ALLOW_DRAM_CLK_CHANGE_WATERMARK_C;\ |
|---|
| 250 | + type DCHUBBUB_ARB_VM_ROW_ALLOW_DRAM_CLK_CHANGE_WATERMARK_D;\ |
|---|
| 251 | + type DCHUBBUB_ARB_FRAC_URG_BW_NOM_A;\ |
|---|
| 252 | + type DCHUBBUB_ARB_FRAC_URG_BW_NOM_B;\ |
|---|
| 253 | + type DCHUBBUB_ARB_FRAC_URG_BW_NOM_C;\ |
|---|
| 254 | + type DCHUBBUB_ARB_FRAC_URG_BW_NOM_D;\ |
|---|
| 255 | + type DCHUBBUB_ARB_FRAC_URG_BW_FLIP_A;\ |
|---|
| 256 | + type DCHUBBUB_ARB_FRAC_URG_BW_FLIP_B;\ |
|---|
| 257 | + type DCHUBBUB_ARB_FRAC_URG_BW_FLIP_C;\ |
|---|
| 258 | + type DCHUBBUB_ARB_FRAC_URG_BW_FLIP_D;\ |
|---|
| 259 | + type DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_A;\ |
|---|
| 260 | + type DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_B;\ |
|---|
| 261 | + type DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_C;\ |
|---|
| 262 | + type DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_D;\ |
|---|
| 263 | + type DCHUBBUB_ARB_MAX_QOS_COMMIT_THRESHOLD;\ |
|---|
| 264 | + type HOSTVM_INIT_REQ; \ |
|---|
| 265 | + type HVM_GPUVMRET_PWR_REQ_DIS; \ |
|---|
| 266 | + type HVM_GPUVMRET_FORCE_REQ; \ |
|---|
| 267 | + type HVM_GPUVMRET_POWER_STATUS; \ |
|---|
| 268 | + type HVM_DISPCLK_R_GATE_DIS; \ |
|---|
| 269 | + type HVM_DISPCLK_G_GATE_DIS; \ |
|---|
| 270 | + type HVM_DCFCLK_R_GATE_DIS; \ |
|---|
| 271 | + type HVM_DCFCLK_G_GATE_DIS; \ |
|---|
| 272 | + type TR_REQ_REQCLKREQ_MODE; \ |
|---|
| 273 | + type TW_RSP_COMPCLKREQ_MODE; \ |
|---|
| 274 | + type HOSTVM_PREFETCH_REQ; \ |
|---|
| 275 | + type HOSTVM_POWERSTATUS; \ |
|---|
| 276 | + type RIOMMU_ACTIVE; \ |
|---|
| 277 | + type HOSTVM_PREFETCH_DONE |
|---|
| 157 | 278 | |
|---|
| 158 | 279 | struct dcn_hubbub_shift { |
|---|
| 159 | 280 | DCN_HUBBUB_REG_FIELD_LIST(uint8_t); |
|---|
| 281 | + HUBBUB_STUTTER_REG_FIELD_LIST(uint8_t); |
|---|
| 282 | + HUBBUB_HVM_REG_FIELD_LIST(uint8_t); |
|---|
| 160 | 283 | }; |
|---|
| 161 | 284 | |
|---|
| 162 | 285 | struct dcn_hubbub_mask { |
|---|
| 163 | 286 | DCN_HUBBUB_REG_FIELD_LIST(uint32_t); |
|---|
| 287 | + HUBBUB_STUTTER_REG_FIELD_LIST(uint32_t); |
|---|
| 288 | + HUBBUB_HVM_REG_FIELD_LIST(uint32_t); |
|---|
| 164 | 289 | }; |
|---|
| 165 | 290 | |
|---|
| 166 | 291 | struct dc; |
|---|
| 167 | 292 | |
|---|
| 168 | | -struct dcn_hubbub_wm_set { |
|---|
| 169 | | - uint32_t wm_set; |
|---|
| 170 | | - uint32_t data_urgent; |
|---|
| 171 | | - uint32_t pte_meta_urgent; |
|---|
| 172 | | - uint32_t sr_enter; |
|---|
| 173 | | - uint32_t sr_exit; |
|---|
| 174 | | - uint32_t dram_clk_chanage; |
|---|
| 175 | | -}; |
|---|
| 176 | | - |
|---|
| 177 | | -struct dcn_hubbub_wm { |
|---|
| 178 | | - struct dcn_hubbub_wm_set sets[4]; |
|---|
| 179 | | -}; |
|---|
| 180 | | - |
|---|
| 181 | | -struct hubbub { |
|---|
| 182 | | - const struct hubbub_funcs *funcs; |
|---|
| 183 | | - struct dc_context *ctx; |
|---|
| 293 | +struct dcn10_hubbub { |
|---|
| 294 | + struct hubbub base; |
|---|
| 184 | 295 | const struct dcn_hubbub_registers *regs; |
|---|
| 185 | 296 | const struct dcn_hubbub_shift *shifts; |
|---|
| 186 | 297 | const struct dcn_hubbub_mask *masks; |
|---|
| .. | .. |
|---|
| 197 | 308 | |
|---|
| 198 | 309 | void hubbub1_wm_change_req_wa(struct hubbub *hubbub); |
|---|
| 199 | 310 | |
|---|
| 200 | | -void hubbub1_program_watermarks( |
|---|
| 311 | +bool hubbub1_program_watermarks( |
|---|
| 201 | 312 | struct hubbub *hubbub, |
|---|
| 202 | 313 | struct dcn_watermark_set *watermarks, |
|---|
| 203 | 314 | unsigned int refclk_mhz, |
|---|
| 204 | 315 | bool safe_to_lower); |
|---|
| 316 | + |
|---|
| 317 | +void hubbub1_allow_self_refresh_control(struct hubbub *hubbub, bool allow); |
|---|
| 318 | + |
|---|
| 319 | +bool hubbub1_is_allow_self_refresh_enabled(struct hubbub *hubub); |
|---|
| 205 | 320 | |
|---|
| 206 | 321 | void hubbub1_toggle_watermark_change_req( |
|---|
| 207 | 322 | struct hubbub *hubbub); |
|---|
| .. | .. |
|---|
| 216 | 331 | const struct dcn_hubbub_shift *hubbub_shift, |
|---|
| 217 | 332 | const struct dcn_hubbub_mask *hubbub_mask); |
|---|
| 218 | 333 | |
|---|
| 334 | +bool hubbub1_program_urgent_watermarks( |
|---|
| 335 | + struct hubbub *hubbub, |
|---|
| 336 | + struct dcn_watermark_set *watermarks, |
|---|
| 337 | + unsigned int refclk_mhz, |
|---|
| 338 | + bool safe_to_lower); |
|---|
| 339 | +bool hubbub1_program_stutter_watermarks( |
|---|
| 340 | + struct hubbub *hubbub, |
|---|
| 341 | + struct dcn_watermark_set *watermarks, |
|---|
| 342 | + unsigned int refclk_mhz, |
|---|
| 343 | + bool safe_to_lower); |
|---|
| 344 | +bool hubbub1_program_pstate_watermarks( |
|---|
| 345 | + struct hubbub *hubbub, |
|---|
| 346 | + struct dcn_watermark_set *watermarks, |
|---|
| 347 | + unsigned int refclk_mhz, |
|---|
| 348 | + bool safe_to_lower); |
|---|
| 349 | + |
|---|
| 219 | 350 | #endif |
|---|