1 /* $NetBSD: gf100.h,v 1.3 2021/12/18 23:45:35 riastradh Exp $ */ 2 3 /* SPDX-License-Identifier: MIT */ 4 #ifndef __GF100_FIFO_H__ 5 #define __GF100_FIFO_H__ 6 #define gf100_fifo(p) container_of((p), struct gf100_fifo, base) 7 #include "priv.h" 8 9 #include <subdev/mmu.h> 10 11 struct gf100_fifo_chan; 12 struct gf100_fifo { 13 struct nvkm_fifo base; 14 15 struct list_head chan; 16 17 struct { 18 struct work_struct work; 19 u64 mask; 20 } recover; 21 22 int pbdma_nr; 23 24 struct { 25 struct nvkm_memory *mem[2]; 26 int active; 27 #ifdef __NetBSD__ 28 spinlock_t lock; 29 drm_waitqueue_t wait; 30 #else 31 wait_queue_head_t wait; 32 #endif 33 } runlist; 34 35 struct { 36 struct nvkm_memory *mem; 37 struct nvkm_vma *bar; 38 } user; 39 }; 40 41 void gf100_fifo_intr_engine(struct gf100_fifo *); 42 void gf100_fifo_runlist_insert(struct gf100_fifo *, struct gf100_fifo_chan *); 43 void gf100_fifo_runlist_remove(struct gf100_fifo *, struct gf100_fifo_chan *); 44 void gf100_fifo_runlist_commit(struct gf100_fifo *); 45 #endif 46