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.

Dependency Surface

Detected Declarations

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

Implementation Notes