linux/drivers/gpu/drm/nouveau/nvkm/engine/disp/dmacnv50.h
<<
>>
Prefs
   1#ifndef __NV50_DISP_DMAC_H__
   2#define __NV50_DISP_DMAC_H__
   3#define nv50_disp_dmac(p) container_of((p), struct nv50_disp_dmac, base)
   4#include "channv50.h"
   5
   6struct nv50_disp_dmac {
   7        const struct nv50_disp_dmac_func *func;
   8        struct nv50_disp_chan base;
   9        u32 push;
  10};
  11
  12struct nv50_disp_dmac_func {
  13        int  (*init)(struct nv50_disp_dmac *);
  14        void (*fini)(struct nv50_disp_dmac *);
  15        int  (*bind)(struct nv50_disp_dmac *, struct nvkm_object *, u32 handle);
  16};
  17
  18int nv50_disp_dmac_new_(const struct nv50_disp_dmac_func *,
  19                        const struct nv50_disp_chan_mthd *,
  20                        struct nv50_disp_root *, int chid, int head, u64 push,
  21                        const struct nvkm_oclass *, struct nvkm_object **);
  22
  23extern const struct nv50_disp_dmac_func nv50_disp_dmac_func;
  24int nv50_disp_dmac_bind(struct nv50_disp_dmac *, struct nvkm_object *, u32);
  25extern const struct nv50_disp_dmac_func nv50_disp_core_func;
  26
  27extern const struct nv50_disp_dmac_func gf119_disp_dmac_func;
  28void gf119_disp_dmac_fini(struct nv50_disp_dmac *);
  29int gf119_disp_dmac_bind(struct nv50_disp_dmac *, struct nvkm_object *, u32);
  30extern const struct nv50_disp_dmac_func gf119_disp_core_func;
  31void gf119_disp_core_fini(struct nv50_disp_dmac *);
  32
  33extern const struct nv50_disp_dmac_func gp104_disp_dmac_func;
  34
  35struct nv50_disp_dmac_oclass {
  36        int (*ctor)(const struct nv50_disp_dmac_func *,
  37                    const struct nv50_disp_chan_mthd *,
  38                    struct nv50_disp_root *, int chid,
  39                    const struct nvkm_oclass *, void *data, u32 size,
  40                    struct nvkm_object **);
  41        struct nvkm_sclass base;
  42        const struct nv50_disp_dmac_func *func;
  43        const struct nv50_disp_chan_mthd *mthd;
  44        int chid;
  45};
  46
  47int nv50_disp_core_new(const struct nv50_disp_dmac_func *,
  48                       const struct nv50_disp_chan_mthd *,
  49                       struct nv50_disp_root *, int chid,
  50                       const struct nvkm_oclass *oclass, void *data, u32 size,
  51                       struct nvkm_object **);
  52int nv50_disp_base_new(const struct nv50_disp_dmac_func *,
  53                       const struct nv50_disp_chan_mthd *,
  54                       struct nv50_disp_root *, int chid,
  55                       const struct nvkm_oclass *oclass, void *data, u32 size,
  56                       struct nvkm_object **);
  57int nv50_disp_ovly_new(const struct nv50_disp_dmac_func *,
  58                       const struct nv50_disp_chan_mthd *,
  59                       struct nv50_disp_root *, int chid,
  60                       const struct nvkm_oclass *oclass, void *data, u32 size,
  61                       struct nvkm_object **);
  62
  63extern const struct nv50_disp_dmac_oclass nv50_disp_core_oclass;
  64extern const struct nv50_disp_dmac_oclass nv50_disp_base_oclass;
  65extern const struct nv50_disp_dmac_oclass nv50_disp_ovly_oclass;
  66
  67extern const struct nv50_disp_dmac_oclass g84_disp_core_oclass;
  68extern const struct nv50_disp_dmac_oclass g84_disp_base_oclass;
  69extern const struct nv50_disp_dmac_oclass g84_disp_ovly_oclass;
  70
  71extern const struct nv50_disp_dmac_oclass g94_disp_core_oclass;
  72
  73extern const struct nv50_disp_dmac_oclass gt200_disp_core_oclass;
  74extern const struct nv50_disp_dmac_oclass gt200_disp_base_oclass;
  75extern const struct nv50_disp_dmac_oclass gt200_disp_ovly_oclass;
  76
  77extern const struct nv50_disp_dmac_oclass gt215_disp_core_oclass;
  78extern const struct nv50_disp_dmac_oclass gt215_disp_base_oclass;
  79extern const struct nv50_disp_dmac_oclass gt215_disp_ovly_oclass;
  80
  81extern const struct nv50_disp_dmac_oclass gf119_disp_core_oclass;
  82extern const struct nv50_disp_dmac_oclass gf119_disp_base_oclass;
  83extern const struct nv50_disp_dmac_oclass gf119_disp_ovly_oclass;
  84
  85extern const struct nv50_disp_dmac_oclass gk104_disp_core_oclass;
  86extern const struct nv50_disp_dmac_oclass gk104_disp_base_oclass;
  87extern const struct nv50_disp_dmac_oclass gk104_disp_ovly_oclass;
  88
  89extern const struct nv50_disp_dmac_oclass gk110_disp_core_oclass;
  90extern const struct nv50_disp_dmac_oclass gk110_disp_base_oclass;
  91
  92extern const struct nv50_disp_dmac_oclass gm107_disp_core_oclass;
  93
  94extern const struct nv50_disp_dmac_oclass gm200_disp_core_oclass;
  95
  96extern const struct nv50_disp_dmac_oclass gp100_disp_core_oclass;
  97
  98extern const struct nv50_disp_dmac_oclass gp104_disp_core_oclass;
  99extern const struct nv50_disp_dmac_oclass gp104_disp_base_oclass;
 100extern const struct nv50_disp_dmac_oclass gp104_disp_ovly_oclass;
 101#endif
 102