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 45