drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h- Extension
.h- Size
- 21814 bytes
- Lines
- 618
- 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.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
struct amdgpu_psstruct amdgpu_dpm_thermalstruct amdgpu_clock_and_voltage_limitsstruct amdgpu_clock_arraystruct amdgpu_clock_voltage_dependency_entrystruct amdgpu_clock_voltage_dependency_tablestruct amdgpu_cac_leakage_tablestruct amdgpu_phase_shedding_limits_entrystruct amdgpu_phase_shedding_limits_tablestruct amdgpu_uvd_clock_voltage_dependency_entrystruct amdgpu_uvd_clock_voltage_dependency_tablestruct amdgpu_vce_clock_voltage_dependency_entrystruct amdgpu_vce_clock_voltage_dependency_tablestruct amdgpu_ppm_tablestruct amdgpu_cac_tdp_tablestruct amdgpu_dpm_dynamic_statestruct amdgpu_dpm_fanstruct amdgpu_dpmstruct amdgpu_smu_i2c_busstruct config_table_settingstruct amdgpu_pmenum gfx_change_stateenum amdgpu_int_thermal_typeenum amdgpu_runpm_modeenum ip_power_state
Annotated Snippet
struct amdgpu_ps {
u32 caps; /* vbios flags */
u32 class; /* vbios flags */
u32 class2; /* vbios flags */
/* UVD clocks */
u32 vclk;
u32 dclk;
/* VCE clocks */
u32 evclk;
u32 ecclk;
bool vce_active;
enum amd_vce_level vce_level;
/* asic priv */
void *ps_priv;
};
struct amdgpu_dpm_thermal {
/* thermal interrupt work */
struct work_struct work;
/* low temperature threshold */
int min_temp;
/* high temperature threshold */
int max_temp;
/* edge max emergency(shutdown) temp */
int max_edge_emergency_temp;
/* hotspot low temperature threshold */
int min_hotspot_temp;
/* hotspot high temperature critical threshold */
int max_hotspot_crit_temp;
/* hotspot max emergency(shutdown) temp */
int max_hotspot_emergency_temp;
/* memory low temperature threshold */
int min_mem_temp;
/* memory high temperature critical threshold */
int max_mem_crit_temp;
/* memory max emergency(shutdown) temp */
int max_mem_emergency_temp;
/* SWCTF threshold */
int sw_ctf_threshold;
/* was last interrupt low to high or high to low */
bool high_to_low;
/* interrupt source */
struct amdgpu_irq_src irq;
};
struct amdgpu_clock_and_voltage_limits {
u32 sclk;
u32 mclk;
u16 vddc;
u16 vddci;
};
struct amdgpu_clock_array {
u32 count;
u32 *values;
};
struct amdgpu_clock_voltage_dependency_entry {
u32 clk;
u16 v;
};
struct amdgpu_clock_voltage_dependency_table {
u32 count;
struct amdgpu_clock_voltage_dependency_entry *entries;
};
union amdgpu_cac_leakage_entry {
struct {
u16 vddc;
u32 leakage;
};
struct {
u16 vddc1;
u16 vddc2;
u16 vddc3;
};
};
struct amdgpu_cac_leakage_table {
u32 count;
union amdgpu_cac_leakage_entry *entries;
};
struct amdgpu_phase_shedding_limits_entry {
u16 voltage;
u32 sclk;
u32 mclk;
};
Annotation
- Detected declarations: `struct amdgpu_ps`, `struct amdgpu_dpm_thermal`, `struct amdgpu_clock_and_voltage_limits`, `struct amdgpu_clock_array`, `struct amdgpu_clock_voltage_dependency_entry`, `struct amdgpu_clock_voltage_dependency_table`, `struct amdgpu_cac_leakage_table`, `struct amdgpu_phase_shedding_limits_entry`, `struct amdgpu_phase_shedding_limits_table`, `struct amdgpu_uvd_clock_voltage_dependency_entry`.
- Atlas domain: Driver Families / drivers/gpu.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
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.