Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
9a65a38c BS |
2 | #ifndef __NVKM_FIFO_PRIV_H__ |
3 | #define __NVKM_FIFO_PRIV_H__ | |
13de7f46 | 4 | #define nvkm_fifo(p) container_of((p), struct nvkm_fifo, engine) |
9a65a38c | 5 | #include <engine/fifo.h> |
9a65a38c | 6 | |
13de7f46 BS |
7 | int nvkm_fifo_ctor(const struct nvkm_fifo_func *, struct nvkm_device *, |
8 | int index, int nr, struct nvkm_fifo *); | |
9 | void nvkm_fifo_uevent(struct nvkm_fifo *); | |
e774055a | 10 | void nvkm_fifo_cevent(struct nvkm_fifo *); |
ff9f29ab | 11 | void nvkm_fifo_kevent(struct nvkm_fifo *, int chid); |
21e6de29 | 12 | void nvkm_fifo_recover_chan(struct nvkm_fifo *, int chid); |
13de7f46 | 13 | |
3534821d BS |
14 | struct nvkm_fifo_chan * |
15 | nvkm_fifo_chan_inst_locked(struct nvkm_fifo *, u64 inst); | |
16 | ||
98ac3f06 | 17 | struct nvkm_fifo_chan_oclass; |
13de7f46 BS |
18 | struct nvkm_fifo_func { |
19 | void *(*dtor)(struct nvkm_fifo *); | |
20 | int (*oneinit)(struct nvkm_fifo *); | |
21 | void (*init)(struct nvkm_fifo *); | |
22 | void (*fini)(struct nvkm_fifo *); | |
23 | void (*intr)(struct nvkm_fifo *); | |
24 | void (*pause)(struct nvkm_fifo *, unsigned long *); | |
25 | void (*start)(struct nvkm_fifo *, unsigned long *); | |
26 | void (*uevent_init)(struct nvkm_fifo *); | |
27 | void (*uevent_fini)(struct nvkm_fifo *); | |
21e6de29 | 28 | void (*recover_chan)(struct nvkm_fifo *, int chid); |
98ac3f06 BS |
29 | int (*class_get)(struct nvkm_fifo *, int index, |
30 | const struct nvkm_fifo_chan_oclass **); | |
13de7f46 BS |
31 | const struct nvkm_fifo_chan_oclass *chan[]; |
32 | }; | |
33 | ||
34 | void nv04_fifo_intr(struct nvkm_fifo *); | |
9a65a38c BS |
35 | void nv04_fifo_pause(struct nvkm_fifo *, unsigned long *); |
36 | void nv04_fifo_start(struct nvkm_fifo *, unsigned long *); | |
37 | #endif |