mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
ddrm/amd/display: [FW Promotion] Release 0.1.61.0
[Why & How] Update DMUB related command structure. Acked-by: Tom Chung <chiahsuan.chung@amd.com> Signed-off-by: Taimur Hassan <Syed.Hassan@amd.com> Signed-off-by: Ray Wu <ray.wu@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
c2630fdd65
commit
e81a4c508e
|
|
@ -1,3 +1,12 @@
|
|||
/*
|
||||
* Note: This header is the authoritative source for the DMUB firmware
|
||||
* command interface. In the Linux kernel, it is maintained as an
|
||||
* auto-generated copy from an AMD internal repository.
|
||||
*
|
||||
* This file follows Doxygen formatting for firmware standards and
|
||||
* is NOT intended to be kernel-doc compliant.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright 2019 Advanced Micro Devices, Inc.
|
||||
*
|
||||
|
|
@ -94,6 +103,35 @@
|
|||
*/
|
||||
#define ABM_MAX_NUM_OF_HG_BINS 64
|
||||
|
||||
/**
|
||||
* Flag from driver to indicate that CACP should be disabled gradually
|
||||
* by slowly reversing all programming and pixel compensation.
|
||||
*/
|
||||
#define SET_CACP_PIPE_GRADUALLY_DISABLE 0
|
||||
|
||||
/**
|
||||
* Flag from driver to indicate that CACP should be disabled immediately
|
||||
* and undo all programming and pixel compensation.
|
||||
*/
|
||||
#define SET_CACP_PIPE_IMMEDIATELY_DISABLE 255
|
||||
|
||||
/**
|
||||
* Flag from driver to indicate that CACP should be disabled immediately
|
||||
* and keep the current programming and pixel compensation.
|
||||
*/
|
||||
#define SET_CACP_PIPE_IMMEDIATE_KEEP_GAIN_DISABLE 254
|
||||
|
||||
/**
|
||||
* Flag from driver to indicate that CACP should be disabled immediately
|
||||
* on the next abm vertical interrupt
|
||||
*/
|
||||
#define SET_CACP_PIPE_IMMEDIATE_ON_NEXT_DISABLE 253
|
||||
|
||||
/**
|
||||
* Flag from driver to set the current CACP pipe index or CACP operating level.
|
||||
*/
|
||||
#define SET_CACP_PIPE_NORMAL 1
|
||||
|
||||
/* Maximum number of SubVP streams */
|
||||
#define DMUB_MAX_SUBVP_STREAMS 2
|
||||
|
||||
|
|
@ -177,6 +215,26 @@
|
|||
*/
|
||||
#define DMUB_CMD_ABM_CONTROL_VERSION_1 0x1
|
||||
|
||||
/**
|
||||
* CACP control version legacy
|
||||
*/
|
||||
#define DMUB_CMD_CACP_CONTROL_VERSION_UNKNOWN 0x0
|
||||
|
||||
/**
|
||||
* CACP control version with multi edp support
|
||||
*/
|
||||
#define DMUB_CMD_CACP_CONTROL_VERSION_1 0x1
|
||||
|
||||
/**
|
||||
* CACP control mode with dynamic switch between v1 and v2
|
||||
*/
|
||||
#define DMUB_CMD_CACP_CONTROL_MODE_0 0x0
|
||||
|
||||
/**
|
||||
* CACP control version with forced configure to v1 on new ABM HW
|
||||
*/
|
||||
#define DMUB_CMD_CACP_CONTROL_MODE_1 0x1
|
||||
|
||||
/**
|
||||
* Physical framebuffer address location, 64-bit.
|
||||
*/
|
||||
|
|
@ -329,7 +387,7 @@ union dmub_addr {
|
|||
|
||||
/* Flattened structure containing SOC BB parameters stored in the VBIOS
|
||||
* It is not practical to store the entire bounding box in VBIOS since the bounding box struct can gain new parameters.
|
||||
* This also prevents alignment issues when new parameters are added to the SoC BB.
|
||||
* This also prevents alighment issues when new parameters are added to the SoC BB.
|
||||
* The following parameters should be added since these values can't be obtained elsewhere:
|
||||
* -dml2_soc_power_management_parameters
|
||||
* -dml2_soc_vmin_clock_limits
|
||||
|
|
@ -958,7 +1016,7 @@ union dmub_fw_meta {
|
|||
//==============================================================================
|
||||
#if !defined(TENSILICA) && !defined(DMUB_TRACE_ENTRY_DEFINED)
|
||||
/**
|
||||
* typedef dmub_trace_code_t - firmware trace code, 32-bits
|
||||
* dmub_trace_code_t - firmware trace code, 32-bits
|
||||
*/
|
||||
typedef uint32_t dmub_trace_code_t;
|
||||
|
||||
|
|
@ -1170,7 +1228,7 @@ enum dmub_shared_state_feature_id {
|
|||
};
|
||||
|
||||
/**
|
||||
* struct dmub_shared_state_ips_fw_signals - Firmware signals for IPS.
|
||||
* struct dmub_shared_state_ips_fw - Firmware signals for IPS.
|
||||
*/
|
||||
union dmub_shared_state_ips_fw_signals {
|
||||
struct {
|
||||
|
|
@ -1185,7 +1243,7 @@ union dmub_shared_state_ips_fw_signals {
|
|||
};
|
||||
|
||||
/**
|
||||
* struct dmub_shared_state_ips_driver_signals - Firmware signals for IPS.
|
||||
* struct dmub_shared_state_ips_signals - Firmware signals for IPS.
|
||||
*/
|
||||
union dmub_shared_state_ips_driver_signals {
|
||||
struct {
|
||||
|
|
@ -1247,7 +1305,7 @@ struct dmub_shared_state_ips_driver {
|
|||
}; /* 248-bytes, fixed */
|
||||
|
||||
/**
|
||||
* struct dmub_shared_state_cursor_offload_stream_v1 - Header metadata for cursor offload.
|
||||
* struct dmub_shared_state_cursor_offload_v1 - Header metadata for cursor offload.
|
||||
*/
|
||||
struct dmub_shared_state_cursor_offload_stream_v1 {
|
||||
uint32_t last_write_idx; /**< Last write index */
|
||||
|
|
@ -1263,14 +1321,14 @@ struct dmub_shared_state_cursor_offload_v1 {
|
|||
}; /* 248-bytes, fixed */
|
||||
|
||||
/**
|
||||
* struct dmub_shared_state_feature_common - Generic payload.
|
||||
* enum dmub_shared_state_feature_common - Generic payload.
|
||||
*/
|
||||
struct dmub_shared_state_feature_common {
|
||||
uint32_t padding[62];
|
||||
}; /* 248-bytes, fixed */
|
||||
|
||||
/**
|
||||
* struct dmub_shared_state_feature_header - Feature description.
|
||||
* enum dmub_shared_state_feature_header - Feature description.
|
||||
*/
|
||||
struct dmub_shared_state_feature_header {
|
||||
uint16_t id; /**< Feature ID */
|
||||
|
|
@ -1444,6 +1502,11 @@ enum dmub_gpint_command {
|
|||
*/
|
||||
DMUB_GPINT__REPLAY_RESIDENCY = 14,
|
||||
|
||||
/**
|
||||
* DESC: Set CACP internal core configuration
|
||||
*/
|
||||
DMUB_GPINT__TRIGGER_CACP = 18,
|
||||
|
||||
/**
|
||||
* DESC: Copy bounding box to the host.
|
||||
* ARGS: Version of bounding box to copy
|
||||
|
|
@ -1858,6 +1921,11 @@ enum dmub_cmd_type {
|
|||
*/
|
||||
DMUB_CMD__DPIA_HPD_INT_ENABLE = 86,
|
||||
|
||||
/**
|
||||
* Command type used for all CACP commands.
|
||||
*/
|
||||
DMUB_CMD__CACP = 87,
|
||||
|
||||
/**
|
||||
* Command type used for all PSP commands.
|
||||
*/
|
||||
|
|
@ -1996,7 +2064,7 @@ struct dmub_cmd_read_modify_write_sequence {
|
|||
#define DMUB_READ_MODIFY_WRITE_SEQ__MAX 5
|
||||
|
||||
/**
|
||||
* struct dmub_rb_cmd_read_modify_write - Read modify write command.
|
||||
* struct dmub_cmd_read_modify_write_sequence - Read modify write command.
|
||||
*/
|
||||
struct dmub_rb_cmd_read_modify_write {
|
||||
struct dmub_cmd_header header; /**< command header */
|
||||
|
|
@ -2007,7 +2075,7 @@ struct dmub_rb_cmd_read_modify_write {
|
|||
};
|
||||
|
||||
/*
|
||||
* Update a register with specified masks and values sequence
|
||||
* Update a register with specified masks and values sequeunce
|
||||
*
|
||||
* 60 payload bytes can hold address + up to 7 sets of mask/value combo, each take 2 dword
|
||||
*
|
||||
|
|
@ -2382,8 +2450,13 @@ struct dmub_cmd_lsdma_data {
|
|||
uint32_t tmz : 4;
|
||||
uint32_t cache_policy_src : 3;
|
||||
uint32_t cache_policy_dst : 3;
|
||||
uint32_t pad1 : 22;
|
||||
// DCC fields not included because linear mode on display does not support DCC
|
||||
uint32_t data_format : 6;
|
||||
uint32_t num_type : 3;
|
||||
uint32_t read_compress : 2;
|
||||
uint32_t write_compress : 2;
|
||||
uint32_t max_com : 2;
|
||||
uint32_t max_uncom : 1;
|
||||
uint32_t pad1 : 6;
|
||||
} linear_copy_data;
|
||||
struct lsdma_linear_sub_window_copy_data {
|
||||
uint32_t src_lo;
|
||||
|
|
@ -2411,9 +2484,13 @@ struct dmub_cmd_lsdma_data {
|
|||
uint32_t element_size : 3;
|
||||
uint32_t src_cache_policy : 3;
|
||||
uint32_t dst_cache_policy : 3;
|
||||
uint32_t reserved0 : 19;
|
||||
// Linear mode on display does not support compression so DCC related fields are not included.
|
||||
// The DCC fields in the command packet will be zero'd at the time of constructing the packet.
|
||||
uint32_t data_format : 6;
|
||||
uint32_t num_type : 3;
|
||||
uint32_t read_compress : 2;
|
||||
uint32_t write_compress : 2;
|
||||
uint32_t max_com : 2;
|
||||
uint32_t max_uncom : 1;
|
||||
uint32_t reserved0 : 3;
|
||||
} linear_sub_window_copy_data;
|
||||
struct lsdma_reg_write_data {
|
||||
uint32_t reg_addr;
|
||||
|
|
@ -2877,7 +2954,7 @@ struct dmub_cmd_set_pixel_clock_data {
|
|||
};
|
||||
|
||||
/**
|
||||
* struct dmub_rb_cmd_set_pixel_clock - Set pixel clock command.
|
||||
* struct dmub_cmd_set_pixel_clock_data - Set pixel clock command.
|
||||
*/
|
||||
struct dmub_rb_cmd_set_pixel_clock {
|
||||
struct dmub_cmd_header header; /**< header */
|
||||
|
|
@ -3393,7 +3470,7 @@ struct dpia_bw_allocation_notify_data {
|
|||
};
|
||||
|
||||
/**
|
||||
* union dpia_notification_data - DPIA Notification in Outbox command
|
||||
* union dpia_notify_data_type - DPIA Notification in Outbox command
|
||||
*/
|
||||
union dpia_notification_data {
|
||||
/**
|
||||
|
|
@ -3449,7 +3526,7 @@ struct dmub_rb_cmd_query_hpd_state {
|
|||
};
|
||||
|
||||
/**
|
||||
* struct dmub_rb_cmd_hpd_sense_notify_data - HPD sense notification data.
|
||||
* struct dmub_rb_cmd_hpd_sense_notify - HPD sense notification data.
|
||||
*/
|
||||
struct dmub_rb_cmd_hpd_sense_notify_data {
|
||||
uint32_t old_hpd_sense_mask; /**< Old HPD sense mask */
|
||||
|
|
@ -3493,7 +3570,7 @@ enum dmub_cmd_psr_type {
|
|||
|
||||
/**
|
||||
* Set PSR level.
|
||||
* PSR level is a 16-bit value dictated by driver that
|
||||
* PSR level is a 16-bit value dicated by driver that
|
||||
* will enable/disable different functionality.
|
||||
*/
|
||||
DMUB_CMD__PSR_SET_LEVEL = 4,
|
||||
|
|
@ -3538,6 +3615,7 @@ enum dmub_cmd_fams_type {
|
|||
DMUB_CMD__FAMS2_DRR_UPDATE = 5,
|
||||
DMUB_CMD__FAMS2_FLIP = 6,
|
||||
DMUB_CMD__FAMS2_IB_CONFIG = 7,
|
||||
DMUB_CMD__FAMS2_IB_DEBUG_META = 8,
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -3650,7 +3728,7 @@ struct dmub_cmd_psr_copy_settings_data {
|
|||
*/
|
||||
union dmub_psr_debug_flags debug;
|
||||
/**
|
||||
* 16-bit value dictated by driver that will enable/disable different functionality.
|
||||
* 16-bit value dicated by driver that will enable/disable different functionality.
|
||||
*/
|
||||
uint16_t psr_level;
|
||||
/**
|
||||
|
|
@ -3690,7 +3768,7 @@ struct dmub_cmd_psr_copy_settings_data {
|
|||
*/
|
||||
uint8_t aux_inst;
|
||||
/**
|
||||
* Determines if SMU optimizations are enabled/disabled.
|
||||
* Determines if SMU optimzations are enabled/disabled.
|
||||
*/
|
||||
uint8_t smu_optimizations_en;
|
||||
/**
|
||||
|
|
@ -3807,7 +3885,7 @@ struct dmub_rb_cmd_psr_copy_settings {
|
|||
*/
|
||||
struct dmub_cmd_psr_set_level_data {
|
||||
/**
|
||||
* 16-bit value dictated by driver that will enable/disable different functionality.
|
||||
* 16-bit value dicated by driver that will enable/disable different functionality.
|
||||
*/
|
||||
uint16_t psr_level;
|
||||
/**
|
||||
|
|
@ -4185,7 +4263,7 @@ struct dmub_rb_cmd_update_cursor_info {
|
|||
*/
|
||||
struct dmub_cmd_psr_set_vtotal_data {
|
||||
/**
|
||||
* 16-bit value dictated by driver that indicates the vtotal in PSR active requirement when screen idle..
|
||||
* 16-bit value dicated by driver that indicates the vtotal in PSR active requirement when screen idle..
|
||||
*/
|
||||
uint16_t psr_vtotal_idle;
|
||||
/**
|
||||
|
|
@ -4199,7 +4277,7 @@ struct dmub_cmd_psr_set_vtotal_data {
|
|||
*/
|
||||
uint8_t panel_inst;
|
||||
/*
|
||||
* 16-bit value dictated by driver that indicates the vtotal in PSR active requirement when doing SU/FFU.
|
||||
* 16-bit value dicated by driver that indicates the vtotal in PSR active requirement when doing SU/FFU.
|
||||
*/
|
||||
uint16_t psr_vtotal_su;
|
||||
/**
|
||||
|
|
@ -4423,6 +4501,7 @@ enum dmub_cmd_panel_replay_state_update_subtype {
|
|||
PR_STATE_UPDATE_COASTING_VTOTAL = 0x1,
|
||||
PR_STATE_UPDATE_SYNC_MODE = 0x2,
|
||||
PR_STATE_UPDATE_RUNTIME_FLAGS = 0x3,
|
||||
PR_STATE_UPDATE_PSEUDO_VTOTAL = 0x4,
|
||||
};
|
||||
|
||||
enum dmub_cmd_panel_replay_general_subtype {
|
||||
|
|
@ -4499,7 +4578,7 @@ struct dmub_cmd_replay_copy_settings_data {
|
|||
uint8_t aux_inst;
|
||||
/**
|
||||
* Panel Instance.
|
||||
* Panel instance to identify which psr_state to use
|
||||
* Panel isntance to identify which psr_state to use
|
||||
* Currently the support is only for 0 or 1
|
||||
*/
|
||||
uint8_t panel_inst;
|
||||
|
|
@ -4522,7 +4601,7 @@ struct dmub_cmd_replay_copy_settings_data {
|
|||
*/
|
||||
uint8_t dpphy_inst;
|
||||
/**
|
||||
* Determines if SMU optimizations are enabled/disabled.
|
||||
* Determines if SMU optimzations are enabled/disabled.
|
||||
*/
|
||||
uint8_t smu_optimizations_en;
|
||||
/**
|
||||
|
|
@ -4612,7 +4691,7 @@ struct dmub_rb_cmd_smart_power_oled_enable_data {
|
|||
uint8_t enable;
|
||||
/**
|
||||
* Panel Instance.
|
||||
* Panel instance to identify which replay_state to use
|
||||
* Panel isntance to identify which replay_state to use
|
||||
* Currently the support is only for 0 or 1
|
||||
*/
|
||||
uint8_t panel_inst;
|
||||
|
|
@ -4651,7 +4730,7 @@ struct dmub_rb_cmd_replay_enable_data {
|
|||
uint8_t enable;
|
||||
/**
|
||||
* Panel Instance.
|
||||
* Panel instance to identify which replay_state to use
|
||||
* Panel isntance to identify which replay_state to use
|
||||
* Currently the support is only for 0 or 1
|
||||
*/
|
||||
uint8_t panel_inst;
|
||||
|
|
@ -4699,7 +4778,7 @@ struct dmub_rb_cmd_replay_enable {
|
|||
struct dmub_cmd_replay_set_power_opt_data {
|
||||
/**
|
||||
* Panel Instance.
|
||||
* Panel instance to identify which replay_state to use
|
||||
* Panel isntance to identify which replay_state to use
|
||||
* Currently the support is only for 0 or 1
|
||||
*/
|
||||
uint8_t panel_inst;
|
||||
|
|
@ -4719,7 +4798,7 @@ struct dmub_cmd_replay_set_power_opt_data {
|
|||
struct dmub_cmd_replay_set_timing_sync_data {
|
||||
/**
|
||||
* Panel Instance.
|
||||
* Panel instance to identify which replay_state to use
|
||||
* Panel isntance to identify which replay_state to use
|
||||
* Currently the support is only for 0 or 1
|
||||
*/
|
||||
uint8_t panel_inst;
|
||||
|
|
@ -4739,7 +4818,7 @@ struct dmub_cmd_replay_set_timing_sync_data {
|
|||
struct dmub_cmd_replay_set_pseudo_vtotal {
|
||||
/**
|
||||
* Panel Instance.
|
||||
* Panel instance to identify which replay_state to use
|
||||
* Panel isntance to identify which replay_state to use
|
||||
* Currently the support is only for 0 or 1
|
||||
*/
|
||||
uint8_t panel_inst;
|
||||
|
|
@ -4755,7 +4834,7 @@ struct dmub_cmd_replay_set_pseudo_vtotal {
|
|||
struct dmub_cmd_replay_disabled_adaptive_sync_sdp_data {
|
||||
/**
|
||||
* Panel Instance.
|
||||
* Panel instance to identify which replay_state to use
|
||||
* Panel isntance to identify which replay_state to use
|
||||
* Currently the support is only for 0 or 1
|
||||
*/
|
||||
uint8_t panel_inst;
|
||||
|
|
@ -4769,7 +4848,7 @@ struct dmub_cmd_replay_disabled_adaptive_sync_sdp_data {
|
|||
struct dmub_cmd_replay_set_general_cmd_data {
|
||||
/**
|
||||
* Panel Instance.
|
||||
* Panel instance to identify which replay_state to use
|
||||
* Panel isntance to identify which replay_state to use
|
||||
* Currently the support is only for 0 or 1
|
||||
*/
|
||||
uint8_t panel_inst;
|
||||
|
|
@ -4806,7 +4885,7 @@ struct dmub_rb_cmd_replay_set_power_opt {
|
|||
*/
|
||||
struct dmub_cmd_replay_set_coasting_vtotal_data {
|
||||
/**
|
||||
* 16-bit value dictated by driver that indicates the coasting vtotal.
|
||||
* 16-bit value dicated by driver that indicates the coasting vtotal.
|
||||
*/
|
||||
uint16_t coasting_vtotal;
|
||||
/**
|
||||
|
|
@ -4815,12 +4894,12 @@ struct dmub_cmd_replay_set_coasting_vtotal_data {
|
|||
uint8_t cmd_version;
|
||||
/**
|
||||
* Panel Instance.
|
||||
* Panel instance to identify which replay_state to use
|
||||
* Panel isntance to identify which replay_state to use
|
||||
* Currently the support is only for 0 or 1
|
||||
*/
|
||||
uint8_t panel_inst;
|
||||
/**
|
||||
* 16-bit value dictated by driver that indicates the coasting vtotal high byte part.
|
||||
* 16-bit value dicated by driver that indicates the coasting vtotal high byte part.
|
||||
*/
|
||||
uint16_t coasting_vtotal_high;
|
||||
/**
|
||||
|
|
@ -4923,7 +5002,7 @@ struct dmub_rb_cmd_replay_set_general_cmd {
|
|||
struct dmub_cmd_replay_frameupdate_timer_data {
|
||||
/**
|
||||
* Panel Instance.
|
||||
* Panel instance to identify which replay_state to use
|
||||
* Panel isntance to identify which replay_state to use
|
||||
* Currently the support is only for 0 or 1
|
||||
*/
|
||||
uint8_t panel_inst;
|
||||
|
|
@ -4956,7 +5035,7 @@ struct dmub_rb_cmd_replay_set_frameupdate_timer {
|
|||
union dmub_replay_cmd_set {
|
||||
/**
|
||||
* Panel Instance.
|
||||
* Panel instance to identify which replay_state to use
|
||||
* Panel isntance to identify which replay_state to use
|
||||
* Currently the support is only for 0 or 1
|
||||
*/
|
||||
uint8_t panel_inst;
|
||||
|
|
@ -5132,7 +5211,7 @@ struct dmub_hw_lock_inst_flags {
|
|||
uint8_t opp_inst;
|
||||
/**
|
||||
* OTG HW instance for global update lock.
|
||||
* TODO: Remove, and reuse otg_inst.
|
||||
* TODO: Remove, and re-use otg_inst.
|
||||
*/
|
||||
uint8_t dig_inst;
|
||||
/**
|
||||
|
|
@ -6063,6 +6142,399 @@ struct dmub_rb_cmd_abm_set_event {
|
|||
struct dmub_cmd_abm_set_event_data abm_set_event_data;
|
||||
};
|
||||
|
||||
/**
|
||||
* CACP command sub-types.
|
||||
*/
|
||||
enum dmub_cmd_cacp_type {
|
||||
/**
|
||||
* Initialize parameters for CACP algorithm.
|
||||
* Data is passed through an indirect buffer.
|
||||
*/
|
||||
DMUB_CMD__CACP_INIT_CONFIG = 0,
|
||||
/**
|
||||
* Set OTG and panel HW instance.
|
||||
*/
|
||||
DMUB_CMD__CACP_SET_PIPE = 1,
|
||||
/**
|
||||
* Set CACP operating/aggression level.
|
||||
*/
|
||||
DMUB_CMD__CACP_SET_LEVEL = 2,
|
||||
/**
|
||||
* Set event: full-screen/video mode/Hdr mode
|
||||
*/
|
||||
DMUB_CMD__CACP_SET_EVENT = 3,
|
||||
|
||||
/**
|
||||
* unregister vertical interrupt after steady state is reached
|
||||
*/
|
||||
DMUB_CMD__CACP_PAUSE = 4,
|
||||
/**
|
||||
* Set backlight: only for miniLED
|
||||
*/
|
||||
DMUB_CMD__CACP_SET_BACKLIGHT = 5,
|
||||
/**
|
||||
* Enable/disable fractional duty cycle for backlight PWM.
|
||||
*/
|
||||
DMUB_CMD__CACP_SET_PWM_FRAC = 6,
|
||||
/**
|
||||
* Get CACP Histogram
|
||||
*/
|
||||
DMUB_CMD__CACP_GET_HISTOGRAM = 7,
|
||||
};
|
||||
|
||||
/**
|
||||
* Data passed from driver to FW in a DMUB_CMD__CACP_SET_PIPE command.
|
||||
*/
|
||||
struct dmub_cmd_cacp_set_pipe_data {
|
||||
/**
|
||||
* OTG HW instance.
|
||||
*/
|
||||
uint8_t otg_inst;
|
||||
|
||||
/**
|
||||
* Panel Control HW instance.
|
||||
*/
|
||||
uint8_t panel_inst;
|
||||
|
||||
/**
|
||||
* Controls how CACP will interpret a set pipe or set level command.
|
||||
*/
|
||||
uint8_t set_pipe_option;
|
||||
|
||||
/**
|
||||
* PwrSeq HW Instance.
|
||||
*/
|
||||
uint8_t pwrseq_inst;
|
||||
};
|
||||
|
||||
/**
|
||||
* Definition of a DMUB_CMD__CACP_SET_PIPE command.
|
||||
*/
|
||||
struct dmub_rb_cmd_cacp_set_pipe {
|
||||
/**
|
||||
* Command header.
|
||||
*/
|
||||
struct dmub_cmd_header header;
|
||||
|
||||
/**
|
||||
* Data passed from driver to FW in a DMUB_CMD__CACP_PIPE command.
|
||||
*/
|
||||
struct dmub_cmd_cacp_set_pipe_data cacp_set_pipe_data;
|
||||
};
|
||||
|
||||
/**
|
||||
* Data passed from driver to FW in a DMUB_CMD__CACP_SET_LEVEL command.
|
||||
*/
|
||||
struct dmub_cmd_cacp_set_level_data {
|
||||
/**
|
||||
* Set current cacp operating/aggression level.
|
||||
*/
|
||||
uint32_t level;
|
||||
|
||||
/**
|
||||
* CACP control version.
|
||||
*/
|
||||
uint8_t version;
|
||||
|
||||
/**
|
||||
* Panel Control HW instance mask.
|
||||
* Bit 0 is Panel Control HW instance 0.
|
||||
* Bit 1 is Panel Control HW instance 1.
|
||||
*/
|
||||
uint8_t panel_mask;
|
||||
|
||||
/**
|
||||
* Explicit padding to 4 byte boundary.
|
||||
*/
|
||||
uint8_t pad[2];
|
||||
};
|
||||
|
||||
/**
|
||||
* Definition of a DMUB_CMD__CACP_SET_LEVEL command.
|
||||
*/
|
||||
struct dmub_rb_cmd_cacp_set_level {
|
||||
/**
|
||||
* Command header.
|
||||
*/
|
||||
struct dmub_cmd_header header;
|
||||
|
||||
/**
|
||||
* Data passed from driver to FW in a DMUB_CMD__CACP_SET_LEVEL command.
|
||||
*/
|
||||
struct dmub_cmd_cacp_set_level_data cacp_set_level_data;
|
||||
};
|
||||
|
||||
/**
|
||||
* Data passed from driver to FW in a DMUB_CMD__CACP_SET_EVENT command.
|
||||
*/
|
||||
struct dmub_cmd_cacp_set_event_data {
|
||||
/**
|
||||
* Full screen mode
|
||||
*/
|
||||
uint8_t full_screen_mode;
|
||||
|
||||
/**
|
||||
* VariBright Scaling Enable
|
||||
*/
|
||||
uint8_t vb_scaling_enable;
|
||||
|
||||
/**
|
||||
* HDR mode
|
||||
*/
|
||||
uint8_t hdr_mode;
|
||||
|
||||
/**
|
||||
* Panel Control HW instance mask.
|
||||
* Bit 0 is Panel Control HW instance 0.
|
||||
* Bit 1 is Panel Control HW instance 1.
|
||||
*/
|
||||
uint8_t panel_mask;
|
||||
|
||||
/**
|
||||
* Transition time info
|
||||
*/
|
||||
uint32_t trans_info;
|
||||
};
|
||||
|
||||
/**
|
||||
* Definition of a DMUB_CMD__CACP_SET_EVENT command.
|
||||
*/
|
||||
struct dmub_rb_cmd_cacp_set_event {
|
||||
/**
|
||||
* Command header.
|
||||
*/
|
||||
struct dmub_cmd_header header;
|
||||
|
||||
/**
|
||||
* Data passed from driver to FW in a DMUB_CMD__CACP_SET_EVENT command.
|
||||
*/
|
||||
struct dmub_cmd_cacp_set_event_data cacp_set_event_data;
|
||||
};
|
||||
|
||||
/**
|
||||
* Data passed from driver to FW in a DMUB_CMD__CACP_INIT_CONFIG command.
|
||||
*/
|
||||
struct dmub_cmd_cacp_init_config_data {
|
||||
/**
|
||||
* Location of indirect buffer used to pass init data to CACP.
|
||||
*/
|
||||
union dmub_addr src;
|
||||
|
||||
/**
|
||||
* Indirect buffer length.
|
||||
*/
|
||||
uint16_t bytes;
|
||||
|
||||
/**
|
||||
* CACP control version.
|
||||
*/
|
||||
uint8_t mode;
|
||||
|
||||
/**
|
||||
* Panel Control HW instance mask.
|
||||
* Bit 0 is Panel Control HW instance 0.
|
||||
* Bit 1 is Panel Control HW instance 1.
|
||||
*/
|
||||
uint8_t panel_mask;
|
||||
|
||||
/**
|
||||
* CACP visual_confirm debug
|
||||
*/
|
||||
uint32_t visual_confirm;
|
||||
|
||||
/**
|
||||
* CACP customized str_scl params
|
||||
*/
|
||||
uint8_t strscl_valid;
|
||||
uint8_t pad[3];
|
||||
uint8_t strscl_sdr[4];
|
||||
uint8_t strscl_hdr[4];
|
||||
};
|
||||
|
||||
/**
|
||||
* Definition of a DMUB_CMD__CACP_INIT_CONFIG command.
|
||||
*/
|
||||
struct dmub_rb_cmd_cacp_init_config {
|
||||
/**
|
||||
* Command header.
|
||||
*/
|
||||
struct dmub_cmd_header header;
|
||||
|
||||
/**
|
||||
* Data passed from driver to FW in a DMUB_CMD__CACP_INIT_CONFIG command.
|
||||
*/
|
||||
struct dmub_cmd_cacp_init_config_data cacp_init_config_data;
|
||||
};
|
||||
|
||||
/**
|
||||
* Data passed from driver to FW in a DMUB_CMD__CACP_PAUSE command.
|
||||
*/
|
||||
|
||||
struct dmub_cmd_cacp_pause_data {
|
||||
|
||||
/**
|
||||
* Panel Control HW instance mask.
|
||||
* Bit 0 is Panel Control HW instance 0.
|
||||
* Bit 1 is Panel Control HW instance 1.
|
||||
*/
|
||||
uint8_t panel_mask;
|
||||
|
||||
/**
|
||||
* OTG hw instance
|
||||
*/
|
||||
uint8_t otg_inst;
|
||||
|
||||
/**
|
||||
* Enable or disable CACP pause
|
||||
*/
|
||||
uint8_t enable;
|
||||
|
||||
/**
|
||||
* Explicit padding to 4 byte boundary.
|
||||
*/
|
||||
uint8_t pad;
|
||||
};
|
||||
|
||||
/**
|
||||
* Definition of a DMUB_CMD__CACP_PAUSE command.
|
||||
*/
|
||||
struct dmub_rb_cmd_cacp_pause {
|
||||
/**
|
||||
* Command header.
|
||||
*/
|
||||
struct dmub_cmd_header header;
|
||||
|
||||
/**
|
||||
* Data passed from driver to FW in a DMUB_CMD__CACP_PAUSE command.
|
||||
*/
|
||||
struct dmub_cmd_cacp_pause_data cacp_pause_data;
|
||||
};
|
||||
|
||||
/**
|
||||
* Data passed from driver to FW in a DMUB_CMD__CACP_SET_BACKLIGHT command.
|
||||
*/
|
||||
struct dmub_cmd_cacp_set_backlight_data {
|
||||
/**
|
||||
* Number of frames to ramp to backlight user level.
|
||||
*/
|
||||
uint32_t frame_ramp;
|
||||
|
||||
/**
|
||||
* Requested backlight level from user.
|
||||
*/
|
||||
uint32_t backlight_user_level;
|
||||
|
||||
/**
|
||||
* ABM control version.
|
||||
*/
|
||||
uint8_t version;
|
||||
|
||||
/**
|
||||
* Panel Control HW instance mask.
|
||||
* Bit 0 is Panel Control HW instance 0.
|
||||
* Bit 1 is Panel Control HW instance 1.
|
||||
*/
|
||||
uint8_t panel_mask;
|
||||
|
||||
/**
|
||||
* Explicit padding to 4 byte boundary.
|
||||
*/
|
||||
uint8_t pad[2];
|
||||
};
|
||||
|
||||
/**
|
||||
* Definition of a DMUB_CMD__CACP_SET_BACKLIGHT command.
|
||||
*/
|
||||
struct dmub_rb_cmd_cacp_set_backlight {
|
||||
/**
|
||||
* Command header.
|
||||
*/
|
||||
struct dmub_cmd_header header;
|
||||
|
||||
/**
|
||||
* Data passed from driver to FW in a DMUB_CMD__CACP_SET_BACKLIGHT command.
|
||||
*/
|
||||
struct dmub_cmd_cacp_set_backlight_data cacp_set_backlight_data;
|
||||
};
|
||||
|
||||
/**
|
||||
* Data passed from driver to FW in a DMUB_CMD__CACP_SET_PWM_FRAC command.
|
||||
*/
|
||||
struct dmub_cmd_cacp_set_pwm_frac_data {
|
||||
/**
|
||||
* Enable/disable fractional duty cycle for backlight PWM.
|
||||
* TODO: Convert to uint8_t.
|
||||
*/
|
||||
uint32_t fractional_pwm;
|
||||
|
||||
/**
|
||||
* CACP control version.
|
||||
*/
|
||||
uint8_t version;
|
||||
|
||||
/**
|
||||
* Panel Control HW instance mask.
|
||||
* Bit 0 is Panel Control HW instance 0.
|
||||
* Bit 1 is Panel Control HW instance 1.
|
||||
*/
|
||||
uint8_t panel_mask;
|
||||
|
||||
/**
|
||||
* Explicit padding to 4 byte boundary.
|
||||
*/
|
||||
uint8_t pad[2];
|
||||
};
|
||||
|
||||
/**
|
||||
* Definition of a DMUB_CMD__CACP_SET_PWM_FRAC command.
|
||||
*/
|
||||
struct dmub_rb_cmd_cacp_set_pwm_frac {
|
||||
/**
|
||||
* Command header.
|
||||
*/
|
||||
struct dmub_cmd_header header;
|
||||
|
||||
/**
|
||||
* Data passed from driver to FW in a DMUB_CMD__CACP_SET_PWM_FRAC command.
|
||||
*/
|
||||
struct dmub_cmd_cacp_set_pwm_frac_data cacp_set_pwm_frac_data;
|
||||
};
|
||||
|
||||
/**
|
||||
* Definition of a DMUB_CMD__CACP_GET_HISTOGRAM command.
|
||||
*/
|
||||
struct dmub_rb_cmd_cacp_get_histogram {
|
||||
/**
|
||||
* Command header.
|
||||
*/
|
||||
struct dmub_cmd_header header;
|
||||
|
||||
/**
|
||||
* Address where Histogram should be copied.
|
||||
*/
|
||||
union dmub_addr dest;
|
||||
|
||||
/**
|
||||
* Type of Histogram being queried.
|
||||
*/
|
||||
enum dmub_abm_histogram_type histogram_type;
|
||||
|
||||
/**
|
||||
* Indirect buffer length.
|
||||
*/
|
||||
uint16_t bytes;
|
||||
|
||||
/**
|
||||
* eDP panel instance.
|
||||
*/
|
||||
uint8_t panel_inst;
|
||||
|
||||
/**
|
||||
* Explicit padding to 4 byte boundary.
|
||||
*/
|
||||
uint8_t pad;
|
||||
};
|
||||
|
||||
/**
|
||||
* Data passed from driver to FW in a DMUB_CMD__QUERY_FEATURE_CAPS command.
|
||||
*/
|
||||
|
|
@ -6328,7 +6800,7 @@ struct dmub_cmd_cable_id_input {
|
|||
};
|
||||
|
||||
/**
|
||||
* struct dmub_cmd_cable_id_output - Defines the output of DMUB_CMD_GET_USBC_CABLE_ID command.
|
||||
* struct dmub_cmd_cable_id_input - Defines the output of DMUB_CMD_GET_USBC_CABLE_ID command.
|
||||
*/
|
||||
struct dmub_cmd_cable_id_output {
|
||||
uint8_t UHBR10_20_CAPABILITY :2; /**< b'01 for UHBR10 support, b'10 for both UHBR10 and UHBR20 support */
|
||||
|
|
@ -6619,7 +7091,7 @@ struct dmub_cmd_pr_enable_data {
|
|||
uint8_t enable;
|
||||
/**
|
||||
* Panel Instance.
|
||||
* Panel instance to identify which replay_state to use
|
||||
* Panel isntance to identify which replay_state to use
|
||||
* Currently the support is only for 0 or 1
|
||||
*/
|
||||
uint8_t panel_inst;
|
||||
|
|
@ -6697,7 +7169,7 @@ struct dmub_cmd_pr_copy_settings_data {
|
|||
uint8_t aux_inst;
|
||||
/**
|
||||
* Panel Instance.
|
||||
* Panel instance to identify which psr_state to use
|
||||
* Panel isntance to identify which psr_state to use
|
||||
* Currently the support is only for 0 or 1
|
||||
*/
|
||||
uint8_t panel_inst;
|
||||
|
|
@ -6706,7 +7178,7 @@ struct dmub_cmd_pr_copy_settings_data {
|
|||
*/
|
||||
uint8_t dpphy_inst;
|
||||
/**
|
||||
* Determines if SMU optimizations are enabled/disabled.
|
||||
* Determines if SMU optimzations are enabled/disabled.
|
||||
*/
|
||||
uint8_t smu_optimizations_en;
|
||||
/**
|
||||
|
|
@ -6714,7 +7186,7 @@ struct dmub_cmd_pr_copy_settings_data {
|
|||
*/
|
||||
uint32_t line_time_in_ns;
|
||||
/*
|
||||
* Use FSFT after pixel clk
|
||||
* Use FSFT afftet pixel clk
|
||||
*/
|
||||
uint32_t pix_clk_100hz;
|
||||
/*
|
||||
|
|
@ -6787,7 +7259,7 @@ union dmub_pr_runtime_flags {
|
|||
struct dmub_cmd_pr_update_state_data {
|
||||
/**
|
||||
* Panel Instance.
|
||||
* Panel instance to identify which psr_state to use
|
||||
* Panel isntance to identify which psr_state to use
|
||||
* Currently the support is only for 0 or 1
|
||||
*/
|
||||
uint8_t panel_inst;
|
||||
|
|
@ -6802,6 +7274,7 @@ struct dmub_cmd_pr_update_state_data {
|
|||
*/
|
||||
uint32_t coasting_vtotal;
|
||||
uint32_t sync_mode;
|
||||
uint32_t pseudo_vtotal;
|
||||
|
||||
union dmub_pr_runtime_flags pr_runtime_flags;
|
||||
};
|
||||
|
|
@ -6809,7 +7282,7 @@ struct dmub_cmd_pr_update_state_data {
|
|||
struct dmub_cmd_pr_general_cmd_data {
|
||||
/**
|
||||
* Panel Instance.
|
||||
* Panel instance to identify which psr_state to use
|
||||
* Panel isntance to identify which psr_state to use
|
||||
* Currently the support is only for 0 or 1
|
||||
*/
|
||||
uint8_t panel_inst;
|
||||
|
|
@ -7134,6 +7607,47 @@ union dmub_rb_cmd {
|
|||
* Definition of a DMUB_CMD__DPIA_HPD_INT_ENABLE command.
|
||||
*/
|
||||
struct dmub_rb_cmd_dpia_hpd_int_enable dpia_hpd_int_enable;
|
||||
|
||||
/**
|
||||
* Definition of a DMUB_CMD__CACP_SET_PIPE command.
|
||||
*/
|
||||
struct dmub_rb_cmd_cacp_set_pipe cacp_set_pipe;
|
||||
|
||||
/**
|
||||
* Definition of a DMUB_CMD__CACP_SET_LEVEL command.
|
||||
*/
|
||||
struct dmub_rb_cmd_cacp_set_level cacp_set_level;
|
||||
|
||||
/**
|
||||
* Definition of a DMUB_CMD__CACP_SET_EVENT command.
|
||||
*/
|
||||
struct dmub_rb_cmd_cacp_set_event cacp_set_event;
|
||||
|
||||
/**
|
||||
* Definition of a DMUB_CMD__CACP_INIT_CONFIG command.
|
||||
*/
|
||||
struct dmub_rb_cmd_cacp_init_config cacp_init_config;
|
||||
|
||||
/**
|
||||
* Definition of a DMUB_CMD__CACP_PAUSE command.
|
||||
*/
|
||||
struct dmub_rb_cmd_cacp_pause cacp_pause;
|
||||
|
||||
/**
|
||||
* Definition of a DMUB_CMD__CACP_SET_BACKLIGHT command.
|
||||
*/
|
||||
struct dmub_rb_cmd_cacp_set_backlight cacp_set_backlight;
|
||||
|
||||
/**
|
||||
* Definition of a DMUB_CMD__CACP_SET_PWM_FRAC command.
|
||||
*/
|
||||
struct dmub_rb_cmd_cacp_set_pwm_frac cacp_set_pwm_frac;
|
||||
|
||||
/**
|
||||
* Definition of a DMUB_CMD__CACP_GET_HISTOGRAM command.
|
||||
*/
|
||||
struct dmub_rb_cmd_cacp_get_histogram cacp_get_histogram;
|
||||
|
||||
/**
|
||||
* Definition of a DMUB_CMD__IDLE_OPT_DCN_NOTIFY_IDLE command.
|
||||
*/
|
||||
|
|
@ -7189,6 +7703,8 @@ union dmub_rb_cmd {
|
|||
|
||||
struct dmub_rb_cmd_ib ib_fams2_config;
|
||||
|
||||
struct dmub_rb_cmd_ib ib_fams2_debug_meta;
|
||||
|
||||
struct dmub_rb_cmd_fams2_drr_update fams2_drr_update;
|
||||
|
||||
struct dmub_rb_cmd_fams2_flip fams2_flip;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user