drivers/gpu/drm/i915/gt/intel_engine_types.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/i915/gt/intel_engine_types.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/i915/gt/intel_engine_types.h- Extension
.h- Size
- 18571 bytes
- Lines
- 713
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/average.hlinux/hashtable.hlinux/irq_work.hlinux/kref.hlinux/list.hlinux/llist.hlinux/rbtree.hlinux/timer.hlinux/types.hlinux/workqueue.hi915_gem.hi915_pmu.hi915_priolist_types.hi915_selftest.hintel_sseu.hintel_timeline_types.hintel_uncore.hintel_wakeref.hintel_workarounds_types.h
Detected Declarations
struct dma_fencestruct drm_i915_gem_objectstruct drm_i915_reg_tablestruct i915_gem_contextstruct i915_requeststruct i915_sched_attrstruct i915_sched_enginestruct intel_gtstruct intel_ringstruct intel_uncorestruct intel_breadcrumbsstruct intel_engine_csstruct i915_perf_groupstruct intel_hw_status_pagestruct intel_instdonestruct i915_ctx_workaroundsstruct i915_wa_ctx_bbstruct st_preempt_hangstruct intel_engine_execlistsstruct intel_engine_execlists_statsstruct intel_engine_guc_statsstruct intel_engine_tlb_invstruct intel_engine_csstruct intel_engine_pmuenum intel_engine_idfunction intel_engine_using_cmd_parserfunction intel_engine_requires_cmd_parserfunction intel_engine_supports_statsfunction intel_engine_has_preemptionfunction intel_engine_has_semaphoresfunction intel_engine_has_timeslicesfunction intel_engine_is_virtualfunction intel_engine_has_relative_mmiofunction intel_engine_uses_wa_hold_switchout
Annotated Snippet
struct intel_hw_status_page {
struct list_head timelines;
struct i915_vma *vma;
u32 *addr;
};
struct intel_instdone {
u32 instdone;
/* The following exist only in the RCS engine */
u32 slice_common;
u32 slice_common_extra[2];
u32 sampler[GEN_MAX_GSLICES][I915_MAX_SUBSLICES];
u32 row[GEN_MAX_GSLICES][I915_MAX_SUBSLICES];
/* Added in XeHPG */
u32 geom_svg[GEN_MAX_GSLICES][I915_MAX_SUBSLICES];
};
/*
* we use a single page to load ctx workarounds so all of these
* values are referred in terms of dwords
*
* struct i915_wa_ctx_bb:
* offset: specifies batch starting position, also helpful in case
* if we want to have multiple batches at different offsets based on
* some criteria. It is not a requirement at the moment but provides
* an option for future use.
* size: size of the batch in DWORDS
*/
struct i915_ctx_workarounds {
struct i915_wa_ctx_bb {
u32 offset;
u32 size;
} indirect_ctx, per_ctx;
struct i915_vma *vma;
};
#define I915_MAX_VCS 8
#define I915_MAX_VECS 4
#define I915_MAX_SFC (I915_MAX_VCS / 2)
#define I915_MAX_CCS 4
#define I915_MAX_RCS 1
#define I915_MAX_BCS 9
/*
* Engine IDs definitions.
* Keep instances of the same type engine together.
*/
enum intel_engine_id {
RCS0 = 0,
BCS0,
BCS1,
BCS2,
BCS3,
BCS4,
BCS5,
BCS6,
BCS7,
BCS8,
#define _BCS(n) (BCS0 + (n))
VCS0,
VCS1,
VCS2,
VCS3,
VCS4,
VCS5,
VCS6,
VCS7,
#define _VCS(n) (VCS0 + (n))
VECS0,
VECS1,
VECS2,
VECS3,
#define _VECS(n) (VECS0 + (n))
CCS0,
CCS1,
CCS2,
CCS3,
#define _CCS(n) (CCS0 + (n))
GSC0,
I915_NUM_ENGINES
#define INVALID_ENGINE ((enum intel_engine_id)-1)
};
/* A simple estimator for the round-trip latency of an engine */
DECLARE_EWMA(_engine_latency, 6, 4)
struct st_preempt_hang {
struct completion completion;
unsigned int count;
Annotation
- Immediate include surface: `linux/average.h`, `linux/hashtable.h`, `linux/irq_work.h`, `linux/kref.h`, `linux/list.h`, `linux/llist.h`, `linux/rbtree.h`, `linux/timer.h`.
- Detected declarations: `struct dma_fence`, `struct drm_i915_gem_object`, `struct drm_i915_reg_table`, `struct i915_gem_context`, `struct i915_request`, `struct i915_sched_attr`, `struct i915_sched_engine`, `struct intel_gt`, `struct intel_ring`, `struct intel_uncore`.
- 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.
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.