drivers/gpu/drm/xe/xe_force_wake_types.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/xe/xe_force_wake_types.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/xe/xe_force_wake_types.h
Extension
.h
Size
3899 bytes
Lines
111
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 xe_force_wake_domain {
	/** @id: domain force wake id */
	enum xe_force_wake_domain_id id;
	/** @reg_ctl: domain wake control register address */
	struct xe_reg reg_ctl;
	/** @reg_ack: domain ack register address */
	struct xe_reg reg_ack;
	/** @val: domain wake write value */
	u32 val;
	/** @mask: domain mask */
	u32 mask;
	/** @ref: domain reference */
	u32 ref;
};

/**
 * struct xe_force_wake - Xe force wake collection
 *
 * Represents a collection of related power domains (struct
 * xe_force_wake_domain) associated with a subunit of the device.
 *
 * Currently only used for GT power domains (where the term "forcewake" is used
 * in the hardware documentation), although the interface could be extended to
 * power wells in other parts of the hardware in the future.
 */
struct xe_force_wake {
	/** @gt: back pointers to GT */
	struct xe_gt *gt;
	/** @lock: protects everything force wake struct */
	spinlock_t lock;
	/** @awake_domains: mask of all domains awake */
	unsigned int awake_domains;
	/** @initialized_domains: mask of all initialized domains */
	unsigned int initialized_domains;
	/** @domains: force wake domains */
	struct xe_force_wake_domain domains[XE_FW_DOMAIN_ID_COUNT];
};

#endif

Annotation

Implementation Notes