drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h
Extension
.h
Size
201433 bytes
Lines
8141
Domain
Driver Families
Bucket
drivers/gpu
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct abm_save_restore {
	/**
	 * @flags: Misc. ABM flags.
	 */
	union abm_flags flags;

	/**
	 * @pause: true:  pause ABM and get state
	 *         false: unpause ABM after setting state
	 */
	uint32_t pause;

	/**
	 * @next_ace_slope: Next ACE slopes to be programmed in HW (u3.13)
	 */
	uint32_t next_ace_slope[ABM_NUM_OF_ACE_SEGMENTS];

	/**
	 * @next_ace_thresh: Next ACE thresholds to be programmed in HW (u10.6)
	 */
	uint32_t next_ace_thresh[ABM_NUM_OF_ACE_SEGMENTS];

	/**
	 * @next_ace_offset: Next ACE offsets to be programmed in HW (u10.6)
	 */
	uint32_t next_ace_offset[ABM_NUM_OF_ACE_SEGMENTS];


	/**
	 * @knee_threshold: Current x-position of ACE knee (u0.16).
	 */
	uint32_t knee_threshold;
	/**
	 * @current_gain: Current backlight reduction (u16.16).
	 */
	uint32_t current_gain;
	/**
	 * @curr_bl_level: Current actual backlight level converging to target backlight level.
	 */
	uint16_t curr_bl_level;

	/**
	 * @curr_user_bl_level: Current nominal backlight level converging to level requested by user.
	 */
	uint16_t curr_user_bl_level;

};

/**
 * union dmub_addr - DMUB physical/virtual 64-bit address.
 */
union dmub_addr {
	struct {
		uint32_t low_part; /**< Lower 32 bits */
		uint32_t high_part; /**< Upper 32 bits */
	} u; /*<< Low/high bit access */
	uint64_t quad_part; /*<< 64 bit address */
};

/* 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 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
 */
struct dmub_soc_bb_params {
	uint32_t dram_clk_change_blackout_ns;
	uint32_t dram_clk_change_read_only_ns;
	uint32_t dram_clk_change_write_only_ns;
	uint32_t fclk_change_blackout_ns;
	uint32_t g7_ppt_blackout_ns;
	uint32_t stutter_enter_plus_exit_latency_ns;
	uint32_t stutter_exit_latency_ns;
	uint32_t z8_stutter_enter_plus_exit_latency_ns;
	uint32_t z8_stutter_exit_latency_ns;
	uint32_t z8_min_idle_time_ns;
	uint32_t type_b_dram_clk_change_blackout_ns;
	uint32_t type_b_ppt_blackout_ns;
	uint32_t vmin_limit_dispclk_khz;
	uint32_t vmin_limit_dcfclk_khz;
	uint32_t g7_temperature_read_blackout_ns;
};
#pragma pack(pop)

/**
 * Dirty rect definition.
 */
struct dmub_rect {
	/**

Annotation

Implementation Notes