2019-06-19 20:13:43 -04:00
|
|
|
/* SPDX-License-Identifier: MIT */
|
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_pm {
|
2015-08-20 14:54:22 +10:00
|
|
|
const struct nvkm_pm_func *func;
|
2015-08-20 14:54:08 +10:00
|
|
|
struct nvkm_engine engine;
|
2015-01-14 12:11:28 +10:00
|
|
|
|
2020-12-03 10:46:18 +10:00
|
|
|
struct {
|
|
|
|
|
spinlock_t lock;
|
|
|
|
|
struct nvkm_object *object;
|
|
|
|
|
} client;
|
2015-01-14 12:11:28 +10:00
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
};
|
|
|
|
|
|
2020-12-04 16:07:49 +10:00
|
|
|
int nv40_pm_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_pm **);
|
|
|
|
|
int nv50_pm_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_pm **);
|
|
|
|
|
int g84_pm_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_pm **);
|
|
|
|
|
int gt200_pm_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_pm **);
|
|
|
|
|
int gt215_pm_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_pm **);
|
|
|
|
|
int gf100_pm_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_pm **);
|
|
|
|
|
int gf108_pm_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_pm **);
|
|
|
|
|
int gf117_pm_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_pm **);
|
|
|
|
|
int gk104_pm_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_pm **);
|
2015-01-14 12:11:28 +10:00
|
|
|
#endif
|