1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __NVKM_PM_PRIV_H__
3 #define __NVKM_PM_PRIV_H__
4 #define nvkm_pm(p) container_of((p), struct nvkm_pm, engine)
7 int nvkm_pm_ctor(const struct nvkm_pm_func *, struct nvkm_device *,
8 int index, struct nvkm_pm *);
11 void (*fini)(struct nvkm_pm *);
15 struct list_head head;
33 const struct nvkm_specmux *mux;
38 struct list_head head;
46 extern const struct nvkm_specsrc nv50_zcull_sources[];
47 extern const struct nvkm_specsrc nv50_zrop_sources[];
48 extern const struct nvkm_specsrc g84_vfetch_sources[];
49 extern const struct nvkm_specsrc gt200_crop_sources[];
50 extern const struct nvkm_specsrc gt200_prop_sources[];
51 extern const struct nvkm_specsrc gt200_tex_sources[];
56 const struct nvkm_specsrc *source;
66 const struct nvkm_specsig *signal;
67 const struct nvkm_funcdom *func;
70 #define nvkm_perfdom(p) container_of((p), struct nvkm_perfdom, object)
73 struct nvkm_object object;
74 struct nvkm_perfmon *perfmon;
75 struct list_head head;
76 struct list_head list;
77 const struct nvkm_funcdom *func;
78 struct nvkm_perfctr *ctr[4];
84 struct nvkm_perfsig signal[];
88 void (*init)(struct nvkm_pm *, struct nvkm_perfdom *,
89 struct nvkm_perfctr *);
90 void (*read)(struct nvkm_pm *, struct nvkm_perfdom *,
91 struct nvkm_perfctr *);
92 void (*next)(struct nvkm_pm *, struct nvkm_perfdom *);
95 int nvkm_perfdom_new(struct nvkm_pm *, const char *, u32, u32, u32, u32,
96 const struct nvkm_specdom *);
98 #define nvkm_perfmon(p) container_of((p), struct nvkm_perfmon, object)
100 struct nvkm_perfmon {
101 struct nvkm_object object;