1#ifndef __NVKM_PM_H__ 2#define __NVKM_PM_H__ 3#include <core/engine.h> 4 5struct nvkm_perfdom; 6struct nvkm_perfctr; 7struct 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 21static inline struct nvkm_pm * 22nvkm_pm(void *obj) 23{ 24 return (void *)nvkm_engine(obj, NVDEV_ENGINE_PM); 25} 26 27extern struct nvkm_oclass *nv40_pm_oclass; 28extern struct nvkm_oclass *nv50_pm_oclass; 29extern struct nvkm_oclass *g84_pm_oclass; 30extern struct nvkm_oclass *gt215_pm_oclass; 31extern struct nvkm_oclass gf100_pm_oclass; 32extern struct nvkm_oclass gk104_pm_oclass; 33extern struct nvkm_oclass gk110_pm_oclass; 34#endif 35