drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.h

Source file repositories/reference/linux-study-clean/drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.h

File Facts

System
Linux kernel
Corpus path
drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.h
Extension
.h
Size
4555 bytes
Lines
118
Domain
Driver Families
Bucket
drivers/platform
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 uncore_data {
	u64 stored_uncore_data;
	u32 initial_min_freq_khz;
	u32 initial_max_freq_khz;
	int control_cpu;
	bool valid;
	int package_id;
	int die_id;
	int domain_id;
	int cluster_id;
	int instance_id;
	char name[32];
	u16  agent_type_mask;

	struct attribute_group uncore_attr_group;
	struct kobj_attribute max_freq_khz_kobj_attr;
	struct kobj_attribute min_freq_khz_kobj_attr;
	struct kobj_attribute initial_max_freq_khz_kobj_attr;
	struct kobj_attribute initial_min_freq_khz_kobj_attr;
	struct kobj_attribute current_freq_khz_kobj_attr;
	struct kobj_attribute domain_id_kobj_attr;
	struct kobj_attribute fabric_cluster_id_kobj_attr;
	struct kobj_attribute package_id_kobj_attr;
	struct kobj_attribute elc_low_threshold_percent_kobj_attr;
	struct kobj_attribute elc_high_threshold_percent_kobj_attr;
	struct kobj_attribute elc_high_threshold_enable_kobj_attr;
	struct kobj_attribute elc_floor_freq_khz_kobj_attr;
	struct kobj_attribute agent_types_kobj_attr;
	struct kobj_attribute die_id_kobj_attr;
	struct attribute *uncore_attrs[15];
};

#define UNCORE_DOMAIN_ID_INVALID	-1

enum uncore_index {
	UNCORE_INDEX_MIN_FREQ,
	UNCORE_INDEX_MAX_FREQ,
	UNCORE_INDEX_CURRENT_FREQ,
	UNCORE_INDEX_EFF_LAT_CTRL_LOW_THRESHOLD,
	UNCORE_INDEX_EFF_LAT_CTRL_HIGH_THRESHOLD,
	UNCORE_INDEX_EFF_LAT_CTRL_HIGH_THRESHOLD_ENABLE,
	UNCORE_INDEX_EFF_LAT_CTRL_FREQ,
	UNCORE_INDEX_DIE_ID,
};

int uncore_freq_common_init(int (*read)(struct uncore_data *data, unsigned int *value,
					enum uncore_index index),
			    int (*write)(struct uncore_data *data, unsigned int input,
					 enum uncore_index index));
void uncore_freq_common_exit(void);
int uncore_freq_add_entry(struct uncore_data *data, int cpu);
void uncore_freq_remove_die_entry(struct uncore_data *data);

#endif

Annotation

Implementation Notes