linux/drivers/gpu/drm/amd/display/dc/spl/dc_spl_scl_easf_filters.c

// SPDX-License-Identifier: MIT
//
// Copyright 2024 Advanced Micro Devices, Inc.

#include "spl_debug.h"
#include "dc_spl_filters.h"
#include "dc_spl_scl_filters.h"
#include "dc_spl_scl_easf_filters.h"

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			03-Apr-2024
// <coeffDescrip>	3t_64p_LanczosEd_p_0.3_p_10qb_
// <num_taps>		3
// <num_phases>		64
// <scale_ratio>	 input/output = 0.300000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_3tap_64p_ratio_0_30[99] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			03-Apr-2024
// <coeffDescrip>	3t_64p_LanczosEd_p_0.4_p_10qb_
// <num_taps>		3
// <num_phases>		64
// <scale_ratio>	 input/output = 0.400000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_3tap_64p_ratio_0_40[99] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			03-Apr-2024
// <coeffDescrip>	3t_64p_LanczosEd_p_0.5_p_10qb_
// <num_taps>		3
// <num_phases>		64
// <scale_ratio>	 input/output = 0.500000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_3tap_64p_ratio_0_50[99] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			03-Apr-2024
// <coeffDescrip>	3t_64p_LanczosEd_p_0.6_p_10qb_
// <num_taps>		3
// <num_phases>		64
// <scale_ratio>	 input/output = 0.600000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_3tap_64p_ratio_0_60[99] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			03-Apr-2024
// <coeffDescrip>	3t_64p_LanczosEd_p_0.7_p_10qb_
// <num_taps>		3
// <num_phases>		64
// <scale_ratio>	 input/output = 0.700000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_3tap_64p_ratio_0_70[99] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			03-Apr-2024
// <coeffDescrip>	3t_64p_LanczosEd_p_0.8_p_10qb_
// <num_taps>		3
// <num_phases>		64
// <scale_ratio>	 input/output = 0.800000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_3tap_64p_ratio_0_80[99] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			03-Apr-2024
// <coeffDescrip>	3t_64p_LanczosEd_p_0.9_p_10qb_
// <num_taps>		3
// <num_phases>		64
// <scale_ratio>	 input/output = 0.900000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_3tap_64p_ratio_0_90[99] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			03-Apr-2024
// <coeffDescrip>	3t_64p_LanczosEd_p_1_p_10qb_
// <num_taps>		3
// <num_phases>		64
// <scale_ratio>	 input/output = 1.000000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_3tap_64p_ratio_1_00[99] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			03-Apr-2024
// <coeffDescrip>	4t_64p_LanczosEd_p_0.3_p_10qb_
// <num_taps>		4
// <num_phases>		64
// <scale_ratio>	 input/output = 0.300000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_4tap_64p_ratio_0_30[132] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			03-Apr-2024
// <coeffDescrip>	4t_64p_LanczosEd_p_0.4_p_10qb_
// <num_taps>		4
// <num_phases>		64
// <scale_ratio>	 input/output = 0.400000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_4tap_64p_ratio_0_40[132] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			03-Apr-2024
// <coeffDescrip>	4t_64p_LanczosEd_p_0.5_p_10qb_
// <num_taps>		4
// <num_phases>		64
// <scale_ratio>	 input/output = 0.500000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_4tap_64p_ratio_0_50[132] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			03-Apr-2024
// <coeffDescrip>	4t_64p_LanczosEd_p_0.6_p_10qb_
// <num_taps>		4
// <num_phases>		64
// <scale_ratio>	 input/output = 0.600000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_4tap_64p_ratio_0_60[132] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			03-Apr-2024
// <coeffDescrip>	4t_64p_LanczosEd_p_0.7_p_10qb_
// <num_taps>		4
// <num_phases>		64
// <scale_ratio>	 input/output = 0.700000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_4tap_64p_ratio_0_70[132] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			03-Apr-2024
// <coeffDescrip>	4t_64p_LanczosEd_p_0.8_p_10qb_
// <num_taps>		4
// <num_phases>		64
// <scale_ratio>	 input/output = 0.800000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_4tap_64p_ratio_0_80[132] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			03-Apr-2024
// <coeffDescrip>	4t_64p_LanczosEd_p_0.9_p_10qb_
// <num_taps>		4
// <num_phases>		64
// <scale_ratio>	 input/output = 0.900000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_4tap_64p_ratio_0_90[132] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			03-Apr-2024
// <coeffDescrip>	4t_64p_LanczosEd_p_1_p_10qb_
// <num_taps>		4
// <num_phases>		64
// <scale_ratio>	 input/output = 1.000000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_4tap_64p_ratio_1_00[132] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			02-Apr-2024
// <coeffDescrip>	6t_64p_LanczosEd_p_0.3_p_10qb_
// <num_taps>		6
// <num_phases>		64
// <scale_ratio>	 input/output = 0.300000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_6tap_64p_ratio_0_30[198] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			02-Apr-2024
// <coeffDescrip>	6t_64p_LanczosEd_p_0.4_p_10qb_
// <num_taps>		6
// <num_phases>		64
// <scale_ratio>	 input/output = 0.400000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_6tap_64p_ratio_0_40[198] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			02-Apr-2024
// <coeffDescrip>	6t_64p_LanczosEd_p_0.5_p_10qb_
// <num_taps>		6
// <num_phases>		64
// <scale_ratio>	 input/output = 0.500000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_6tap_64p_ratio_0_50[198] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			02-Apr-2024
// <coeffDescrip>	6t_64p_LanczosEd_p_0.6_p_10qb_
// <num_taps>		6
// <num_phases>		64
// <scale_ratio>	 input/output = 0.600000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_6tap_64p_ratio_0_60[198] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			02-Apr-2024
// <coeffDescrip>	6t_64p_LanczosEd_p_0.7_p_10qb_
// <num_taps>		6
// <num_phases>		64
// <scale_ratio>	 input/output = 0.700000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_6tap_64p_ratio_0_70[198] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			02-Apr-2024
// <coeffDescrip>	6t_64p_LanczosEd_p_0.8_p_10qb_
// <num_taps>		6
// <num_phases>		64
// <scale_ratio>	 input/output = 0.800000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_6tap_64p_ratio_0_80[198] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			02-Apr-2024
// <coeffDescrip>	6t_64p_LanczosEd_p_0.9_p_10qb_
// <num_taps>		6
// <num_phases>		64
// <scale_ratio>	 input/output = 0.900000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_6tap_64p_ratio_0_90[198] =;

