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.
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
asm/byteorder.hlinux/types.hlinux/string.hlinux/delay.hatomfirmware.h
Detected Declarations
struct abm_save_restorestruct dmub_soc_bb_paramsstruct dmub_rectstruct dmub_feature_capsstruct dmub_visual_confirm_colorstruct dmub_cursor_offload_pipe_data_dcn30_v1struct dmub_cursor_offload_pipe_data_dcn401_v1struct dmub_cursor_offload_pipe_data_v1struct dmub_cursor_offload_payload_data_v1struct dmub_cursor_offload_stream_v1struct dmub_cursor_offload_v1struct dmub_fw_meta_infostruct dmcub_trace_buf_entrystruct dmub_shared_state_debug_setupstruct dmub_shared_state_ips_fwstruct dmub_shared_state_ips_driverstruct dmub_shared_state_cursor_offload_stream_v1struct dmub_shared_state_cursor_offload_v1struct dmub_shared_state_feature_commonstruct dmub_shared_state_feature_headerstruct dmub_shared_state_feature_blockstruct dmub_cmd_headerstruct dmub_cmd_read_modify_write_sequencestruct dmub_rb_cmd_read_modify_writestruct dmub_cmd_reg_field_update_sequencestruct dmub_rb_cmd_reg_field_update_sequencestruct dmub_rb_cmd_burst_writestruct dmub_rb_cmd_commonstruct dmub_cmd_reg_wait_datastruct dmub_rb_cmd_reg_waitstruct dmub_cmd_PLAT_54186_wastruct dmub_rb_cmd_PLAT_54186_wastruct dmub_rb_cmd_mallstruct dmub_rb_cmd_cab_for_ssstruct dmub_cmd_fw_assisted_mclk_switch_pipe_data_v2struct dmub_cmd_fw_assisted_mclk_switch_config_v2struct dmub_rb_cmd_fw_assisted_mclk_switch_v2struct dmub_flip_addr_infostruct dmub_fams2_flip_infostruct dmub_rb_cmd_fams2_flipstruct dmub_cmd_lsdma_datastruct lsdma_init_datastruct lsdma_tiled_copy_datastruct lsdma_linear_copy_datastruct lsdma_linear_sub_window_copy_datastruct lsdma_reg_write_datastruct lsdma_pio_copy_datastruct lsdma_pio_constfill_data
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
- Immediate include surface: `asm/byteorder.h`, `linux/types.h`, `linux/string.h`, `linux/delay.h`, `atomfirmware.h`.
- Detected declarations: `struct abm_save_restore`, `struct dmub_soc_bb_params`, `struct dmub_rect`, `struct dmub_feature_caps`, `struct dmub_visual_confirm_color`, `struct dmub_cursor_offload_pipe_data_dcn30_v1`, `struct dmub_cursor_offload_pipe_data_dcn401_v1`, `struct dmub_cursor_offload_pipe_data_v1`, `struct dmub_cursor_offload_payload_data_v1`, `struct dmub_cursor_offload_stream_v1`.
- Atlas domain: Driver Families / drivers/gpu.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.