linux/drivers/gpu/drm/nouveau/nvkm/engine/fifo/channv50.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: MIT */
   2#ifndef __NV50_FIFO_CHAN_H__
   3#define __NV50_FIFO_CHAN_H__
   4#define nv50_fifo_chan(p) container_of((p), struct nv50_fifo_chan, base)
   5#include "chan.h"
   6#include "nv50.h"
   7
   8struct nv50_fifo_chan {
   9        struct nv50_fifo *fifo;
  10        struct nvkm_fifo_chan base;
  11
  12        struct nvkm_gpuobj *ramfc;
  13        struct nvkm_gpuobj *cache;
  14        struct nvkm_gpuobj *eng;
  15        struct nvkm_gpuobj *pgd;
  16        struct nvkm_ramht *ramht;
  17
  18        struct nvkm_gpuobj *engn[NVKM_SUBDEV_NR];
  19};
  20
  21int nv50_fifo_chan_ctor(struct nv50_fifo *, u64 vmm, u64 push,
  22                        const struct nvkm_oclass *, struct nv50_fifo_chan *);
  23void *nv50_fifo_chan_dtor(struct nvkm_fifo_chan *);
  24void nv50_fifo_chan_fini(struct nvkm_fifo_chan *);
  25void nv50_fifo_chan_engine_dtor(struct nvkm_fifo_chan *, struct nvkm_engine *);
  26void nv50_fifo_chan_object_dtor(struct nvkm_fifo_chan *, int);
  27
  28int g84_fifo_chan_ctor(struct nv50_fifo *, u64 vmm, u64 push,
  29                       const struct nvkm_oclass *, struct nv50_fifo_chan *);
  30
  31extern const struct nvkm_fifo_chan_oclass nv50_fifo_dma_oclass;
  32extern const struct nvkm_fifo_chan_oclass nv50_fifo_gpfifo_oclass;
  33extern const struct nvkm_fifo_chan_oclass g84_fifo_dma_oclass;
  34extern const struct nvkm_fifo_chan_oclass g84_fifo_gpfifo_oclass;
  35#endif
  36