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

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

#ifndef __DC_SPL_TYPES_H__
#define __DC_SPL_TYPES_H__

#include "spl_os_types.h"   // swap
#ifndef SPL_ASSERT
#define SPL_ASSERT(_bool)
#endif
#include "spl_fixpt31_32.h"	// fixed31_32 and related functions
#include "spl_custom_float.h" // custom float and related functions

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 {};

enum lb_memory_config {};

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

enum chroma_cositing {};

// 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 scratch struct
struct spl_scratch {};

/* 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 sharpness_setting	{};
struct spl_sharpness_range {};
struct adaptive_sharpness {};
enum linear_light_scaling	{};
enum sharpen_policy {};
enum scale_to_sharpness_policy {};
struct spl_funcs	{};

struct spl_debug {};

struct spl_in	{};
// end of SPL inputs

#endif /* __DC_SPL_TYPES_H__ */