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