drivers/gpu/drm/xe/xe_device_types.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/xe/xe_device_types.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/xe/xe_device_types.h- Extension
.h- Size
- 19720 bytes
- Lines
- 638
- 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.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/pci.hdrm/drm_device.hdrm/drm_file.hdrm/ttm/ttm_device.hxe_devcoredump_types.hxe_drm_ras_types.hxe_heci_gsc.hxe_late_bind_fw_types.hxe_oa_types.hxe_pagefault_types.hxe_platform_types.hxe_pmu_types.hxe_pt_types.hxe_sriov_pf_types.hxe_sriov_types.hxe_sriov_vf_types.hxe_sriov_vf_ccs_types.hxe_step_types.hxe_survivability_mode_types.hxe_sysctrl_types.hxe_tile_types.hxe_validation.h
Detected Declarations
struct drm_pagemap_shrinkerstruct intel_displaystruct intel_dg_nvm_devstruct xe_ggttstruct xe_i2cstruct xe_pat_opsstruct xe_pxpstruct xe_ttm_stolen_mgrstruct xe_vram_regionstruct xe_devicestruct intel_device_infostruct xe_bo_devstruct intel_uncorestruct xe_fileenum xe_wedged_mode
Annotated Snippet
struct xe_device {
/** @drm: drm device */
struct drm_device drm;
#if IS_ENABLED(CONFIG_DRM_XE_DISPLAY)
/** @display: display device data, must be placed after drm device member */
struct intel_display *display;
#endif
/** @devcoredump: device coredump */
struct xe_devcoredump devcoredump;
/** @info: device info */
struct intel_device_info {
/** @info.platform_name: platform name */
const char *platform_name;
/** @info.graphics_name: graphics IP name */
const char *graphics_name;
/** @info.media_name: media IP name */
const char *media_name;
/** @info.graphics_verx100: graphics IP version */
u32 graphics_verx100;
/** @info.media_verx100: media IP version */
u32 media_verx100;
/** @info.mem_region_mask: mask of valid memory regions */
u32 mem_region_mask;
/** @info.platform: Xe platform enum */
enum xe_platform platform;
/** @info.subplatform: Xe subplatform enum */
enum xe_subplatform subplatform;
/** @info.devid: device ID */
u16 devid;
/** @info.revid: device revision */
u8 revid;
/** @info.step: stepping information for each IP */
struct xe_step_info step;
/** @info.dma_mask_size: DMA address bits */
u8 dma_mask_size;
/** @info.vram_flags: Vram flags */
u8 vram_flags;
/** @info.tile_count: Number of tiles */
u8 tile_count;
/** @info.max_gt_per_tile: Number of GT IDs allocated to each tile */
u8 max_gt_per_tile;
/** @info.multi_lrc_mask: bitmask of engine classes which support multi-lrc */
u8 multi_lrc_mask;
/** @info.gt_count: Total number of GTs for entire device */
u8 gt_count;
/** @info.vm_max_level: Max VM level */
u8 vm_max_level;
/** @info.va_bits: Maximum bits of a virtual address */
u8 va_bits;
/*
* Keep all flags below alphabetically sorted
*/
/** @info.force_execlist: Forced execlist submission */
u8 force_execlist:1;
/** @info.has_access_counter: Device supports access counter */
u8 has_access_counter:1;
/** @info.has_asid: Has address space ID */
u8 has_asid:1;
/** @info.has_atomic_enable_pte_bit: Device has atomic enable PTE bit */
u8 has_atomic_enable_pte_bit:1;
/** @info.has_cached_pt: Supports caching pagetable */
u8 has_cached_pt:1;
/** @info.has_device_atomics_on_smem: Supports device atomics on SMEM */
u8 has_device_atomics_on_smem:1;
/** @info.has_fan_control: Device supports fan control */
u8 has_fan_control:1;
/** @info.has_flat_ccs: Whether flat CCS metadata is used */
u8 has_flat_ccs:1;
/** @info.has_gsc_nvm: Device has gsc non-volatile memory */
u8 has_gsc_nvm:1;
/** @info.has_heci_cscfi: device has heci cscfi */
u8 has_heci_cscfi:1;
/** @info.has_heci_gscfi: device has heci gscfi */
u8 has_heci_gscfi:1;
/** @info.has_i2c: Device has I2C controller */
u8 has_i2c:1;
/** @info.has_late_bind: Device has firmware late binding support */
u8 has_late_bind:1;
/** @info.has_llc: Device has a shared CPU+GPU last level cache */
u8 has_llc:1;
/** @info.has_mbx_power_limits: Device has support to manage power limits using
* pcode mailbox commands.
*/
u8 has_mbx_power_limits:1;
/** @info.has_mbx_thermal_info: Device supports thermal mailbox commands */
Annotation
- Immediate include surface: `linux/pci.h`, `drm/drm_device.h`, `drm/drm_file.h`, `drm/ttm/ttm_device.h`, `xe_devcoredump_types.h`, `xe_drm_ras_types.h`, `xe_heci_gsc.h`, `xe_late_bind_fw_types.h`.
- Detected declarations: `struct drm_pagemap_shrinker`, `struct intel_display`, `struct intel_dg_nvm_dev`, `struct xe_ggtt`, `struct xe_i2c`, `struct xe_pat_ops`, `struct xe_pxp`, `struct xe_ttm_stolen_mgr`, `struct xe_vram_region`, `struct xe_device`.
- 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.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
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.