diff options
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/dc.h')
| -rw-r--r-- | drivers/gpu/drm/amd/display/dc/dc.h | 44 | 
1 files changed, 34 insertions, 10 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h index a82352a87808..0416a17b0897 100644 --- a/drivers/gpu/drm/amd/display/dc/dc.h +++ b/drivers/gpu/drm/amd/display/dc/dc.h @@ -39,7 +39,7 @@  #include "inc/hw/dmcu.h"  #include "dml/display_mode_lib.h" -#define DC_VER "3.2.48" +#define DC_VER "3.2.56"  #define MAX_SURFACES 3  #define MAX_PLANES 6 @@ -111,19 +111,20 @@ struct dc_caps {  	bool force_dp_tps4_for_cp2520;  	bool disable_dp_clk_share;  	bool psp_setup_panel_mode; +	bool extended_aux_timeout_support;  #ifdef CONFIG_DRM_AMD_DC_DCN2_0  	bool hw_3d_lut;  #endif  	struct dc_plane_cap planes[MAX_PLANES];  }; -#if defined(CONFIG_DRM_AMD_DC_DCN2_0)  struct dc_bug_wa { +#if defined(CONFIG_DRM_AMD_DC_DCN2_0)  	bool no_connect_phy_config;  	bool dedcn20_305_wa; +#endif  	bool skip_clock_update;  }; -#endif  struct dc_dcc_surface_param {  	struct dc_size surface_size; @@ -219,7 +220,9 @@ struct dc_config {  	bool allow_seamless_boot_optimization;  	bool power_down_display_on_boot;  	bool edp_not_connected; +	bool force_enum_edp;  	bool forced_clocks; +	bool disable_extended_timeout_support; // Used to disable extended timeout and lttpr feature as well  	bool multi_mon_pp_mclk_switch;  }; @@ -227,6 +230,7 @@ enum visual_confirm {  	VISUAL_CONFIRM_DISABLE = 0,  	VISUAL_CONFIRM_SURFACE = 1,  	VISUAL_CONFIRM_HDR = 2, +	VISUAL_CONFIRM_MPCTREE = 4,  };  enum dcc_option { @@ -245,6 +249,19 @@ enum wm_report_mode {  	WM_REPORT_DEFAULT = 0,  	WM_REPORT_OVERRIDE = 1,  }; +enum dtm_pstate{ +	dtm_level_p0 = 0,/*highest voltage*/ +	dtm_level_p1, +	dtm_level_p2, +	dtm_level_p3, +	dtm_level_p4,/*when active_display_count = 0*/ +}; + +enum dcn_pwr_state { +	DCN_PWR_STATE_UNKNOWN = -1, +	DCN_PWR_STATE_MISSION_MODE = 0, +	DCN_PWR_STATE_LOW_POWER = 3, +};  /*   * For any clocks that may differ per pipe @@ -252,11 +269,7 @@ enum wm_report_mode {   */  struct dc_clocks {  	int dispclk_khz; -	int max_supported_dppclk_khz; -	int max_supported_dispclk_khz;  	int dppclk_khz; -	int bw_dppclk_khz; /*a copy of dppclk_khz*/ -	int bw_dispclk_khz;  	int dcfclk_khz;  	int socclk_khz;  	int dcfclk_deep_sleep_khz; @@ -264,12 +277,17 @@ struct dc_clocks {  	int phyclk_khz;  	int dramclk_khz;  	bool p_state_change_support; - +	enum dcn_pwr_state pwr_state;  	/*  	 * Elements below are not compared for the purposes of  	 * optimization required  	 */  	bool prev_p_state_change_support; +	enum dtm_pstate dtm_level; +	int max_supported_dppclk_khz; +	int max_supported_dispclk_khz; +	int bw_dppclk_khz; /*a copy of dppclk_khz*/ +	int bw_dispclk_khz;  };  struct dc_bw_validation_profile { @@ -347,6 +365,7 @@ struct dc_debug_options {  	bool disable_hubp_power_gate;  #ifdef CONFIG_DRM_AMD_DC_DSC_SUPPORT  	bool disable_dsc_power_gate; +	int dsc_min_slice_height_override;  #endif  	bool disable_pplib_wm_range;  	enum wm_report_mode pplib_wm_report_mode; @@ -462,9 +481,7 @@ struct dc {  	struct dc_config config;  	struct dc_debug_options debug;  	struct dc_bounding_box_overrides bb_overrides; -#if defined(CONFIG_DRM_AMD_DC_DCN2_0)  	struct dc_bug_wa work_arounds; -#endif  	struct dc_context *ctx;  #ifdef CONFIG_DRM_AMD_DC_DCN2_0  	struct dc_phy_addr_space_config vm_pa_config; @@ -553,10 +570,16 @@ struct dc_init_data {  };  struct dc_callback_init { +#ifdef CONFIG_DRM_AMD_DC_HDCP +	struct cp_psp cp_psp; +#else  	uint8_t reserved; +#endif  };  struct dc *dc_create(const struct dc_init_data *init_params); +void dc_hardware_init(struct dc *dc); +  int dc_get_vmid_use_vector(struct dc *dc);  #ifdef CONFIG_DRM_AMD_DC_DCN2_0  void dc_setup_vm_context(struct dc *dc, struct dc_virtual_addr_space_config *va_config, int vmid); @@ -565,6 +588,7 @@ int dc_setup_system_context(struct dc *dc, struct dc_phy_addr_space_config *pa_c  #endif  void dc_init_callbacks(struct dc *dc,  		const struct dc_callback_init *init_params); +void dc_deinit_callbacks(struct dc *dc);  void dc_destroy(struct dc **dc);  /*******************************************************************************  |