1
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