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