//========================================================
// <using>			gen_scaler_coeffs_cnf_file.m
// <using>			make_test_script.m
// <date>			02-Apr-2024
// <coeffDescrip>	6t_64p_LanczosEd_p_1_p_10qb_
// <num_taps>		6
// <num_phases>		64
// <scale_ratio>	 input/output = 1.000000000000
// <CoefType>		LanczosEd
// <CoefQuant>		S1.10
//========================================================
static const uint16_t easf_filter_6tap_64p_ratio_1_00[198] =;

/* Converted scaler coeff tables from S1.10 to S1.12 */
static uint16_t easf_filter_3tap_64p_ratio_0_30_s1_12[99];
static uint16_t easf_filter_3tap_64p_ratio_0_40_s1_12[99];
static uint16_t easf_filter_3tap_64p_ratio_0_50_s1_12[99];
static uint16_t easf_filter_3tap_64p_ratio_0_60_s1_12[99];
static uint16_t easf_filter_3tap_64p_ratio_0_70_s1_12[99];
static uint16_t easf_filter_3tap_64p_ratio_0_80_s1_12[99];
static uint16_t easf_filter_3tap_64p_ratio_0_90_s1_12[99];
static uint16_t easf_filter_3tap_64p_ratio_1_00_s1_12[99];
static uint16_t easf_filter_4tap_64p_ratio_0_30_s1_12[132];
static uint16_t easf_filter_4tap_64p_ratio_0_40_s1_12[132];
static uint16_t easf_filter_4tap_64p_ratio_0_50_s1_12[132];
static uint16_t easf_filter_4tap_64p_ratio_0_60_s1_12[132];
static uint16_t easf_filter_4tap_64p_ratio_0_70_s1_12[132];
static uint16_t easf_filter_4tap_64p_ratio_0_80_s1_12[132];
static uint16_t easf_filter_4tap_64p_ratio_0_90_s1_12[132];
static uint16_t easf_filter_4tap_64p_ratio_1_00_s1_12[132];
static uint16_t easf_filter_6tap_64p_ratio_0_30_s1_12[198];
static uint16_t easf_filter_6tap_64p_ratio_0_40_s1_12[198];
static uint16_t easf_filter_6tap_64p_ratio_0_50_s1_12[198];
static uint16_t easf_filter_6tap_64p_ratio_0_60_s1_12[198];
static uint16_t easf_filter_6tap_64p_ratio_0_70_s1_12[198];
static uint16_t easf_filter_6tap_64p_ratio_0_80_s1_12[198];
static uint16_t easf_filter_6tap_64p_ratio_0_90_s1_12[198];
static uint16_t easf_filter_6tap_64p_ratio_1_00_s1_12[198];

