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 u32 sequence; 15 16 /*XXX: temp for daemon backend */ 17 u32 pwr[8]; 18 u32 last; 19 }; 20 21 static inline struct nvkm_pm * 22 nvkm_pm(void *obj) 23 { 24 return (void *)nvkm_engine(obj, NVDEV_ENGINE_PM); 25 } 26 27 extern struct nvkm_oclass *nv40_pm_oclass; 28 extern struct nvkm_oclass *nv50_pm_oclass; 29 extern struct nvkm_oclass *g84_pm_oclass; 30 extern struct nvkm_oclass *gt215_pm_oclass; 31 extern struct nvkm_oclass gf100_pm_oclass; 32 extern struct nvkm_oclass gk104_pm_oclass; 33 extern struct nvkm_oclass gk110_pm_oclass; 34 #endif 35