diff options
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/inc/hw')
| -rw-r--r-- | drivers/gpu/drm/amd/display/dc/inc/hw/abm.h | 21 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h | 16 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/display/dc/inc/hw/panel_cntl.h | 67 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/display/dc/inc/hw/timing_generator.h | 3 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/display/dc/inc/hw/transform.h | 2 | 
6 files changed, 97 insertions, 14 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/abm.h b/drivers/gpu/drm/amd/display/dc/inc/hw/abm.h index d607b3191954..e8ce8c85adf1 100644 --- a/drivers/gpu/drm/amd/display/dc/inc/hw/abm.h +++ b/drivers/gpu/drm/amd/display/dc/inc/hw/abm.h @@ -27,27 +27,17 @@  #include "dm_services_types.h" -struct abm_backlight_registers { -	unsigned int BL_PWM_CNTL; -	unsigned int BL_PWM_CNTL2; -	unsigned int BL_PWM_PERIOD_CNTL; -	unsigned int LVTMA_PWRSEQ_REF_DIV_BL_PWM_REF_DIV; -}; -  struct abm {  	struct dc_context *ctx;  	const struct abm_funcs *funcs;  	bool dmcu_is_running; -	/* registers setting needs to be saved and restored at InitBacklight */ -	struct abm_backlight_registers stored_backlight_registers;  };  struct abm_funcs { -	void (*abm_init)(struct abm *abm); +	void (*abm_init)(struct abm *abm, uint32_t back_light);  	bool (*set_abm_level)(struct abm *abm, unsigned int abm_level); -	bool (*set_abm_immediate_disable)(struct abm *abm); -	bool (*set_pipe)(struct abm *abm, unsigned int controller_id); -	bool (*init_backlight)(struct abm *abm); +	bool (*set_abm_immediate_disable)(struct abm *abm, unsigned int panel_inst); +	bool (*set_pipe)(struct abm *abm, unsigned int controller_id, unsigned int panel_inst);  	/* backlight_pwm_u16_16 is unsigned 32 bit,  	 * 16 bit integer + 16 fractional, where 1.0 is max backlight value. @@ -56,10 +46,13 @@ struct abm_funcs {  			unsigned int backlight_pwm_u16_16,  			unsigned int frame_ramp,  			unsigned int controller_id, -			bool use_smooth_brightness); +			unsigned int panel_inst);  	unsigned int (*get_current_backlight)(struct abm *abm);  	unsigned int (*get_target_backlight)(struct abm *abm); +	bool (*init_abm_config)(struct abm *abm, +			const char *src, +			unsigned int bytes);  };  #endif diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h b/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h index f5dd0cc73c63..47a566d82d6e 100644 --- a/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h +++ b/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h @@ -144,6 +144,8 @@ struct hubbub_funcs {  	void (*allow_self_refresh_control)(struct hubbub *hubbub, bool allow);  	void (*apply_DEDCN21_147_wa)(struct hubbub *hubbub); + +	void (*force_wm_propagate_to_pipes)(struct hubbub *hubbub);  };  struct hubbub { diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h b/drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h index 094afc4c8173..50ee8aa7ec3b 100644 --- a/drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h +++ b/drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h @@ -210,6 +210,22 @@ struct mpc_funcs {  		struct mpcc_blnd_cfg *blnd_cfg,  		int mpcc_id); +	/* +	 * Lock cursor updates for the specified OPP. +	 * OPP defines the set of MPCC that are locked together for cursor. +	 * +	 * Parameters: +	 * [in] 	mpc		- MPC context. +	 * [in]     opp_id	- The OPP to lock cursor updates on +	 * [in]		lock	- lock/unlock the OPP +	 * +	 * Return:  void +	 */ +	void (*cursor_lock)( +			struct mpc *mpc, +			int opp_id, +			bool lock); +  	struct mpcc* (*get_mpcc_for_dpp)(  			struct mpc_tree *tree,  			int dpp_id); diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/panel_cntl.h b/drivers/gpu/drm/amd/display/dc/inc/hw/panel_cntl.h new file mode 100644 index 000000000000..f9ab5abb6462 --- /dev/null +++ b/drivers/gpu/drm/amd/display/dc/inc/hw/panel_cntl.h @@ -0,0 +1,67 @@ +/* + * Copyright 2017 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. + * + */ +/* + * panel_cntl.h + * + *  Created on: Oct 6, 2015 + *      Author: yonsun + */ + +#ifndef DC_PANEL_CNTL_H_ +#define DC_PANEL_CNTL_H_ + +#include "dc_types.h" + +#define MAX_BACKLIGHT_LEVEL 0xFFFF + +struct panel_cntl_backlight_registers { +	unsigned int BL_PWM_CNTL; +	unsigned int BL_PWM_CNTL2; +	unsigned int BL_PWM_PERIOD_CNTL; +	unsigned int LVTMA_PWRSEQ_REF_DIV_BL_PWM_REF_DIV; +}; + +struct panel_cntl_funcs { +	void (*destroy)(struct panel_cntl **panel_cntl); +	uint32_t (*hw_init)(struct panel_cntl *panel_cntl); +	bool (*is_panel_backlight_on)(struct panel_cntl *panel_cntl); +	bool (*is_panel_powered_on)(struct panel_cntl *panel_cntl); +	void (*store_backlight_level)(struct panel_cntl *panel_cntl); +	void (*driver_set_backlight)(struct panel_cntl *panel_cntl, +			uint32_t backlight_pwm_u16_16); +}; + +struct panel_cntl_init_data { +	struct dc_context *ctx; +	uint32_t inst; +}; + +struct panel_cntl { +	const struct panel_cntl_funcs *funcs; +	struct dc_context *ctx; +	uint32_t inst; +	/* registers setting needs to be saved and restored at InitBacklight */ +	struct panel_cntl_backlight_registers stored_backlight_registers; +}; + +#endif /* DC_PANEL_CNTL_H_ */ diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/timing_generator.h b/drivers/gpu/drm/amd/display/dc/inc/hw/timing_generator.h index e5e7d94026fc..f803191e3134 100644 --- a/drivers/gpu/drm/amd/display/dc/inc/hw/timing_generator.h +++ b/drivers/gpu/drm/amd/display/dc/inc/hw/timing_generator.h @@ -117,6 +117,9 @@ struct crc_params {  	enum crc_selection selection; +	uint8_t dsc_mode; +	uint8_t odm_mode; +  	bool continuous_mode;  	bool enable;  }; diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/transform.h b/drivers/gpu/drm/amd/display/dc/inc/hw/transform.h index fecc80c47c26..2947d1b15512 100644 --- a/drivers/gpu/drm/amd/display/dc/inc/hw/transform.h +++ b/drivers/gpu/drm/amd/display/dc/inc/hw/transform.h @@ -173,6 +173,8 @@ struct scaler_data {  	struct scaling_taps taps;  	struct rect viewport;  	struct rect viewport_c; +	struct rect viewport_unadjusted; +	struct rect viewport_c_unadjusted;  	struct rect recout;  	struct scaling_ratios ratios;  	struct scl_inits inits;  |