linux/drivers/gpu/drm/amd/display/dc/dc_types.h

/*
 * Copyright 2012-15 Advanced Micro Devices, Inc.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 * OTHER DEALINGS IN THE SOFTWARE.
 *
 * Authors: AMD
 *
 */
#ifndef DC_TYPES_H_
#define DC_TYPES_H_

/* AND EdidUtility only needs a portion
 * of this file, including the rest only
 * causes additional issues.
 */
#include "os_types.h"
#include "fixed31_32.h"
#include "irq_types.h"
#include "dc_ddc_types.h"
#include "dc_dp_types.h"
#include "dc_hdmi_types.h"
#include "dc_hw_types.h"
#include "dal_types.h"
#include "grph_object_defs.h"
#include "grph_object_ctrl_defs.h"

#include "dm_cp_psp.h"

/* forward declarations */
struct dc_plane_state;
struct dc_stream_state;
struct dc_link;
struct dc_sink;
struct dal;
struct dc_dmub_srv;

/********************************
 * Environment definitions
 ********************************/
enum dce_environment {};

struct dc_perf_trace {};

#define MAX_SURFACE_NUM
#define NUM_PIXEL_FORMATS

enum tiling_mode {};

enum view_3d_format {};

enum plane_stereo_format {};

/* TODO: Find way to calculate number of bits
 *  Please increase if pixel_format enum increases
 * num  from  PIXEL_FORMAT_INDEX8 to PIXEL_FORMAT_444BPP32
 */

enum dc_edid_connector_type {};

enum dc_edid_status {};

enum act_return_status {};

/* audio capability from EDID*/
struct dc_cea_audio_mode {};

struct dc_edid {};

/* When speaker location data block is not available, DEFAULT_SPEAKER_LOCATION
 * is used. In this case we assume speaker location are: front left, front
 * right and front center. */
#define DEFAULT_SPEAKER_LOCATION

#define DC_MAX_AUDIO_DESC_COUNT

#define AUDIO_INFO_DISPLAY_NAME_SIZE_IN_CHARS

struct dc_panel_patch {};

struct dc_edid_caps {};

struct dc_mode_flags {};


enum dc_timing_source {};


struct stereo_3d_features {};

enum dc_timing_support_method {};

struct dc_mode_info {};

enum dc_power_state {};

/* DC PowerStates */
enum dc_video_power_state {};

enum dc_acpi_cm_power_state {};

enum dc_connection_type {};

struct dc_csc_adjustments {};

/* Scaling format */
enum scaling_transformation {};

enum display_content_type {};

enum cm_gamut_adjust_type {};

struct cm_grph_csc_adjustment {};

/* writeback */
struct dwb_stereo_params {};

struct dc_dwb_cnv_params {};

struct dc_dwb_params {};

/* audio*/

audio_sample_rates;

struct audio_speaker_flags {};

struct audio_speaker_info {};


struct audio_info_flags {};

enum audio_format_code {};

struct audio_mode {};

struct audio_info {};
struct audio_check {};
enum dc_infoframe_type {};

struct dc_info_packet {};

struct dc_info_packet_128 {};

#define DC_PLANE_UPDATE_TIMES_MAX

struct dc_plane_flip_time {};

enum dc_psr_state {};

struct psr_config {};

dmcu_psr_level;

enum physical_phy_id {};

enum phy_type {};

struct psr_context {};

struct colorspace_transform {};

enum i2c_mot_mode {};

struct AsicStateEx {};


enum dc_clock_type {};

struct dc_clock_config {};

struct hw_asic_id {};

struct dc_context {};

/* DSC DPCD capabilities */
dsc_slice_caps1;

dsc_slice_caps2;

dsc_color_formats;

dsc_color_depth;

struct dsc_dec_dpcd_caps {};

struct dc_golden_table {};

enum dc_gpu_mem_alloc_type {};

enum dc_link_encoding_format {};

enum dc_psr_version {};

/* Possible values of display_endpoint_id.endpoint */
enum display_endpoint_type {};

/* Extends graphics_object_id with an additional member 'ep_type' for
 * distinguishing between physical endpoints (with entries in BIOS connector table) and
 * logical endpoints.
 */
struct display_endpoint_id {};

#if defined(CONFIG_DRM_AMD_SECURE_DISPLAY)
struct otg_phy_mux {};
#endif

enum dc_detect_reason {};

struct dc_link_status {};

hdcp_rx_caps;

hdcp_bcaps;

struct hdcp_caps {};

/* DP MST stream allocation (payload bandwidth number) */
struct link_mst_stream_allocation {};

#define MAX_CONTROLLER_NUM

/* DP MST stream allocation table */
struct link_mst_stream_allocation_table {};

/* PSR feature flags */
struct psr_settings {};

enum replay_coasting_vtotal_type {};

enum replay_link_off_frame_count_level {};

/*
 * This is general Interface for Replay to
 * set an 32 bit variable to dmub
 * The Message_type indicates which variable
 * passed to DMUB.
 */
enum replay_FW_Message_type {};

replay_error_status;

struct replay_config {};

/* Replay feature flags*/
struct replay_settings {};

/* To split out "global" and "per-panel" config settings.
 * Add a struct dc_panel_config under dc_link
 */
struct dc_panel_config {};

#define MAX_SINKS_PER_LINK

/*
 *  USB4 DPIA BW ALLOCATION STRUCTS
 */
struct dc_dpia_bw_alloc {};

enum dc_hpd_enable_select {};

enum dc_cm2_shaper_3dlut_setting {};

enum dc_cm2_gpu_mem_layout {};

enum dc_cm2_gpu_mem_pixel_component_order {};

enum dc_cm2_gpu_mem_format {};

struct dc_cm2_gpu_mem_format_parameters {};

enum dc_cm2_gpu_mem_size {};

struct dc_cm2_gpu_mem_parameters {};

enum dc_cm2_transfer_func_source {};

struct dc_cm2_component_settings {};

/*
 * All pointers in this struct must remain valid for as long as the 3DLUTs are used
 */
struct dc_cm2_func_luts {};

struct dc_cm2_parameters {};

enum mall_stream_type {};

enum dc_power_source_type {};

struct dc_state_create_params {};

struct dc_commit_streams_params {};

#endif /* DC_TYPES_H_ */