2015-01-14 12:11:28 +10:00
|
|
|
#ifndef __NVKM_PM_H__
|
|
|
|
#define __NVKM_PM_H__
|
|
|
|
#include <core/engine.h>
|
|
|
|
|
2015-01-14 15:31:13 +10:00
|
|
|
struct nvkm_perfdom;
|
|
|
|
struct nvkm_perfctr;
|
|
|
|
struct nvkm_pm {
|
|
|
|
struct nvkm_engine base;
|
2015-01-14 12:11:28 +10:00
|
|
|
|
2015-01-14 15:31:13 +10:00
|
|
|
struct nvkm_perfctx *context;
|
2015-01-14 12:11:28 +10:00
|
|
|
void *profile_data;
|
|
|
|
|
|
|
|
struct list_head domains;
|
2015-06-07 22:40:22 +02:00
|
|
|
struct list_head sources;
|
2015-01-14 12:11:28 +10:00
|
|
|
u32 sequence;
|
|
|
|
};
|
|
|
|
|
2015-01-14 15:31:13 +10:00
|
|
|
static inline struct nvkm_pm *
|
|
|
|
nvkm_pm(void *obj)
|
2015-01-14 12:11:28 +10:00
|
|
|
{
|
2015-01-14 15:31:13 +10:00
|
|
|
return (void *)nvkm_engine(obj, NVDEV_ENGINE_PM);
|
2015-01-14 12:11:28 +10:00
|
|
|
}
|
|
|
|
|
2015-01-14 15:31:13 +10:00
|
|
|
extern struct nvkm_oclass *nv40_pm_oclass;
|
|
|
|
extern struct nvkm_oclass *nv50_pm_oclass;
|
|
|
|
extern struct nvkm_oclass *g84_pm_oclass;
|
2015-06-07 22:40:28 +02:00
|
|
|
extern struct nvkm_oclass *gt200_pm_oclass;
|
2015-01-14 15:31:13 +10:00
|
|
|
extern struct nvkm_oclass *gt215_pm_oclass;
|
2015-06-14 13:33:54 +02:00
|
|
|
extern struct nvkm_oclass *gf100_pm_oclass;
|
2015-06-14 13:33:55 +02:00
|
|
|
extern struct nvkm_oclass *gf108_pm_oclass;
|
|
|
|
extern struct nvkm_oclass *gf117_pm_oclass;
|
2015-06-19 17:37:17 +02:00
|
|
|
extern struct nvkm_oclass *gk104_pm_oclass;
|
2015-01-14 15:31:13 +10:00
|
|
|
extern struct nvkm_oclass gk110_pm_oclass;
|
2015-01-14 12:11:28 +10:00
|
|
|
#endif
|