drivers/gpu/drm/xe/xe_vram_types.h

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

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/xe/xe_vram_types.h
Extension
.h
Size
1919 bytes
Lines
75
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_vram_region {
	/** @xe: Back pointer to xe device */
	struct xe_device *xe;
	/**
	 * @id: VRAM region instance id
	 *
	 * The value should be unique for VRAM region.
	 */
	u8 id;
	/** @io_start: IO start address of this VRAM instance */
	resource_size_t io_start;
	/**
	 * @io_size: IO size of this VRAM instance
	 *
	 * This represents how much of this VRAM we can access
	 * via the CPU through the VRAM BAR. This can be smaller
	 * than @usable_size, in which case only part of VRAM is CPU
	 * accessible (typically the first 256M). This
	 * configuration is known as small-bar.
	 */
	resource_size_t io_size;
	/** @dpa_base: This memory regions's DPA (device physical address) base */
	resource_size_t dpa_base;
	/**
	 * @usable_size: usable size of VRAM
	 *
	 * Usable size of VRAM excluding reserved portions
	 * (e.g stolen mem)
	 */
	resource_size_t usable_size;
	/**
	 * @actual_physical_size: Actual VRAM size
	 *
	 * Actual VRAM size including reserved portions
	 * (e.g stolen mem)
	 */
	resource_size_t actual_physical_size;
	/** @mapping: pointer to VRAM mappable space */
	void __iomem *mapping;
	/** @ttm: VRAM TTM manager */
	struct xe_ttm_vram_mgr ttm;
	/** @placement: TTM placement dedicated for this region */
	u32 placement;
#if IS_ENABLED(CONFIG_DRM_XE_PAGEMAP)
	/** @migrate: Back pointer to migrate */
	struct xe_migrate *migrate;
	/** @dpagemap_cache: drm_pagemap cache. */
	struct drm_pagemap_cache *dpagemap_cache;
#endif
};

#endif

Annotation

Implementation Notes