Linux-libre 4.14.69-gnu
[librecmc/linux-libre.git] / drivers / gpu / drm / nouveau / include / nvkm / subdev / bios / perf.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __NVBIOS_PERF_H__
3 #define __NVBIOS_PERF_H__
4 u32 nvbios_perf_table(struct nvkm_bios *, u8 *ver, u8 *hdr,
5                       u8 *cnt, u8 *len, u8 *snr, u8 *ssz);
6
7 struct nvbios_perfE {
8         u8  pstate;
9         u8  fanspeed;
10         u8  voltage;
11         u32 core;
12         u32 shader;
13         u32 memory;
14         u32 vdec;
15         u32 disp;
16         u32 script;
17         u8  pcie_speed;
18         u8  pcie_width;
19 };
20
21 u32 nvbios_perf_entry(struct nvkm_bios *, int idx,
22                       u8 *ver, u8 *hdr, u8 *cnt, u8 *len);
23 u32 nvbios_perfEp(struct nvkm_bios *, int idx,
24                   u8 *ver, u8 *hdr, u8 *cnt, u8 *len, struct nvbios_perfE *);
25
26 struct nvbios_perfS {
27         union {
28                 struct {
29                         u32 freq;
30                 } v40;
31         };
32 };
33
34 u32 nvbios_perfSe(struct nvkm_bios *, u32 data, int idx,
35                   u8 *ver, u8 *hdr, u8 cnt, u8 len);
36 u32 nvbios_perfSp(struct nvkm_bios *, u32 data, int idx,
37                   u8 *ver, u8 *hdr, u8 cnt, u8 len, struct nvbios_perfS *);
38
39 struct nvbios_perf_fan {
40         u32 pwm_divisor;
41 };
42
43 int nvbios_perf_fan_parse(struct nvkm_bios *, struct nvbios_perf_fan *);
44 #endif