linux/drivers/gpu/drm/amd/display/dc/spl/dc_spl_types.h

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

#include "os_types.h"
#include "dc_hw_types.h"
#ifndef ASSERT
#define ASSERT
#endif
#include "include/fixed31_32.h"	// fixed31_32 and related functions
#ifndef __DC_SPL_TYPES_H__
#define __DC_SPL_TYPES_H__

enum lb_memory_config {};

struct spl_size {};
struct spl_rect	{};

struct spl_ratios {};
struct spl_inits {};

struct spl_taps	{};
enum spl_view_3d {};
/* Pixel format */
enum spl_pixel_format {};

/* Rotation angle */
enum spl_rotation_angle {};
enum spl_color_space {};

// Scratch space for calculating scaler params
struct spl_scaler_data {};

enum spl_transfer_func_type {};

enum spl_transfer_func_predefined {};

/*==============================================================*/
/* Below structs are defined to hold hw register data */

// SPL output is used to set below registers

// MPC_SIZE - set based on scl_data h_active and v_active
struct mpc_size	{};
// SCL_MODE - set based on scl_data.ratios and always_scale
enum scl_mode {};
// SCL_BLACK_COLOR - set based on scl_data.format
struct scl_black_color	{};
// RATIO - set based on scl_data.ratios
struct ratio	{};

// INIT - set based on scl_data.init
struct init	{};

// FILTER - calculated based on scl_data ratios and taps

// iSHARP
struct isharp_noise_det {};
struct isharp_lba	{};
struct isharp_fmt	{};
struct isharp_nldelta_sclip	{};
enum isharp_en	{};
// Below struct holds values that can be directly used to program
// hardware registers. No conversion/clamping is required
struct dscl_prog_data {};

/* SPL input and output definitions */
// SPL outputs struct
struct spl_out	{};

// end of SPL outputs

// SPL inputs

// Basic input information
struct basic_in	{};

// Basic output information
struct basic_out {};
enum explicit_sharpness	{};
struct adaptive_sharpness	{};
enum linear_light_scaling	{};
struct spl_funcs	{};

struct spl_debug {};

struct spl_in	{};
// end of SPL inputs

#endif /* __DC_SPL_TYPES_H__ */