priv.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #ifndef __NVKM_MC_PRIV_H__
  2. #define __NVKM_MC_PRIV_H__
  3. #define nvkm_mc(p) container_of((p), struct nvkm_mc, subdev)
  4. #include <subdev/mc.h>
  5. int nvkm_mc_new_(const struct nvkm_mc_func *, struct nvkm_device *,
  6. int index, struct nvkm_mc **);
  7. struct nvkm_mc_intr {
  8. u32 stat;
  9. u32 unit;
  10. };
  11. struct nvkm_mc_func {
  12. void (*init)(struct nvkm_mc *);
  13. const struct nvkm_mc_intr *intr;
  14. /* disable reporting of interrupts to host */
  15. void (*intr_unarm)(struct nvkm_mc *);
  16. /* enable reporting of interrupts to host */
  17. void (*intr_rearm)(struct nvkm_mc *);
  18. /* retrieve pending interrupt mask (NV_PMC_INTR) */
  19. u32 (*intr_mask)(struct nvkm_mc *);
  20. void (*unk260)(struct nvkm_mc *, u32);
  21. };
  22. void nv04_mc_init(struct nvkm_mc *);
  23. extern const struct nvkm_mc_intr nv04_mc_intr[];
  24. void nv04_mc_intr_unarm(struct nvkm_mc *);
  25. void nv04_mc_intr_rearm(struct nvkm_mc *);
  26. u32 nv04_mc_intr_mask(struct nvkm_mc *);
  27. void nv44_mc_init(struct nvkm_mc *);
  28. void nv50_mc_init(struct nvkm_mc *);
  29. extern const struct nvkm_mc_intr nv50_mc_intr[];
  30. extern const struct nvkm_mc_intr gf100_mc_intr[];
  31. void gf100_mc_intr_unarm(struct nvkm_mc *);
  32. void gf100_mc_intr_rearm(struct nvkm_mc *);
  33. u32 gf100_mc_intr_mask(struct nvkm_mc *);
  34. void gf100_mc_unk260(struct nvkm_mc *, u32);
  35. #endif