| .. | .. |
|---|
| 1 | | -/* SPDX-License-Identifier: GPL-2.0 */ |
|---|
| 1 | +/* SPDX-License-Identifier: MIT */ |
|---|
| 2 | 2 | #ifndef __NVKM_PMU_H__ |
|---|
| 3 | 3 | #define __NVKM_PMU_H__ |
|---|
| 4 | 4 | #include <core/subdev.h> |
|---|
| 5 | | -#include <engine/falcon.h> |
|---|
| 5 | +#include <core/falcon.h> |
|---|
| 6 | 6 | |
|---|
| 7 | 7 | struct nvkm_pmu { |
|---|
| 8 | 8 | const struct nvkm_pmu_func *func; |
|---|
| 9 | 9 | struct nvkm_subdev subdev; |
|---|
| 10 | | - struct nvkm_falcon *falcon; |
|---|
| 11 | | - struct nvkm_msgqueue *queue; |
|---|
| 10 | + struct nvkm_falcon falcon; |
|---|
| 11 | + |
|---|
| 12 | + struct nvkm_falcon_qmgr *qmgr; |
|---|
| 13 | + struct nvkm_falcon_cmdq *hpq; |
|---|
| 14 | + struct nvkm_falcon_cmdq *lpq; |
|---|
| 15 | + struct nvkm_falcon_msgq *msgq; |
|---|
| 16 | + bool initmsg_received; |
|---|
| 17 | + |
|---|
| 18 | + struct completion wpr_ready; |
|---|
| 12 | 19 | |
|---|
| 13 | 20 | struct { |
|---|
| 14 | 21 | u32 base; |
|---|
| .. | .. |
|---|
| 30 | 37 | int nvkm_pmu_send(struct nvkm_pmu *, u32 reply[2], u32 process, |
|---|
| 31 | 38 | u32 message, u32 data0, u32 data1); |
|---|
| 32 | 39 | void nvkm_pmu_pgob(struct nvkm_pmu *, bool enable); |
|---|
| 40 | +bool nvkm_pmu_fan_controlled(struct nvkm_device *); |
|---|
| 33 | 41 | |
|---|
| 34 | 42 | int gt215_pmu_new(struct nvkm_device *, int, struct nvkm_pmu **); |
|---|
| 35 | 43 | int gf100_pmu_new(struct nvkm_device *, int, struct nvkm_pmu **); |
|---|
| .. | .. |
|---|
| 39 | 47 | int gk208_pmu_new(struct nvkm_device *, int, struct nvkm_pmu **); |
|---|
| 40 | 48 | int gk20a_pmu_new(struct nvkm_device *, int, struct nvkm_pmu **); |
|---|
| 41 | 49 | int gm107_pmu_new(struct nvkm_device *, int, struct nvkm_pmu **); |
|---|
| 50 | +int gm200_pmu_new(struct nvkm_device *, int, struct nvkm_pmu **); |
|---|
| 42 | 51 | int gm20b_pmu_new(struct nvkm_device *, int, struct nvkm_pmu **); |
|---|
| 43 | | -int gp100_pmu_new(struct nvkm_device *, int, struct nvkm_pmu **); |
|---|
| 44 | 52 | int gp102_pmu_new(struct nvkm_device *, int, struct nvkm_pmu **); |
|---|
| 53 | +int gp10b_pmu_new(struct nvkm_device *, int, struct nvkm_pmu **); |
|---|
| 45 | 54 | |
|---|
| 46 | 55 | /* interface to MEMX process running on PMU */ |
|---|
| 47 | 56 | struct nvkm_memx; |
|---|