GNU Linux-libre 4.9-gnu1
[releases.git] / drivers / gpu / drm / nouveau / include / nvkm / subdev / bios / perf.h
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         u8  pcie_speed;
17         u8  pcie_width;
18 };
19
20 u16 nvbios_perf_entry(struct nvkm_bios *, int idx,
21                       u8 *ver, u8 *hdr, u8 *cnt, u8 *len);
22 u16 nvbios_perfEp(struct nvkm_bios *, int idx,
23                   u8 *ver, u8 *hdr, u8 *cnt, u8 *len, struct nvbios_perfE *);
24
25 struct nvbios_perfS {
26         union {
27                 struct {
28                         u32 freq;
29                 } v40;
30         };
31 };
32
33 u32 nvbios_perfSe(struct nvkm_bios *, u32 data, int idx,
34                   u8 *ver, u8 *hdr, u8 cnt, u8 len);
35 u32 nvbios_perfSp(struct nvkm_bios *, u32 data, int idx,
36                   u8 *ver, u8 *hdr, u8 cnt, u8 len, struct nvbios_perfS *);
37
38 struct nvbios_perf_fan {
39         u32 pwm_divisor;
40 };
41
42 int nvbios_perf_fan_parse(struct nvkm_bios *, struct nvbios_perf_fan *);
43 #endif