perf.h 994 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. 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. u32 nvbios_perf_entry(struct nvkm_bios *, int idx,
  20. u8 *ver, u8 *hdr, u8 *cnt, u8 *len);
  21. u32 nvbios_perfEp(struct nvkm_bios *, int idx,
  22. u8 *ver, u8 *hdr, u8 *cnt, u8 *len, struct nvbios_perfE *);
  23. struct nvbios_perfS {
  24. union {
  25. struct {
  26. u32 freq;
  27. } v40;
  28. };
  29. };
  30. u32 nvbios_perfSe(struct nvkm_bios *, u32 data, int idx,
  31. u8 *ver, u8 *hdr, u8 cnt, u8 len);
  32. u32 nvbios_perfSp(struct nvkm_bios *, u32 data, int idx,
  33. u8 *ver, u8 *hdr, u8 cnt, u8 len, struct nvbios_perfS *);
  34. struct nvbios_perf_fan {
  35. u32 pwm_divisor;
  36. };
  37. int nvbios_perf_fan_parse(struct nvkm_bios *, struct nvbios_perf_fan *);
  38. #endif