root/drivers/gpu/drm/nouveau/dispnv50/core.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 #ifndef __NV50_KMS_CORE_H__
   2 #define __NV50_KMS_CORE_H__
   3 #include "disp.h"
   4 #include "atom.h"
   5 
   6 struct nv50_core {
   7         const struct nv50_core_func *func;
   8         struct nv50_dmac chan;
   9 };
  10 
  11 int nv50_core_new(struct nouveau_drm *, struct nv50_core **);
  12 void nv50_core_del(struct nv50_core **);
  13 
  14 struct nv50_core_func {
  15         void (*init)(struct nv50_core *);
  16         void (*ntfy_init)(struct nouveau_bo *, u32 offset);
  17         int (*ntfy_wait_done)(struct nouveau_bo *, u32 offset,
  18                               struct nvif_device *);
  19         void (*update)(struct nv50_core *, u32 *interlock, bool ntfy);
  20 
  21         const struct nv50_head_func *head;
  22         const struct nv50_outp_func {
  23                 void (*ctrl)(struct nv50_core *, int or, u32 ctrl,
  24                              struct nv50_head_atom *);
  25         } *dac, *pior, *sor;
  26 };
  27 
  28 int core507d_new(struct nouveau_drm *, s32, struct nv50_core **);
  29 int core507d_new_(const struct nv50_core_func *, struct nouveau_drm *, s32,
  30                   struct nv50_core **);
  31 void core507d_init(struct nv50_core *);
  32 void core507d_ntfy_init(struct nouveau_bo *, u32);
  33 int core507d_ntfy_wait_done(struct nouveau_bo *, u32, struct nvif_device *);
  34 void core507d_update(struct nv50_core *, u32 *, bool);
  35 
  36 extern const struct nv50_outp_func dac507d;
  37 extern const struct nv50_outp_func sor507d;
  38 extern const struct nv50_outp_func pior507d;
  39 
  40 int core827d_new(struct nouveau_drm *, s32, struct nv50_core **);
  41 
  42 int core907d_new(struct nouveau_drm *, s32, struct nv50_core **);
  43 extern const struct nv50_outp_func dac907d;
  44 extern const struct nv50_outp_func sor907d;
  45 
  46 int core917d_new(struct nouveau_drm *, s32, struct nv50_core **);
  47 
  48 int corec37d_new(struct nouveau_drm *, s32, struct nv50_core **);
  49 int corec37d_ntfy_wait_done(struct nouveau_bo *, u32, struct nvif_device *);
  50 void corec37d_update(struct nv50_core *, u32 *, bool);
  51 extern const struct nv50_outp_func sorc37d;
  52 
  53 int corec57d_new(struct nouveau_drm *, s32, struct nv50_core **);
  54 #endif

/* [<][>][^][v][top][bottom][index][help] */