/Linux-v5.15/drivers/gpu/drm/amd/display/dc/inc/hw/ |
D | dchubbub.h | 116 struct hubbub *hubbub, 120 struct hubbub *hubbub, 123 struct hubbub *hubbub, 127 bool (*get_dcc_compression_cap)(struct hubbub *hubbub, 141 void (*wm_read_state)(struct hubbub *hubbub, 144 void (*get_dchub_ref_freq)(struct hubbub *hubbub, 149 struct hubbub *hubbub, 154 bool (*is_allow_self_refresh_enabled)(struct hubbub *hubbub); 155 void (*allow_self_refresh_control)(struct hubbub *hubbub, bool allow); 157 void (*apply_DEDCN21_147_wa)(struct hubbub *hubbub); [all …]
|
/Linux-v5.15/drivers/gpu/drm/amd/display/dc/dcn20/ |
D | dcn20_hubbub.h | 32 #define TO_DCN20_HUBBUB(hubbub)\ argument 33 container_of(hubbub, struct dcn20_hubbub, base) 83 struct hubbub base; 101 void hubbub2_construct(struct dcn20_hubbub *hubbub, 117 bool hubbub2_get_dcc_compression_cap(struct hubbub *hubbub, 121 bool hubbub2_initialize_vmids(struct hubbub *hubbub, 125 int hubbub2_init_dchub_sys_ctx(struct hubbub *hubbub, 127 void hubbub2_init_vm_ctx(struct hubbub *hubbub, 130 void hubbub2_update_dchub(struct hubbub *hubbub, 133 void hubbub2_get_dchub_ref_freq(struct hubbub *hubbub, [all …]
|
D | dcn20_hubbub.c | 217 bool hubbub2_get_dcc_compression_cap(struct hubbub *hubbub, in hubbub2_get_dcc_compression_cap() argument 221 struct dc *dc = hubbub->ctx->dc; in hubbub2_get_dcc_compression_cap() 233 if (!hubbub->funcs->dcc_support_pixel_format(input->format, in hubbub2_get_dcc_compression_cap() 237 if (!hubbub->funcs->dcc_support_swizzle(input->swizzle_mode, bpe, in hubbub2_get_dcc_compression_cap() 241 hubbub2_det_request_size(TO_DCN20_HUBBUB(hubbub)->detile_buf_size, in hubbub2_get_dcc_compression_cap() 357 void hubbub2_init_vm_ctx(struct hubbub *hubbub, in hubbub2_init_vm_ctx() argument 361 struct dcn20_hubbub *hubbub1 = TO_DCN20_HUBBUB(hubbub); in hubbub2_init_vm_ctx() 373 int hubbub2_init_dchub_sys_ctx(struct hubbub *hubbub, in hubbub2_init_dchub_sys_ctx() argument 376 struct dcn20_hubbub *hubbub1 = TO_DCN20_HUBBUB(hubbub); in hubbub2_init_dchub_sys_ctx() 410 void hubbub2_update_dchub(struct hubbub *hubbub, in hubbub2_update_dchub() argument [all …]
|
D | dcn20_hwseq.c | 1604 if (dc->res_pool->hubbub->funcs->force_wm_propagate_to_pipes) in dcn20_program_pipe() 1605 dc->res_pool->hubbub->funcs->force_wm_propagate_to_pipes(dc->res_pool->hubbub); in dcn20_program_pipe() 1608 if (dc->res_pool->hubbub->funcs->program_det_size && pipe_ctx->update_flags.bits.det_size) in dcn20_program_pipe() 1609 dc->res_pool->hubbub->funcs->program_det_size( in dcn20_program_pipe() 1610 dc->res_pool->hubbub, pipe_ctx->plane_res.hubp->inst, pipe_ctx->det_buffer_size_kb); in dcn20_program_pipe() 1702 struct hubbub *hubbub = dc->res_pool->hubbub; in dcn20_program_front_end_for_ctx() local 1704 if (hubbub->funcs->program_det_size && context->res_ctx.pipe_ctx[i].update_flags.bits.disable) in dcn20_program_front_end_for_ctx() 1705 …hubbub->funcs->program_det_size(hubbub, dc->current_state->res_ctx.pipe_ctx[i].plane_res.hubp->ins… in dcn20_program_front_end_for_ctx() 1790 dc->res_pool->hubbub->funcs->apply_DEDCN21_147_wa(dc->res_pool->hubbub); in dcn20_post_unlock_program_front_end() 1801 dc->res_pool->hubbub->funcs->allow_self_refresh_control(dc->res_pool->hubbub, false); in dcn20_post_unlock_program_front_end() [all …]
|
D | dcn20_resource.h | 111 struct hubbub *dcn20_hubbub_create(struct dc_context *ctx);
|
D | dcn20_resource.c | 1226 struct hubbub *dcn20_hubbub_create(struct dc_context *ctx) in dcn20_hubbub_create() 1229 struct dcn20_hubbub *hubbub = kzalloc(sizeof(struct dcn20_hubbub), in dcn20_hubbub_create() local 1232 if (!hubbub) in dcn20_hubbub_create() 1235 hubbub2_construct(hubbub, ctx, in dcn20_hubbub_create() 1241 struct dcn20_vmid *vmid = &hubbub->vmid[i]; in dcn20_hubbub_create() 1250 return &hubbub->base; in dcn20_hubbub_create() 1481 if (pool->base.hubbub != NULL) { in dcn20_resource_destruct() 1482 kfree(pool->base.hubbub); in dcn20_resource_destruct() 1483 pool->base.hubbub = NULL; in dcn20_resource_destruct() 3315 return dc->res_pool->hubbub->funcs->get_dcc_compression_cap( in dcn20_get_dcc_compression_cap() [all …]
|
/Linux-v5.15/drivers/gpu/drm/amd/display/dc/dcn30/ |
D | dcn30_hubbub.c | 64 int hubbub3_init_dchub_sys_ctx(struct hubbub *hubbub, in hubbub3_init_dchub_sys_ctx() argument 67 struct dcn20_hubbub *hubbub1 = TO_DCN20_HUBBUB(hubbub); in hubbub3_init_dchub_sys_ctx() 97 struct hubbub *hubbub, in hubbub3_program_watermarks() argument 102 struct dcn20_hubbub *hubbub1 = TO_DCN20_HUBBUB(hubbub); in hubbub3_program_watermarks() 105 if (hubbub21_program_urgent_watermarks(hubbub, watermarks, refclk_mhz, safe_to_lower)) in hubbub3_program_watermarks() 108 if (hubbub21_program_stutter_watermarks(hubbub, watermarks, refclk_mhz, safe_to_lower)) in hubbub3_program_watermarks() 111 if (hubbub21_program_pstate_watermarks(hubbub, watermarks, refclk_mhz, safe_to_lower)) in hubbub3_program_watermarks() 132 hubbub1_allow_self_refresh_control(hubbub, !hubbub->ctx->dc->debug.disable_stutter); in hubbub3_program_watermarks() 275 bool hubbub3_get_dcc_compression_cap(struct hubbub *hubbub, in hubbub3_get_dcc_compression_cap() argument 279 struct dc *dc = hubbub->ctx->dc; in hubbub3_get_dcc_compression_cap() [all …]
|
D | dcn30_hubbub.h | 110 int hubbub3_init_dchub_sys_ctx(struct hubbub *hubbub, 119 void hubbub3_force_wm_propagate_to_pipes(struct hubbub *hubbub); 121 bool hubbub3_get_dcc_compression_cap(struct hubbub *hubbub, 126 struct hubbub *hubbub, 131 void hubbub3_force_pstate_change_control(struct hubbub *hubbub, 134 void hubbub3_init_watermarks(struct hubbub *hubbub);
|
D | dcn30_hwseq.c | 496 if (res_pool->dccg && res_pool->hubbub) { in dcn30_init_hw() 502 (res_pool->hubbub->funcs->get_dchub_ref_freq)(res_pool->hubbub, in dcn30_init_hw() 581 if (dc->res_pool->hubbub->funcs->allow_self_refresh_control) in dcn30_init_hw() 582 dc->res_pool->hubbub->funcs->allow_self_refresh_control(dc->res_pool->hubbub, in dcn30_init_hw() 583 !dc->res_pool->hubbub->ctx->dc->debug.disable_stutter); in dcn30_init_hw() 653 if (!dcb->funcs->is_accelerated_mode(dcb) && dc->res_pool->hubbub->funcs->init_watermarks) in dcn30_init_hw() 654 dc->res_pool->hubbub->funcs->init_watermarks(dc->res_pool->hubbub); in dcn30_init_hw() 662 if (dc->res_pool->hubbub->funcs->force_pstate_change_control) in dcn30_init_hw() 663 dc->res_pool->hubbub->funcs->force_pstate_change_control( in dcn30_init_hw() 664 dc->res_pool->hubbub, false, false); in dcn30_init_hw() [all …]
|
/Linux-v5.15/drivers/gpu/drm/amd/display/dc/dcn10/ |
D | dcn10_hubbub.h | 32 #define TO_DCN10_HUBBUB(hubbub)\ argument 33 container_of(hubbub, struct dcn10_hubbub, base) 352 struct hubbub base; 361 struct hubbub *hubbub, 365 struct hubbub *hubbub); 367 void hubbub1_wm_change_req_wa(struct hubbub *hubbub); 370 struct hubbub *hubbub, 375 void hubbub1_allow_self_refresh_control(struct hubbub *hubbub, bool allow); 377 bool hubbub1_is_allow_self_refresh_enabled(struct hubbub *hubub); 380 struct hubbub *hubbub); [all …]
|
D | dcn10_hubbub.c | 44 void hubbub1_wm_read_state(struct hubbub *hubbub, in hubbub1_wm_read_state() argument 47 struct dcn10_hubbub *hubbub1 = TO_DCN10_HUBBUB(hubbub); in hubbub1_wm_read_state() 93 void hubbub1_allow_self_refresh_control(struct hubbub *hubbub, bool allow) in hubbub1_allow_self_refresh_control() argument 95 struct dcn10_hubbub *hubbub1 = TO_DCN10_HUBBUB(hubbub); in hubbub1_allow_self_refresh_control() 106 bool hubbub1_is_allow_self_refresh_enabled(struct hubbub *hubbub) in hubbub1_is_allow_self_refresh_enabled() argument 108 struct dcn10_hubbub *hubbub1 = TO_DCN10_HUBBUB(hubbub); in hubbub1_is_allow_self_refresh_enabled() 119 struct hubbub *hubbub) in hubbub1_verify_allow_pstate_change_high() argument 121 struct dcn10_hubbub *hubbub1 = TO_DCN10_HUBBUB(hubbub); in hubbub1_verify_allow_pstate_change_high() 236 void hubbub1_wm_change_req_wa(struct hubbub *hubbub) in hubbub1_wm_change_req_wa() argument 238 struct dcn10_hubbub *hubbub1 = TO_DCN10_HUBBUB(hubbub); in hubbub1_wm_change_req_wa() [all …]
|
D | dcn10_hw_sequencer.c | 142 dc->res_pool->hubbub->funcs->wm_read_state(dc->res_pool->hubbub, &wm); in dcn10_log_hubbub_state() 748 if (dc->res_pool->hubbub->funcs->is_allow_self_refresh_enabled) in dcn10_bios_golden_init() 750 dc->res_pool->hubbub->funcs->is_allow_self_refresh_enabled(dc->res_pool->hubbub); in dcn10_bios_golden_init() 770 if (dc->res_pool->hubbub->funcs->allow_self_refresh_control) in dcn10_bios_golden_init() 772 dc->res_pool->hubbub->funcs->is_allow_self_refresh_enabled(dc->res_pool->hubbub)) in dcn10_bios_golden_init() 773 dc->res_pool->hubbub->funcs->allow_self_refresh_control(dc->res_pool->hubbub, in dcn10_bios_golden_init() 774 !dc->res_pool->hubbub->ctx->dc->debug.disable_stutter); in dcn10_bios_golden_init() 1015 hubbub1_soft_reset(dc->res_pool->hubbub, true); in dcn10_hw_wa_force_recovery() 1038 hubbub1_soft_reset(dc->res_pool->hubbub, false); in dcn10_hw_wa_force_recovery() 1057 if (!hubbub1_verify_allow_pstate_change_high(dc->res_pool->hubbub)) { in dcn10_verify_allow_pstate_change_high() [all …]
|
D | dcn10_resource.c | 759 static struct hubbub *dcn10_hubbub_create(struct dc_context *ctx) in dcn10_hubbub_create() 981 if (pool->base.hubbub != NULL) { in dcn10_resource_destruct() 982 kfree(pool->base.hubbub); in dcn10_resource_destruct() 983 pool->base.hubbub = NULL; in dcn10_resource_destruct() 1184 return dc->res_pool->hubbub->funcs->get_dcc_compression_cap( in dcn10_get_dcc_compression_cap() 1185 dc->res_pool->hubbub, in dcn10_get_dcc_compression_cap() 1654 pool->base.hubbub = dcn10_hubbub_create(ctx); in dcn10_resource_construct() 1655 if (pool->base.hubbub == NULL) { in dcn10_resource_construct()
|
D | dcn10_hw_sequencer_debug.c | 84 dc->res_pool->hubbub->funcs->wm_read_state(dc->res_pool->hubbub, &wm); in dcn10_get_hubbub_state()
|
/Linux-v5.15/drivers/gpu/drm/amd/display/dc/dcn21/ |
D | dcn21_hubbub.h | 125 void dcn21_dchvm_init(struct hubbub *hubbub); 126 int hubbub21_init_dchub(struct hubbub *hubbub, 129 struct hubbub *hubbub, 134 struct hubbub *hubbub, 139 struct hubbub *hubbub, 144 struct hubbub *hubbub, 149 void hubbub21_wm_read_state(struct hubbub *hubbub, 152 void hubbub21_construct(struct dcn20_hubbub *hubbub,
|
D | dcn21_hubbub.c | 67 void dcn21_dchvm_init(struct hubbub *hubbub) in dcn21_dchvm_init() argument 69 struct dcn20_hubbub *hubbub1 = TO_DCN20_HUBBUB(hubbub); in dcn21_dchvm_init() 103 hubbub->riommu_active = true; in dcn21_dchvm_init() 107 int hubbub21_init_dchub(struct hubbub *hubbub, in hubbub21_init_dchub() argument 110 struct dcn20_hubbub *hubbub1 = TO_DCN20_HUBBUB(hubbub); in hubbub21_init_dchub() 136 dcn21_dchvm_init(hubbub); in hubbub21_init_dchub() 142 struct hubbub *hubbub, in hubbub21_program_urgent_watermarks() argument 147 struct dcn20_hubbub *hubbub1 = TO_DCN20_HUBBUB(hubbub); in hubbub21_program_urgent_watermarks() 336 struct hubbub *hubbub, in hubbub21_program_stutter_watermarks() argument 341 struct dcn20_hubbub *hubbub1 = TO_DCN20_HUBBUB(hubbub); in hubbub21_program_stutter_watermarks() [all …]
|
D | dcn21_resource.c | 939 if (pool->base.hubbub != NULL) { in dcn21_resource_destruct() 940 kfree(pool->base.hubbub); in dcn21_resource_destruct() 941 pool->base.hubbub = NULL; in dcn21_resource_destruct() 1454 static struct hubbub *dcn21_hubbub_create(struct dc_context *ctx) in dcn21_hubbub_create() 1458 struct dcn20_hubbub *hubbub = kzalloc(sizeof(struct dcn20_hubbub), in dcn21_hubbub_create() local 1461 if (!hubbub) in dcn21_hubbub_create() 1464 hubbub21_construct(hubbub, ctx, in dcn21_hubbub_create() 1470 struct dcn20_vmid *vmid = &hubbub->vmid[i]; in dcn21_hubbub_create() 1478 hubbub->num_vmid = res_cap_rn.num_vmid; in dcn21_hubbub_create() 1480 return &hubbub->base; in dcn21_hubbub_create() [all …]
|
D | dcn21_hwseq.c | 83 return dc->res_pool->hubbub->funcs->init_dchub_sys_ctx(dc->res_pool->hubbub, &config); in dcn21_init_sys_ctx()
|
/Linux-v5.15/drivers/gpu/drm/amd/display/dc/dcn31/ |
D | dcn31_hubbub.c | 51 static void dcn31_init_crb(struct hubbub *hubbub) in dcn31_init_crb() argument 53 struct dcn20_hubbub *hubbub2 = TO_DCN20_HUBBUB(hubbub); in dcn31_init_crb() 76 static void dcn31_program_det_size(struct hubbub *hubbub, int hubp_inst, unsigned int det_buffer_si… in dcn31_program_det_size() argument 78 struct dcn20_hubbub *hubbub2 = TO_DCN20_HUBBUB(hubbub); in dcn31_program_det_size() 111 static void dcn31_program_compbuf_size(struct hubbub *hubbub, unsigned int compbuf_size_kb, bool sa… in dcn31_program_compbuf_size() argument 113 struct dcn20_hubbub *hubbub2 = TO_DCN20_HUBBUB(hubbub); in dcn31_program_compbuf_size() 148 struct hubbub *hubbub, in hubbub31_program_urgent_watermarks() argument 153 struct dcn20_hubbub *hubbub2 = TO_DCN20_HUBBUB(hubbub); in hubbub31_program_urgent_watermarks() 338 struct hubbub *hubbub, in hubbub31_program_stutter_watermarks() argument 343 struct dcn20_hubbub *hubbub2 = TO_DCN20_HUBBUB(hubbub); in hubbub31_program_stutter_watermarks() [all …]
|
D | dcn31_hwseq.c | 132 if (res_pool->dccg && res_pool->hubbub) { in dcn31_init_hw() 138 (res_pool->hubbub->funcs->get_dchub_ref_freq)(res_pool->hubbub, in dcn31_init_hw() 215 if (dc->res_pool->hubbub->funcs->allow_self_refresh_control) in dcn31_init_hw() 216 dc->res_pool->hubbub->funcs->allow_self_refresh_control(dc->res_pool->hubbub, in dcn31_init_hw() 217 !dc->res_pool->hubbub->ctx->dc->debug.disable_stutter); in dcn31_init_hw() 293 if (!dcb->funcs->is_accelerated_mode(dcb) && dc->res_pool->hubbub->funcs->init_watermarks) in dcn31_init_hw() 294 dc->res_pool->hubbub->funcs->init_watermarks(dc->res_pool->hubbub); in dcn31_init_hw() 302 if (dc->res_pool->hubbub->funcs->force_pstate_change_control) in dcn31_init_hw() 303 dc->res_pool->hubbub->funcs->force_pstate_change_control( in dcn31_init_hw() 304 dc->res_pool->hubbub, false, false); in dcn31_init_hw() [all …]
|
D | dcn31_resource.c | 1087 static struct hubbub *dcn31_hubbub_create(struct dc_context *ctx) in dcn31_hubbub_create() 1356 if (pool->base.hubbub != NULL) { in dcn31_resource_destruct() 1357 kfree(pool->base.hubbub); in dcn31_resource_destruct() 1358 pool->base.hubbub = NULL; in dcn31_resource_destruct() 2066 pool->base.hubbub = dcn31_hubbub_create(ctx); in dcn31_resource_construct() 2067 if (pool->base.hubbub == NULL) { in dcn31_resource_construct()
|
/Linux-v5.15/drivers/gpu/drm/amd/display/dc/inc/ |
D | core_types.h | 218 struct hubbub *hubbub; member
|
/Linux-v5.15/drivers/gpu/drm/amd/display/dc/dcn302/ |
D | dcn302_resource.c | 388 static struct hubbub *dcn302_hubbub_create(struct dc_context *ctx) in dcn302_hubbub_create() 1157 if (pool->hubbub != NULL) { in dcn302_resource_destruct() 1158 kfree(pool->hubbub); in dcn302_resource_destruct() 1159 pool->hubbub = NULL; in dcn302_resource_destruct() 1628 pool->hubbub = dcn302_hubbub_create(ctx); in dcn302_resource_construct() 1629 if (pool->hubbub == NULL) { in dcn302_resource_construct()
|
/Linux-v5.15/drivers/gpu/drm/amd/display/dc/dcn303/ |
D | dcn303_resource.c | 365 static struct hubbub *dcn303_hubbub_create(struct dc_context *ctx) in dcn303_hubbub_create() 1087 if (pool->hubbub != NULL) { in dcn303_resource_destruct() 1088 kfree(pool->hubbub); in dcn303_resource_destruct() 1089 pool->hubbub = NULL; in dcn303_resource_destruct() 1549 pool->hubbub = dcn303_hubbub_create(ctx); in dcn303_resource_construct() 1550 if (pool->hubbub == NULL) { in dcn303_resource_construct()
|
/Linux-v5.15/drivers/gpu/drm/amd/display/dc/dcn301/ |
D | dcn301_resource.c | 1009 struct hubbub *dcn301_hubbub_create(struct dc_context *ctx) in dcn301_hubbub_create() 1264 if (pool->base.hubbub != NULL) { in dcn301_destruct() 1265 kfree(pool->base.hubbub); in dcn301_destruct() 1266 pool->base.hubbub = NULL; in dcn301_destruct() 1800 pool->base.hubbub = dcn301_hubbub_create(ctx); in dcn301_resource_construct() 1801 if (pool->base.hubbub == NULL) { in dcn301_resource_construct()
|