drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.h- Extension
.h- Size
- 13880 bytes
- Lines
- 466
- 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
amdgpu_atombios.hsislands_smc.h
Detected Declarations
struct ni_leakage_coeffientsstruct SMC_NIslands_MCRegisterAddressstruct rv7xx_power_infostruct rv7xx_plstruct si_psstruct evergreen_power_infostruct ni_power_infostruct si_cac_config_regstruct si_powertune_datastruct si_dyn_powertune_datastruct si_dte_datastruct si_clock_registersstruct si_mc_reg_entrystruct si_mc_reg_tablestruct si_leakage_voltage_entrystruct si_leakage_voltagestruct si_ulv_paramstruct si_power_infoenum ni_dc_cac_levelenum si_cac_config_reg_typeenum si_pcie_gen
Annotated Snippet
struct rv7xx_power_info {
/* flags */
bool voltage_control; /* vddc */
bool mvdd_control;
bool sclk_ss;
bool mclk_ss;
bool dynamic_ss;
bool thermal_protection;
/* voltage */
u32 mvdd_split_frequency;
u16 max_vddc;
u16 max_vddc_in_table;
u16 min_vddc_in_table;
/* stored values */
u16 acpi_vddc;
u32 ref_div;
u32 active_auto_throttle_sources;
u32 mclk_stutter_mode_threshold;
u32 mclk_strobe_mode_threshold;
u32 mclk_edc_enable_threshold;
u32 bsp;
u32 bsu;
u32 pbsp;
u32 pbsu;
u32 dsp;
u32 psp;
u32 asi;
u32 pasi;
u32 vrc;
};
enum si_pcie_gen {
SI_PCIE_GEN1 = 0,
SI_PCIE_GEN2 = 1,
SI_PCIE_GEN3 = 2,
SI_PCIE_GEN_INVALID = 0xffff
};
struct rv7xx_pl {
u32 sclk;
u32 mclk;
u16 vddc;
u16 vddci; /* eg+ only */
u32 flags;
enum si_pcie_gen pcie_gen; /* si+ only */
};
struct si_ps {
u16 performance_level_count;
bool dc_compatible;
struct rv7xx_pl performance_levels[NISLANDS_MAX_SMC_PERFORMANCE_LEVELS_PER_SWSTATE];
};
struct evergreen_power_info {
/* must be first! */
struct rv7xx_power_info rv7xx;
/* flags */
bool vddci_control;
bool dynamic_ac_timing;
bool abm;
bool mcls;
bool pcie_performance_request;
bool sclk_deep_sleep;
bool smu_uvd_hs;
bool uvd_enabled;
/* stored values */
u16 acpi_vddci;
u32 mclk_edc_wr_enable_threshold;
struct atom_voltage_table vddc_voltage_table;
struct atom_voltage_table vddci_voltage_table;
struct amdgpu_ps current_rps;
struct amdgpu_ps requested_rps;
};
struct ni_power_info {
/* must be first! */
struct evergreen_power_info eg;
u32 mclk_rtt_mode_threshold;
/* flags */
bool support_cac_long_term_average;
bool cac_enabled;
bool cac_configuration_required;
bool driver_calculate_cac_leakage;
bool enable_power_containment;
bool enable_cac;
bool enable_sq_ramping;
struct si_ps current_ps;
struct si_ps requested_ps;
};
Annotation
- Immediate include surface: `amdgpu_atombios.h`, `sislands_smc.h`.
- Detected declarations: `struct ni_leakage_coeffients`, `struct SMC_NIslands_MCRegisterAddress`, `struct rv7xx_power_info`, `struct rv7xx_pl`, `struct si_ps`, `struct evergreen_power_info`, `struct ni_power_info`, `struct si_cac_config_reg`, `struct si_powertune_data`, `struct si_dyn_powertune_data`.
- 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.