0001
0002 #ifndef __NVKM_PM_H__
0003 #define __NVKM_PM_H__
0004 #include <core/engine.h>
0005
0006 struct nvkm_pm {
0007 const struct nvkm_pm_func *func;
0008 struct nvkm_engine engine;
0009
0010 struct {
0011 spinlock_t lock;
0012 struct nvkm_object *object;
0013 } client;
0014
0015 struct list_head domains;
0016 struct list_head sources;
0017 u32 sequence;
0018 };
0019
0020 int nv40_pm_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_pm **);
0021 int nv50_pm_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_pm **);
0022 int g84_pm_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_pm **);
0023 int gt200_pm_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_pm **);
0024 int gt215_pm_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_pm **);
0025 int gf100_pm_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_pm **);
0026 int gf108_pm_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_pm **);
0027 int gf117_pm_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_pm **);
0028 int gk104_pm_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_pm **);
0029 #endif