drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.h- Extension
.h- Size
- 14179 bytes
- Lines
- 448
- 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
hwmgr.hsmu9_driver_if.hppatomctrl.hppatomfwctrl.hvega10_ppsmc.hvega10_powertune.h
Detected Declarations
struct smu_featuresstruct vega10_performance_levelstruct vega10_bacosstruct vega10_uvd_clocksstruct vega10_vce_clocksstruct vega10_power_statestruct vega10_dpm_levelstruct vega10_dpm_statestruct vega10_single_dpm_tablestruct vega10_pcie_tablestruct vega10_dpm_tablestruct vega10_leakage_voltagestruct vega10_display_timingstruct vega10_dpmlevel_enable_maskstruct vega10_vbios_boot_statestruct vega10_smc_state_tablestruct vega10_mclk_latency_entriesstruct vega10_mclk_latency_tablestruct vega10_registry_datastruct vega10_odn_clock_voltage_dependency_tablestruct vega10_odn_vddc_lookup_tablestruct vega10_odn_dpm_tablestruct vega10_odn_fan_tablestruct vega10_hwmgr
Annotated Snippet
struct smu_features {
bool supported;
bool enabled;
uint32_t smu_feature_id;
uint32_t smu_feature_bitmap;
};
struct vega10_performance_level {
uint32_t soc_clock;
uint32_t gfx_clock;
uint32_t mem_clock;
};
struct vega10_bacos {
uint32_t baco_flags;
/* struct vega10_performance_level performance_level; */
};
struct vega10_uvd_clocks {
uint32_t vclk;
uint32_t dclk;
};
struct vega10_vce_clocks {
uint32_t evclk;
uint32_t ecclk;
};
struct vega10_power_state {
uint32_t magic;
struct vega10_uvd_clocks uvd_clks;
struct vega10_vce_clocks vce_clks;
uint16_t performance_level_count;
bool dc_compatible;
uint32_t sclk_threshold;
struct vega10_performance_level performance_levels[VEGA10_MAX_HARDWARE_POWERLEVELS];
};
struct vega10_dpm_level {
bool enabled;
uint32_t value;
uint32_t param1;
};
#define VEGA10_MAX_DEEPSLEEP_DIVIDER_ID 5
#define MAX_REGULAR_DPM_NUMBER 8
#define MAX_PCIE_CONF 2
#define VEGA10_MINIMUM_ENGINE_CLOCK 2500
struct vega10_dpm_state {
uint32_t soft_min_level;
uint32_t soft_max_level;
uint32_t hard_min_level;
uint32_t hard_max_level;
};
struct vega10_single_dpm_table {
uint32_t count;
struct vega10_dpm_state dpm_state;
struct vega10_dpm_level dpm_levels[MAX_REGULAR_DPM_NUMBER];
};
struct vega10_pcie_table {
uint16_t count;
uint8_t pcie_gen[MAX_PCIE_CONF];
uint8_t pcie_lane[MAX_PCIE_CONF];
uint32_t lclk[MAX_PCIE_CONF];
};
struct vega10_dpm_table {
struct vega10_single_dpm_table soc_table;
struct vega10_single_dpm_table gfx_table;
struct vega10_single_dpm_table mem_table;
struct vega10_single_dpm_table eclk_table;
struct vega10_single_dpm_table vclk_table;
struct vega10_single_dpm_table dclk_table;
struct vega10_single_dpm_table dcef_table;
struct vega10_single_dpm_table pixel_table;
struct vega10_single_dpm_table display_table;
struct vega10_single_dpm_table phy_table;
struct vega10_pcie_table pcie_table;
};
#define VEGA10_MAX_LEAKAGE_COUNT 8
struct vega10_leakage_voltage {
uint16_t count;
uint16_t leakage_id[VEGA10_MAX_LEAKAGE_COUNT];
uint16_t actual_voltage[VEGA10_MAX_LEAKAGE_COUNT];
};
Annotation
- Immediate include surface: `hwmgr.h`, `smu9_driver_if.h`, `ppatomctrl.h`, `ppatomfwctrl.h`, `vega10_ppsmc.h`, `vega10_powertune.h`.
- Detected declarations: `struct smu_features`, `struct vega10_performance_level`, `struct vega10_bacos`, `struct vega10_uvd_clocks`, `struct vega10_vce_clocks`, `struct vega10_power_state`, `struct vega10_dpm_level`, `struct vega10_dpm_state`, `struct vega10_single_dpm_table`, `struct vega10_pcie_table`.
- 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.