drivers/gpu/drm/lima/lima_vm.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/lima/lima_vm.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/lima/lima_vm.h
Extension
.h
Size
1539 bytes
Lines
65
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 lima_vm_page {
	u32 *cpu;
	dma_addr_t dma;
};

struct lima_vm {
	struct mutex lock;
	struct kref refcount;

	struct drm_mm mm;

	struct lima_device *dev;

	struct lima_vm_page pd;
	struct lima_vm_page bts[LIMA_VM_NUM_BT];
};

int lima_vm_bo_add(struct lima_vm *vm, struct lima_bo *bo, bool create);
void lima_vm_bo_del(struct lima_vm *vm, struct lima_bo *bo);

u32 lima_vm_get_va(struct lima_vm *vm, struct lima_bo *bo);

struct lima_vm *lima_vm_create(struct lima_device *dev);
void lima_vm_release(struct kref *kref);

static inline struct lima_vm *lima_vm_get(struct lima_vm *vm)
{
	kref_get(&vm->refcount);
	return vm;
}

static inline void lima_vm_put(struct lima_vm *vm)
{
	if (vm)
		kref_put(&vm->refcount, lima_vm_release);
}

void lima_vm_print(struct lima_vm *vm);
int lima_vm_map_bo(struct lima_vm *vm, struct lima_bo *bo, int pageoff);

#endif

Annotation

Implementation Notes