f13f8e6fc017cc74bd04ddbab8c7bd067cec14e2
[firefly-linux-kernel-4.4.55.git] / drivers / gpu / drm / nouveau / include / nvkm / engine / pm.h
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 engine;
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