drivers/gpu/drm/xe/xe_gt_types.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/xe/xe_gt_types.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/xe/xe_gt_types.h- Extension
.h- Size
- 11348 bytes
- Lines
- 385
- 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
xe_device_types.hxe_force_wake_types.hxe_gt_idle_types.hxe_gt_sriov_pf_types.hxe_gt_sriov_vf_types.hxe_gt_stats_types.hxe_hw_engine_types.hxe_hw_fence_types.hxe_oa_types.hxe_reg_sr_types.hxe_sa_types.hxe_tlb_inval_types.hxe_uc_types.h
Detected Declarations
struct xe_exec_queue_opsstruct xe_migratestruct xe_ring_opsstruct xe_gtenum xe_gt_typeenum xe_gt_eu_typeenum xe_steering_type
Annotated Snippet
struct xe_gt {
/** @tile: Backpointer to GT's tile */
struct xe_tile *tile;
/** @info: GT info */
struct {
/** @info.type: type of GT */
enum xe_gt_type type;
/** @info.reference_clock: clock frequency */
u32 reference_clock;
/** @info.timestamp_base: GT timestamp base */
u32 timestamp_base;
/**
* @info.engine_mask: mask of engines present on GT. Some of
* them may be reserved in runtime and not available for user.
* See @user_engines.mask
*/
u64 engine_mask;
/** @info.gmdid: raw GMD_ID value from hardware */
u32 gmdid;
/**
* @info.multi_queue_engine_class_mask: Bitmask of engine classes with
* multi queue support enabled.
*/
u16 multi_queue_engine_class_mask;
/** @info.id: Unique ID of this GT within the PCI Device */
u8 id;
/** @info.has_indirect_ring_state: GT has indirect ring state support */
u8 has_indirect_ring_state:1;
/**
* @info.has_xe2_blt_instructions: GT supports Xe2-style MEM_SET
* and MEM_COPY blitter functionality. Note that despite the
* name, some Xe1 platforms may also support this "Xe2-style"
* feature.
*/
u8 has_xe2_blt_instructions:1;
/**
* @info.num_geometry_xecore_fuse_regs: Number of 32b-bit fuse
* registers the geometry XeCore mask spans.
*/
u8 num_geometry_xecore_fuse_regs;
/**
* @info.num_compute_xecore_fuse_regs: Number of 32b-bit fuse
* registers the compute XeCore mask spans.
*/
u8 num_compute_xecore_fuse_regs;
} info;
#if IS_ENABLED(CONFIG_DEBUG_FS)
/** @stats: GT stats */
struct xe_gt_stats __percpu *stats;
#endif
/**
* @mmio: mmio info for GT. All GTs within a tile share the same
* register space, but have their own copy of GSI registers at a
* specific offset.
*/
struct xe_mmio mmio;
/**
* @pm: power management info for GT. The driver uses the GT's
* "force wake" interface to wake up specific parts of the GT hardware
* from C6 sleep states and ensure the hardware remains awake while it
* is being actively used.
*/
struct {
/** @pm.fw: force wake for GT */
struct xe_force_wake fw;
} pm;
/** @sriov: virtualization data related to GT */
union {
/** @sriov.pf: PF data. Valid only if driver is running as PF */
struct xe_gt_sriov_pf pf;
/** @sriov.vf: VF data. Valid only if driver is running as VF */
struct xe_gt_sriov_vf vf;
} sriov;
/**
* @reg_sr: table with registers to be restored on GT init/resume/reset
*/
struct xe_reg_sr reg_sr;
/** @reset: state for GT resets */
struct {
/**
* @reset.worker: work so GT resets can done async allowing to reset
* code to safely flush all code paths
*/
Annotation
- Immediate include surface: `xe_device_types.h`, `xe_force_wake_types.h`, `xe_gt_idle_types.h`, `xe_gt_sriov_pf_types.h`, `xe_gt_sriov_vf_types.h`, `xe_gt_stats_types.h`, `xe_hw_engine_types.h`, `xe_hw_fence_types.h`.
- Detected declarations: `struct xe_exec_queue_ops`, `struct xe_migrate`, `struct xe_ring_ops`, `struct xe_gt`, `enum xe_gt_type`, `enum xe_gt_eu_type`, `enum xe_steering_type`.
- 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.