linux/drivers/gpu/drm/nouveau/nvkm/engine/fifo/changk104.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef __GK104_FIFO_CHAN_H__
   3#define __GK104_FIFO_CHAN_H__
   4#define gk104_fifo_chan(p) container_of((p), struct gk104_fifo_chan, base)
   5#include "chan.h"
   6#include "gk104.h"
   7
   8struct gk104_fifo_chan {
   9        struct nvkm_fifo_chan base;
  10        struct gk104_fifo *fifo;
  11        int runl;
  12
  13        struct nvkm_fifo_cgrp *cgrp;
  14        struct list_head head;
  15        bool killed;
  16
  17        struct nvkm_memory *mthd;
  18
  19        struct {
  20                struct nvkm_gpuobj *inst;
  21                struct nvkm_vma *vma;
  22        } engn[NVKM_SUBDEV_NR];
  23};
  24
  25extern const struct nvkm_fifo_chan_func gk104_fifo_gpfifo_func;
  26
  27int gk104_fifo_gpfifo_new(struct gk104_fifo *, const struct nvkm_oclass *,
  28                          void *data, u32 size, struct nvkm_object **);
  29void *gk104_fifo_gpfifo_dtor(struct nvkm_fifo_chan *);
  30void gk104_fifo_gpfifo_init(struct nvkm_fifo_chan *);
  31void gk104_fifo_gpfifo_fini(struct nvkm_fifo_chan *);
  32int gk104_fifo_gpfifo_engine_ctor(struct nvkm_fifo_chan *, struct nvkm_engine *,
  33                                  struct nvkm_object *);
  34void gk104_fifo_gpfifo_engine_dtor(struct nvkm_fifo_chan *,
  35                                   struct nvkm_engine *);
  36int gk104_fifo_gpfifo_kick(struct gk104_fifo_chan *);
  37int gk104_fifo_gpfifo_kick_locked(struct gk104_fifo_chan *);
  38
  39int gv100_fifo_gpfifo_new(struct gk104_fifo *, const struct nvkm_oclass *,
  40                          void *data, u32 size, struct nvkm_object **);
  41int gv100_fifo_gpfifo_new_(const struct nvkm_fifo_chan_func *,
  42                           struct gk104_fifo *, u64 *, u16 *, u64, u64, u64,
  43                           u64 *, bool, u32 *, const struct nvkm_oclass *,
  44                           struct nvkm_object **);
  45int gv100_fifo_gpfifo_engine_init(struct nvkm_fifo_chan *,
  46                                  struct nvkm_engine *);
  47int gv100_fifo_gpfifo_engine_fini(struct nvkm_fifo_chan *,
  48                                  struct nvkm_engine *, bool);
  49
  50int tu102_fifo_gpfifo_new(struct gk104_fifo *, const struct nvkm_oclass *,
  51                          void *data, u32 size, struct nvkm_object **);
  52#endif
  53