diff options
Diffstat (limited to 'drivers/gpu/drm/amd/display/dmub/dmub_srv.h')
| -rw-r--r-- | drivers/gpu/drm/amd/display/dmub/dmub_srv.h | 11 | 
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/display/dmub/dmub_srv.h b/drivers/gpu/drm/amd/display/dmub/dmub_srv.h index 26d94eb5ab58..73b5d500ccf6 100644 --- a/drivers/gpu/drm/amd/display/dmub/dmub_srv.h +++ b/drivers/gpu/drm/amd/display/dmub/dmub_srv.h @@ -280,6 +280,7 @@ struct dmub_srv_hw_funcs {   * @hw_funcs: optional overrides for hw funcs   * @user_ctx: context data for callback funcs   * @asic: driver supplied asic + * @fw_version: the current firmware version, if any   * @is_virtual: false for hw support only   */  struct dmub_srv_create_params { @@ -287,6 +288,7 @@ struct dmub_srv_create_params {  	struct dmub_srv_hw_funcs *hw_funcs;  	void *user_ctx;  	enum dmub_asic asic; +	uint32_t fw_version;  	bool is_virtual;  }; @@ -310,12 +312,14 @@ struct dmub_srv_hw_params {   * struct dmub_srv - software state for dmcub   * @asic: dmub asic identifier   * @user_ctx: user provided context for the dmub_srv + * @fw_version: the current firmware version, if any   * @is_virtual: false if hardware support only   * @fw_state: dmub firmware state pointer   */  struct dmub_srv {  	enum dmub_asic asic;  	void *user_ctx; +	uint32_t fw_version;  	bool is_virtual;  	struct dmub_fb scratch_mem_fb;  	volatile const struct dmub_fw_state *fw_state; @@ -336,6 +340,13 @@ struct dmub_srv {  };  /** + * DMUB firmware version helper macro - useful for checking if the version + * of a firmware to know if feature or functionality is supported or present. + */ +#define DMUB_FW_VERSION(major, minor, revision) \ +	((((major) & 0xFF) << 24) | (((minor) & 0xFF) << 16) | ((revision) & 0xFFFF)) + +/**   * dmub_srv_create() - creates the DMUB service.   * @dmub: the dmub service   * @params: creation parameters for the service  |