#ifndef __DCN401_DPP_H__
#define __DCN401_DPP_H__
#include "dcn20/dcn20_dpp.h"
#include "dcn30/dcn30_dpp.h"
#include "dcn32/dcn32_dpp.h"
#define TO_DCN401_DPP(dpp) …
#define DPP_REG_LIST_SH_MASK_DCN401_COMMON(mask_sh) …
#define DPP_REG_FIELD_LIST_DCN401(type) …
struct dcn401_dpp_registers { … };
struct dcn401_dpp_shift { … };
struct dcn401_dpp_mask { … };
struct dcn401_dpp { … };
bool dpp401_construct(struct dcn401_dpp *dpp401,
struct dc_context *ctx,
uint32_t inst,
const struct dcn401_dpp_registers *tf_regs,
const struct dcn401_dpp_shift *tf_shift,
const struct dcn401_dpp_mask *tf_mask);
void dpp401_dscl_set_scaler_manual_scale(
struct dpp *dpp_base,
const struct scaler_data *scl_data);
void dpp401_full_bypass(struct dpp *dpp_base);
void dpp401_dpp_setup(
struct dpp *dpp_base,
enum surface_pixel_format format,
enum expansion_mode mode,
struct dc_csc_transform input_csc_color_matrix,
enum dc_color_space input_color_space,
struct cnv_alpha_2bit_lut *alpha_2bit_lut);
void dpp401_set_cursor_attributes(
struct dpp *dpp_base,
struct dc_cursor_attributes *cursor_attributes);
void dpp401_set_cursor_position(
struct dpp *dpp_base,
const struct dc_cursor_position *pos,
const struct dc_cursor_mi_param *param,
uint32_t width,
uint32_t height);
void dpp401_set_optional_cursor_attributes(
struct dpp *dpp_base,
struct dpp_cursor_attributes *attr);
void dscl401_calc_lb_num_partitions(
const struct scaler_data *scl_data,
enum lb_memory_config lb_config,
int *num_part_y,
int *num_part_c);
void dscl401_spl_calc_lb_num_partitions(
bool alpha_en,
const struct spl_scaler_data *scl_data,
enum lb_memory_config lb_config,
int *num_part_y,
int *num_part_c);
void dpp401_read_state(struct dpp *dpp_base, struct dcn_dpp_state *s);
void dpp401_set_cursor_matrix(
struct dpp *dpp_base,
enum dc_color_space color_space,
struct dc_csc_transform cursor_csc_color_matrix);
#endif