drivers/gpu/drm/xe/xe_gsc_types.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/xe/xe_gsc_types.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/xe/xe_gsc_types.h- Extension
.h- Size
- 2171 bytes
- Lines
- 77
- 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
linux/iosys-map.hlinux/mutex.hlinux/spinlock.hlinux/types.hlinux/workqueue.hxe_uc_fw_types.hxe_device_types.h
Detected Declarations
struct xe_bostruct xe_exec_queuestruct i915_gsc_proxy_componentstruct xe_gsc
Annotated Snippet
struct xe_gsc {
/** @fw: Generic uC firmware management */
struct xe_uc_fw fw;
/** @security_version: SVN found in the fetched blob */
u32 security_version;
/** @private: Private data for use by the GSC FW */
struct xe_bo *private;
/** @q: Default queue used for submissions to GSC FW */
struct xe_exec_queue *q;
/** @wq: workqueue to handle jobs for delayed load and proxy handling */
struct workqueue_struct *wq;
/** @work: delayed load and proxy handling work */
struct work_struct work;
/** @lock: protects access to the work_actions mask */
spinlock_t lock;
/** @work_actions: mask of actions to be performed in the work */
u32 work_actions;
#define GSC_ACTION_FW_LOAD BIT(0)
#define GSC_ACTION_SW_PROXY BIT(1)
#define GSC_ACTION_ER_COMPLETE BIT(2)
/** @proxy: sub-structure containing the SW proxy-related variables */
struct {
/** @proxy.component: struct for communication with mei component */
struct i915_gsc_proxy_component *component;
/** @proxy.mutex: protects the component binding and usage */
struct mutex mutex;
/** @proxy.component_added: whether the component has been added */
bool component_added;
/** @proxy.started: whether the proxy has been started */
bool started;
/** @proxy.bo: object to store message to and from the GSC */
struct xe_bo *bo;
/** @proxy.to_gsc: map of the memory used to send messages to the GSC */
struct iosys_map to_gsc;
/** @proxy.from_gsc: map of the memory used to recv messages from the GSC */
struct iosys_map from_gsc;
/** @proxy.to_csme: pointer to the memory used to send messages to CSME */
void *to_csme;
/** @proxy.from_csme: pointer to the memory used to recv messages from CSME */
void *from_csme;
} proxy;
};
#endif
Annotation
- Immediate include surface: `linux/iosys-map.h`, `linux/mutex.h`, `linux/spinlock.h`, `linux/types.h`, `linux/workqueue.h`, `xe_uc_fw_types.h`, `xe_device_types.h`.
- Detected declarations: `struct xe_bo`, `struct xe_exec_queue`, `struct i915_gsc_proxy_component`, `struct xe_gsc`.
- 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.