drivers/gpu/drm/i915/gem/i915_gem_region.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/i915/gem/i915_gem_region.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/i915/gem/i915_gem_region.h
Extension
.h
Size
1959 bytes
Lines
68
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 i915_gem_apply_to_region_ops {
	/**
	 * @process_obj: Process the current object
	 *
	 * Note that if this function is part of a ww transaction, and
	 * if returns -EDEADLK for one of the objects, it may be
	 * rerun for that same object in the same pass.
	 */
	int (*process_obj)(struct i915_gem_apply_to_region *apply,
			   struct drm_i915_gem_object *obj);
};

/**
 * struct i915_gem_apply_to_region - Argument to the struct
 * i915_gem_apply_to_region_ops functions.
 * @ops: The ops for the operation.
 * @ww: Locking context used for the transaction.
 * @interruptible: Whether to perform object locking interruptible.
 *
 * This structure is intended to be embedded in a private struct if needed
 */
struct i915_gem_apply_to_region {
	const struct i915_gem_apply_to_region_ops *ops;
	struct i915_gem_ww_ctx *ww;
	u32 interruptible:1;
};

void i915_gem_object_init_memory_region(struct drm_i915_gem_object *obj,
					struct intel_memory_region *mem);
void i915_gem_object_release_memory_region(struct drm_i915_gem_object *obj);

struct drm_i915_gem_object *
i915_gem_object_create_region(struct intel_memory_region *mem,
			      resource_size_t size,
			      resource_size_t page_size,
			      unsigned int flags);
struct drm_i915_gem_object *
i915_gem_object_create_region_at(struct intel_memory_region *mem,
				 resource_size_t offset,
				 resource_size_t size,
				 unsigned int flags);

int i915_gem_process_region(struct intel_memory_region *mr,
			    struct i915_gem_apply_to_region *apply);
#endif

Annotation

Implementation Notes