1 #ifndef __NVKM_PM_H__
2 #define __NVKM_PM_H__
3 #include <core/engine.h>
4 
5 struct nvkm_perfdom;
6 struct nvkm_perfctr;
7 struct nvkm_pm {
8 	struct nvkm_engine base;
9 
10 	struct nvkm_perfctx *context;
11 	void *profile_data;
12 
13 	struct list_head domains;
14 	struct list_head sources;
15 	u32 sequence;
16 };
17 
18 static inline struct nvkm_pm *
19 nvkm_pm(void *obj)
20 {
21 	return (void *)nvkm_engine(obj, NVDEV_ENGINE_PM);
22 }
23 
24 extern struct nvkm_oclass *nv40_pm_oclass;
25 extern struct nvkm_oclass *nv50_pm_oclass;
26 extern struct nvkm_oclass *g84_pm_oclass;
27 extern struct nvkm_oclass *gt200_pm_oclass;
28 extern struct nvkm_oclass *gt215_pm_oclass;
29 extern struct nvkm_oclass *gf100_pm_oclass;
30 extern struct nvkm_oclass *gf108_pm_oclass;
31 extern struct nvkm_oclass *gf117_pm_oclass;
32 extern struct nvkm_oclass *gk104_pm_oclass;
33 extern struct nvkm_oclass gk110_pm_oclass;
34 #endif
35