mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-13 09:28:44 -04:00
drm/amd/display: SPL cleanup
[Why & How] Move from pointer to callback to reference callback directly Missed renaming fixpt functions with spl prefix Reviewed-by: Navid Assadian <Navid.Assadian@amd.com> Signed-off-by: Samson Tam <Samson.Tam@amd.com> Signed-off-by: Zaeem Mohamed <zaeem.mohamed@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -8,13 +8,13 @@
|
||||
#include "dcn32/dcn32_dpp.h"
|
||||
#include "dcn401/dcn401_dpp.h"
|
||||
|
||||
static struct spl_funcs dcn2_spl_funcs = {
|
||||
static struct spl_callbacks dcn2_spl_callbacks = {
|
||||
.spl_calc_lb_num_partitions = dscl2_spl_calc_lb_num_partitions,
|
||||
};
|
||||
static struct spl_funcs dcn32_spl_funcs = {
|
||||
static struct spl_callbacks dcn32_spl_callbacks = {
|
||||
.spl_calc_lb_num_partitions = dscl32_spl_calc_lb_num_partitions,
|
||||
};
|
||||
static struct spl_funcs dcn401_spl_funcs = {
|
||||
static struct spl_callbacks dcn401_spl_callbacks = {
|
||||
.spl_calc_lb_num_partitions = dscl401_spl_calc_lb_num_partitions,
|
||||
};
|
||||
static void populate_splrect_from_rect(struct spl_rect *spl_rect, const struct rect *rect)
|
||||
@@ -77,16 +77,16 @@ void translate_SPL_in_params_from_pipe_ctx(struct pipe_ctx *pipe_ctx, struct spl
|
||||
// This is used to determine the vtap support
|
||||
switch (plane_state->ctx->dce_version) {
|
||||
case DCN_VERSION_2_0:
|
||||
spl_in->funcs = &dcn2_spl_funcs;
|
||||
spl_in->callbacks = dcn2_spl_callbacks;
|
||||
break;
|
||||
case DCN_VERSION_3_2:
|
||||
spl_in->funcs = &dcn32_spl_funcs;
|
||||
spl_in->callbacks = dcn32_spl_callbacks;
|
||||
break;
|
||||
case DCN_VERSION_4_01:
|
||||
spl_in->funcs = &dcn401_spl_funcs;
|
||||
spl_in->callbacks = dcn401_spl_callbacks;
|
||||
break;
|
||||
default:
|
||||
spl_in->funcs = &dcn2_spl_funcs;
|
||||
spl_in->callbacks = dcn2_spl_callbacks;
|
||||
}
|
||||
// Make format field from spl_in point to plane_res scl_data format
|
||||
spl_in->basic_in.format = (enum spl_pixel_format)pipe_ctx->plane_res.scl_data.format;
|
||||
|
||||
@@ -981,7 +981,7 @@ static bool spl_get_optimal_number_of_taps(
|
||||
else
|
||||
lb_config = LB_MEMORY_CONFIG_0;
|
||||
// Determine max vtap support by calculating how much line buffer can fit
|
||||
spl_in->funcs->spl_calc_lb_num_partitions(spl_in->basic_out.alpha_en, &spl_scratch->scl_data,
|
||||
spl_in->callbacks.spl_calc_lb_num_partitions(spl_in->basic_out.alpha_en, &spl_scratch->scl_data,
|
||||
lb_config, &num_part_y, &num_part_c);
|
||||
/* MAX_V_TAPS = MIN (NUM_LINES - MAX(CEILING(V_RATIO,1)-2, 0), 8) */
|
||||
if (spl_fixpt_ceil(spl_scratch->scl_data.ratios.vert) > 2)
|
||||
|
||||
@@ -497,7 +497,7 @@ enum scale_to_sharpness_policy {
|
||||
SCALE_TO_SHARPNESS_ADJ_YUV = 1,
|
||||
SCALE_TO_SHARPNESS_ADJ_ALL = 2
|
||||
};
|
||||
struct spl_funcs {
|
||||
struct spl_callbacks {
|
||||
void (*spl_calc_lb_num_partitions)
|
||||
(bool alpha_en,
|
||||
const struct spl_scaler_data *scl_data,
|
||||
@@ -518,7 +518,7 @@ struct spl_in {
|
||||
// Basic slice information
|
||||
int odm_slice_index; // ODM Slice Index using get_odm_split_index
|
||||
struct spl_taps scaling_quality; // Explicit Scaling Quality
|
||||
struct spl_funcs *funcs;
|
||||
struct spl_callbacks callbacks;
|
||||
// Inputs for isharp and EASF
|
||||
struct adaptive_sharpness adaptive_sharpness; // Adaptive Sharpness
|
||||
enum linear_light_scaling lls_pref; // Linear Light Scaling
|
||||
|
||||
@@ -22,7 +22,7 @@ static inline unsigned long long abs_i64(
|
||||
* result = dividend / divisor
|
||||
* *remainder = dividend % divisor
|
||||
*/
|
||||
static inline unsigned long long complete_integer_division_u64(
|
||||
static inline unsigned long long spl_complete_integer_division_u64(
|
||||
unsigned long long dividend,
|
||||
unsigned long long divisor,
|
||||
unsigned long long *remainder)
|
||||
@@ -60,7 +60,7 @@ struct spl_fixed31_32 spl_fixpt_from_fraction(long long numerator, long long den
|
||||
|
||||
/* determine integer part */
|
||||
|
||||
unsigned long long res_value = complete_integer_division_u64(
|
||||
unsigned long long res_value = spl_complete_integer_division_u64(
|
||||
arg1_value, arg2_value, &remainder);
|
||||
|
||||
SPL_ASSERT(res_value <= (unsigned long long)LONG_MAX);
|
||||
@@ -286,7 +286,7 @@ struct spl_fixed31_32 spl_fixpt_cos(struct spl_fixed31_32 arg)
|
||||
*
|
||||
* Calculated as Taylor series.
|
||||
*/
|
||||
static struct spl_fixed31_32 fixed31_32_exp_from_taylor_series(struct spl_fixed31_32 arg)
|
||||
static struct spl_fixed31_32 spl_fixed31_32_exp_from_taylor_series(struct spl_fixed31_32 arg)
|
||||
{
|
||||
unsigned int n = 9;
|
||||
|
||||
@@ -345,14 +345,14 @@ struct spl_fixed31_32 spl_fixpt_exp(struct spl_fixed31_32 arg)
|
||||
|
||||
if (m > 0)
|
||||
return spl_fixpt_shl(
|
||||
fixed31_32_exp_from_taylor_series(r),
|
||||
spl_fixed31_32_exp_from_taylor_series(r),
|
||||
(unsigned char)m);
|
||||
else
|
||||
return spl_fixpt_div_int(
|
||||
fixed31_32_exp_from_taylor_series(r),
|
||||
spl_fixed31_32_exp_from_taylor_series(r),
|
||||
1LL << -m);
|
||||
} else if (arg.value != 0)
|
||||
return fixed31_32_exp_from_taylor_series(arg);
|
||||
return spl_fixed31_32_exp_from_taylor_series(arg);
|
||||
else
|
||||
return spl_fixpt_one;
|
||||
}
|
||||
@@ -396,7 +396,7 @@ struct spl_fixed31_32 spl_fixpt_log(struct spl_fixed31_32 arg)
|
||||
* part in 32 bits. It is used in hw programming (scaler)
|
||||
*/
|
||||
|
||||
static inline unsigned int ux_dy(
|
||||
static inline unsigned int spl_ux_dy(
|
||||
long long value,
|
||||
unsigned int integer_bits,
|
||||
unsigned int fractional_bits)
|
||||
@@ -415,13 +415,13 @@ static inline unsigned int ux_dy(
|
||||
return result | fractional_part;
|
||||
}
|
||||
|
||||
static inline unsigned int clamp_ux_dy(
|
||||
static inline unsigned int spl_clamp_ux_dy(
|
||||
long long value,
|
||||
unsigned int integer_bits,
|
||||
unsigned int fractional_bits,
|
||||
unsigned int min_clamp)
|
||||
{
|
||||
unsigned int truncated_val = ux_dy(value, integer_bits, fractional_bits);
|
||||
unsigned int truncated_val = spl_ux_dy(value, integer_bits, fractional_bits);
|
||||
|
||||
if (value >= (1LL << (integer_bits + FIXED31_32_BITS_PER_FRACTIONAL_PART)))
|
||||
return (1 << (integer_bits + fractional_bits)) - 1;
|
||||
@@ -433,40 +433,40 @@ static inline unsigned int clamp_ux_dy(
|
||||
|
||||
unsigned int spl_fixpt_u4d19(struct spl_fixed31_32 arg)
|
||||
{
|
||||
return ux_dy(arg.value, 4, 19);
|
||||
return spl_ux_dy(arg.value, 4, 19);
|
||||
}
|
||||
|
||||
unsigned int spl_fixpt_u3d19(struct spl_fixed31_32 arg)
|
||||
{
|
||||
return ux_dy(arg.value, 3, 19);
|
||||
return spl_ux_dy(arg.value, 3, 19);
|
||||
}
|
||||
|
||||
unsigned int spl_fixpt_u2d19(struct spl_fixed31_32 arg)
|
||||
{
|
||||
return ux_dy(arg.value, 2, 19);
|
||||
return spl_ux_dy(arg.value, 2, 19);
|
||||
}
|
||||
|
||||
unsigned int spl_fixpt_u0d19(struct spl_fixed31_32 arg)
|
||||
{
|
||||
return ux_dy(arg.value, 0, 19);
|
||||
return spl_ux_dy(arg.value, 0, 19);
|
||||
}
|
||||
|
||||
unsigned int spl_fixpt_clamp_u0d14(struct spl_fixed31_32 arg)
|
||||
{
|
||||
return clamp_ux_dy(arg.value, 0, 14, 1);
|
||||
return spl_clamp_ux_dy(arg.value, 0, 14, 1);
|
||||
}
|
||||
|
||||
unsigned int spl_fixpt_clamp_u0d10(struct spl_fixed31_32 arg)
|
||||
{
|
||||
return clamp_ux_dy(arg.value, 0, 10, 1);
|
||||
return spl_clamp_ux_dy(arg.value, 0, 10, 1);
|
||||
}
|
||||
|
||||
int spl_fixpt_s4d19(struct spl_fixed31_32 arg)
|
||||
{
|
||||
if (arg.value < 0)
|
||||
return -(int)ux_dy(spl_fixpt_abs(arg).value, 4, 19);
|
||||
return -(int)spl_ux_dy(spl_fixpt_abs(arg).value, 4, 19);
|
||||
else
|
||||
return ux_dy(arg.value, 4, 19);
|
||||
return spl_ux_dy(arg.value, 4, 19);
|
||||
}
|
||||
|
||||
struct spl_fixed31_32 spl_fixpt_from_ux_dy(unsigned int value,
|
||||
|
||||
Reference in New Issue
Block a user