From: Dmytro Laktyushkin <Dmytro.Laktyushkin@xxxxxxx> - Underlay was missing default lb memory size - Unify num_of_entries and memory size Change-Id: I521ec6532dba4de55491c4fb164a44bf93250698 Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin at amd.com> Reviewed-by: Reviewed-by: Jordan Lazare <Jordan.Lazare at amd.com> Acked-by: Harry Wentland <harry.wentland at amd.com> --- drivers/gpu/drm/amd/dal/dc/dce/dce_transform.c | 24 ++++++++++------------ drivers/gpu/drm/amd/dal/dc/dce/dce_transform.h | 4 +++- .../gpu/drm/amd/dal/dc/dce100/dce100_resource.c | 1 - .../gpu/drm/amd/dal/dc/dce110/dce110_transform_v.c | 6 +++--- .../gpu/drm/amd/dal/dc/dce112/dce112_resource.c | 2 +- drivers/gpu/drm/amd/dal/dc/dce80/dce80_resource.c | 1 - drivers/gpu/drm/amd/dal/dc/inc/hw/transform.h | 4 ---- 7 files changed, 18 insertions(+), 24 deletions(-) diff --git a/drivers/gpu/drm/amd/dal/dc/dce/dce_transform.c b/drivers/gpu/drm/amd/dal/dc/dce/dce_transform.c index 4659deadcc15..f47b6617f662 100644 --- a/drivers/gpu/drm/amd/dal/dc/dce/dce_transform.c +++ b/drivers/gpu/drm/amd/dal/dc/dce/dce_transform.c @@ -285,7 +285,7 @@ static void dce_transform_set_scaler( /*Use all three pieces of memory always*/ REG_SET_2(LB_MEMORY_CTRL, 0, LB_MEMORY_CONFIG, 0, - LB_MEMORY_SIZE, xfm_dce->base.lb_memory_size); + LB_MEMORY_SIZE, xfm_dce->lb_memory_size); /* 1. Program overscan */ program_overscan(xfm_dce, data); @@ -649,7 +649,7 @@ static void program_bit_depth_reduction( } static int dce_transform_get_max_num_of_supported_lines( - struct transform *xfm, + struct dce_transform *xfm_dce, enum lb_pixel_depth depth, int pixel_width) { @@ -663,23 +663,23 @@ static int dce_transform_get_max_num_of_supported_lines( * across multiple entries. */ switch (depth) { case LB_PIXEL_DEPTH_18BPP: - pixels_per_entries = xfm->lb_bits_per_entry / 18; + pixels_per_entries = xfm_dce->lb_bits_per_entry / 18; break; case LB_PIXEL_DEPTH_24BPP: - pixels_per_entries = xfm->lb_bits_per_entry / 24; + pixels_per_entries = xfm_dce->lb_bits_per_entry / 24; break; case LB_PIXEL_DEPTH_30BPP: - pixels_per_entries = xfm->lb_bits_per_entry / 30; + pixels_per_entries = xfm_dce->lb_bits_per_entry / 30; break; case LB_PIXEL_DEPTH_36BPP: - pixels_per_entries = xfm->lb_bits_per_entry / 36; + pixels_per_entries = xfm_dce->lb_bits_per_entry / 36; break; default: - dm_logger_write(xfm->ctx->logger, LOG_WARNING, + dm_logger_write(xfm_dce->base.ctx->logger, LOG_WARNING, "%s: Invalid LB pixel depth", __func__); BREAK_TO_DEBUGGER(); @@ -690,7 +690,7 @@ static int dce_transform_get_max_num_of_supported_lines( max_pixels_supports = pixels_per_entries * - xfm->lb_total_entries_num; + xfm_dce->lb_memory_size; return (max_pixels_supports / pixel_width); } @@ -899,7 +899,7 @@ bool dce_transform_get_optimal_number_of_taps( pixel_width = scl_data->recout.width; max_num_of_lines = dce_transform_get_max_num_of_supported_lines( - xfm, + xfm_dce, scl_data->lb_params.depth, pixel_width); @@ -995,10 +995,8 @@ bool dce_transform_construct( LB_PIXEL_DEPTH_24BPP | LB_PIXEL_DEPTH_30BPP; - xfm_dce->base.lb_bits_per_entry = LB_BITS_PER_ENTRY; - xfm_dce->base.lb_total_entries_num = LB_TOTAL_NUMBER_OF_ENTRIES; - - xfm_dce->base.lb_memory_size = 0x6B0; /*1712*/ + xfm_dce->lb_bits_per_entry = LB_BITS_PER_ENTRY; + xfm_dce->lb_memory_size = LB_TOTAL_NUMBER_OF_ENTRIES; /*0x6B0*/ return true; } diff --git a/drivers/gpu/drm/amd/dal/dc/dce/dce_transform.h b/drivers/gpu/drm/amd/dal/dc/dce/dce_transform.h index b793ddda4783..897645e2889f 100644 --- a/drivers/gpu/drm/amd/dal/dc/dce/dce_transform.h +++ b/drivers/gpu/drm/amd/dal/dc/dce/dce_transform.h @@ -291,7 +291,9 @@ struct dce_transform { const uint16_t *filter_h; const uint16_t *filter_v_c; const uint16_t *filter_h_c; - uint32_t lb_pixel_depth_supported; + int lb_pixel_depth_supported; + int lb_memory_size; + int lb_bits_per_entry; bool prescaler_on; }; diff --git a/drivers/gpu/drm/amd/dal/dc/dce100/dce100_resource.c b/drivers/gpu/drm/amd/dal/dc/dce100/dce100_resource.c index 08e0ca11a48d..fafc976e5209 100644 --- a/drivers/gpu/drm/amd/dal/dc/dce100/dce100_resource.c +++ b/drivers/gpu/drm/amd/dal/dc/dce100/dce100_resource.c @@ -541,7 +541,6 @@ static struct transform *dce100_transform_create( if (dce_transform_construct(transform, ctx, inst, &xfm_regs[inst], &xfm_shift, &xfm_mask)) { - transform->base.lb_memory_size = 0x6B0; /*1712*/ return &transform->base; } diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_transform_v.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_transform_v.c index 4f2aa7722961..7d8cf7a58f46 100644 --- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_transform_v.c +++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_transform_v.c @@ -503,7 +503,7 @@ static bool dce110_xfmv_power_up_line_buffer(struct transform *xfm) /*Use all three pieces of memory always*/ set_reg_field_value(value, 0, LBV_MEMORY_CTRL, LB_MEMORY_CONFIG); /*hard coded number DCE11 1712(0x6B0) Partitions: 720/960/1712*/ - set_reg_field_value(value, xfm_dce->base.lb_memory_size, LBV_MEMORY_CTRL, + set_reg_field_value(value, xfm_dce->lb_memory_size, LBV_MEMORY_CTRL, LB_MEMORY_SIZE); dm_write_reg(xfm_dce->base.ctx, mmLBV_MEMORY_CTRL, value); @@ -697,8 +697,8 @@ bool dce110_transform_v_construct( LB_PIXEL_DEPTH_30BPP; xfm_dce->prescaler_on = true; - xfm_dce->base.lb_bits_per_entry = LB_BITS_PER_ENTRY; - xfm_dce->base.lb_total_entries_num = LB_TOTAL_NUMBER_OF_ENTRIES; + xfm_dce->lb_bits_per_entry = LB_BITS_PER_ENTRY; + xfm_dce->lb_memory_size = LB_TOTAL_NUMBER_OF_ENTRIES; /*0x6B0*/ return true; } diff --git a/drivers/gpu/drm/amd/dal/dc/dce112/dce112_resource.c b/drivers/gpu/drm/amd/dal/dc/dce112/dce112_resource.c index a9991aa28666..c0d7ecc89374 100644 --- a/drivers/gpu/drm/amd/dal/dc/dce112/dce112_resource.c +++ b/drivers/gpu/drm/amd/dal/dc/dce112/dce112_resource.c @@ -555,7 +555,7 @@ static struct transform *dce112_transform_create( if (dce_transform_construct(transform, ctx, inst, &xfm_regs[inst], &xfm_shift, &xfm_mask)) { - transform->base.lb_memory_size = 0x1404; /*5124*/ + transform->lb_memory_size = 0x1404; /*5124*/ return &transform->base; } diff --git a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_resource.c b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_resource.c index 738201b15722..7dc0e9f6165e 100644 --- a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_resource.c +++ b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_resource.c @@ -524,7 +524,6 @@ static struct transform *dce80_transform_create( if (dce_transform_construct(transform, ctx, inst, &xfm_regs[inst], &xfm_shift, &xfm_mask)) { transform->prescaler_on = false; - transform->base.lb_memory_size = 0x6B0; /*1712*/ return &transform->base; } diff --git a/drivers/gpu/drm/amd/dal/dc/inc/hw/transform.h b/drivers/gpu/drm/amd/dal/dc/inc/hw/transform.h index 7f88272f8290..ef743b70b3e9 100644 --- a/drivers/gpu/drm/amd/dal/dc/inc/hw/transform.h +++ b/drivers/gpu/drm/amd/dal/dc/inc/hw/transform.h @@ -37,10 +37,6 @@ struct transform { const struct transform_funcs *funcs; struct dc_context *ctx; int inst; - - int lb_total_entries_num; - int lb_bits_per_entry; - unsigned int lb_memory_size; }; /* Colorimetry */ -- 2.10.1