linux/drivers/gpu/drm/lima/lima_vm.h

/* SPDX-License-Identifier: GPL-2.0 OR MIT */
/* Copyright 2017-2019 Qiang Yu <[email protected]> */

#ifndef __LIMA_VM_H__
#define __LIMA_VM_H__

#include <drm/drm_mm.h>
#include <linux/kref.h>

#define LIMA_PAGE_SIZE
#define LIMA_PAGE_MASK
#define LIMA_PAGE_ENT_NUM

#define LIMA_VM_NUM_PT_PER_BT_SHIFT
#define LIMA_VM_NUM_PT_PER_BT
#define LIMA_VM_NUM_BT

#define LIMA_VA_RESERVE_START
#define LIMA_VA_RESERVE_DLBU
#define LIMA_VA_RESERVE_END

struct lima_device;

struct lima_vm_page {};

struct lima_vm {};

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)
{}

static inline void lima_vm_put(struct lima_vm *vm)
{}

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

#endif