struct scale_ratio_to_reg_value_lookup easf_v_bf3_mode_lookup[] =;

struct scale_ratio_to_reg_value_lookup easf_h_bf3_mode_lookup[] =;

struct scale_ratio_to_reg_value_lookup easf_reducer_gain6_6tap_lookup[] =;

struct scale_ratio_to_reg_value_lookup easf_reducer_gain4_6tap_lookup[] =;

struct scale_ratio_to_reg_value_lookup easf_gain_ring6_6tap_lookup[] =;

struct scale_ratio_to_reg_value_lookup easf_gain_ring4_6tap_lookup[] =;

struct scale_ratio_to_reg_value_lookup easf_reducer_gain6_4tap_lookup[] =;

struct scale_ratio_to_reg_value_lookup easf_reducer_gain4_4tap_lookup[] =;

struct scale_ratio_to_reg_value_lookup easf_gain_ring6_4tap_lookup[] =;

struct scale_ratio_to_reg_value_lookup easf_gain_ring4_4tap_lookup[] =;

struct scale_ratio_to_reg_value_lookup easf_3tap_dntilt_uptilt_offset_lookup[] =;

struct scale_ratio_to_reg_value_lookup easf_3tap_uptilt_maxval_lookup[] =;

struct scale_ratio_to_reg_value_lookup easf_3tap_dntilt_slope_lookup[] =;

struct scale_ratio_to_reg_value_lookup easf_3tap_uptilt1_slope_lookup[] =;

struct scale_ratio_to_reg_value_lookup easf_3tap_uptilt2_slope_lookup[] =;

struct scale_ratio_to_reg_value_lookup easf_3tap_uptilt2_offset_lookup[] =;

void spl_init_easf_filter_coeffs(void)
{}

uint16_t *spl_get_easf_filter_3tap_64p(struct spl_fixed31_32 ratio)
{}

uint16_t *spl_get_easf_filter_4tap_64p(struct spl_fixed31_32 ratio)
{}

uint16_t *spl_get_easf_filter_6tap_64p(struct spl_fixed31_32 ratio)
{}

uint16_t *spl_dscl_get_easf_filter_coeffs_64p(int taps, struct spl_fixed31_32 ratio)
{}

void spl_set_filters_data(struct dscl_prog_data *dscl_prog_data,
		const struct spl_scaler_data *data, bool enable_easf_v,
		bool enable_easf_h)
{}

static uint32_t spl_easf_get_scale_ratio_to_reg_value(struct spl_fixed31_32 ratio,
	struct scale_ratio_to_reg_value_lookup *lookup_table_base_ptr,
	unsigned int num_entries)
{}
uint32_t spl_get_v_bf3_mode(struct spl_fixed31_32 ratio)
{}
uint32_t spl_get_h_bf3_mode(struct spl_fixed31_32 ratio)
{}
uint32_t spl_get_reducer_gain6(int taps, struct spl_fixed31_32 ratio)
{}
uint32_t spl_get_reducer_gain4(int taps, struct spl_fixed31_32 ratio)
{}
uint32_t spl_get_gainRing6(int taps, struct spl_fixed31_32 ratio)
{}
uint32_t spl_get_gainRing4(int taps, struct spl_fixed31_32 ratio)
{}
uint32_t spl_get_3tap_dntilt_uptilt_offset(int taps, struct spl_fixed31_32 ratio)
{}
uint32_t spl_get_3tap_uptilt_maxval(int taps, struct spl_fixed31_32 ratio)
{}
uint32_t spl_get_3tap_dntilt_slope(int taps, struct spl_fixed31_32 ratio)
{}
uint32_t spl_get_3tap_uptilt1_slope(int taps, struct spl_fixed31_32 ratio)
{}
uint32_t spl_get_3tap_uptilt2_slope(int taps, struct spl_fixed31_32 ratio)
{}
uint32_t spl_get_3tap_uptilt2_offset(int taps, struct spl_fixed31_32 ratio)
{}