1 #ifndef __NVBIOS_PERF_H__
2 #define __NVBIOS_PERF_H__
3 u16 nvbios_perf_table(struct nvkm_bios *, u8 *ver, u8 *hdr,
4 		      u8 *cnt, u8 *len, u8 *snr, u8 *ssz);
5 
6 struct nvbios_perfE {
7 	u8  pstate;
8 	u8  fanspeed;
9 	u8  voltage;
10 	u32 core;
11 	u32 shader;
12 	u32 memory;
13 	u32 vdec;
14 	u32 disp;
15 	u32 script;
16 };
17 
18 u16 nvbios_perf_entry(struct nvkm_bios *, int idx,
19 		      u8 *ver, u8 *hdr, u8 *cnt, u8 *len);
20 u16 nvbios_perfEp(struct nvkm_bios *, int idx,
21 		  u8 *ver, u8 *hdr, u8 *cnt, u8 *len, struct nvbios_perfE *);
22 
23 struct nvbios_perfS {
24 	union {
25 		struct {
26 			u32 freq;
27 		} v40;
28 	};
29 };
30 
31 u32 nvbios_perfSe(struct nvkm_bios *, u32 data, int idx,
32 		  u8 *ver, u8 *hdr, u8 cnt, u8 len);
33 u32 nvbios_perfSp(struct nvkm_bios *, u32 data, int idx,
34 		  u8 *ver, u8 *hdr, u8 cnt, u8 len, struct nvbios_perfS *);
35 
36 struct nvbios_perf_fan {
37 	u32 pwm_divisor;
38 };
39 
40 int nvbios_perf_fan_parse(struct nvkm_bios *, struct nvbios_perf_fan *);
41 #endif
42