1/* $NetBSD: nv50.h,v 1.3 2021/12/18 23:45:38 riastradh Exp $ */ 2 3/* SPDX-License-Identifier: MIT */ 4#ifndef __NV50_BAR_H__ 5#define __NV50_BAR_H__ 6#define nv50_bar(p) container_of((p), struct nv50_bar, base) 7#include "priv.h" 8 9struct nv50_bar { 10 struct nvkm_bar base; 11 u32 pgd_addr; 12 struct nvkm_gpuobj *mem; 13 struct nvkm_gpuobj *pad; 14 struct nvkm_gpuobj *pgd; 15 struct nvkm_vmm *bar1_vmm; 16 struct nvkm_gpuobj *bar1; 17 struct nvkm_vmm *bar2_vmm; 18 struct nvkm_gpuobj *bar2; 19}; 20 21int nv50_bar_new_(const struct nvkm_bar_func *, struct nvkm_device *, 22 int, u32 pgd_addr, struct nvkm_bar **); 23void *nv50_bar_dtor(struct nvkm_bar *); 24int nv50_bar_oneinit(struct nvkm_bar *); 25void nv50_bar_init(struct nvkm_bar *); 26void nv50_bar_bar1_init(struct nvkm_bar *); 27void nv50_bar_bar1_wait(struct nvkm_bar *); 28struct nvkm_vmm *nv50_bar_bar1_vmm(struct nvkm_bar *); 29void nv50_bar_bar2_init(struct nvkm_bar *); 30struct nvkm_vmm *nv50_bar_bar2_vmm(struct nvkm_bar *); 31#endif 32