Loading drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/perf.h +3 −3 Original line number Diff line number Diff line #ifndef __NVBIOS_PERF_H__ #define __NVBIOS_PERF_H__ u16 nvbios_perf_table(struct nvkm_bios *, u8 *ver, u8 *hdr, u32 nvbios_perf_table(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len, u8 *snr, u8 *ssz); struct nvbios_perfE { Loading @@ -17,9 +17,9 @@ struct nvbios_perfE { u8 pcie_width; }; u16 nvbios_perf_entry(struct nvkm_bios *, int idx, u32 nvbios_perf_entry(struct nvkm_bios *, int idx, u8 *ver, u8 *hdr, u8 *cnt, u8 *len); u16 nvbios_perfEp(struct nvkm_bios *, int idx, u32 nvbios_perfEp(struct nvkm_bios *, int idx, u8 *ver, u8 *hdr, u8 *cnt, u8 *len, struct nvbios_perfE *); struct nvbios_perfS { Loading drivers/gpu/drm/nouveau/nvkm/subdev/bios/perf.c +11 −11 Original line number Diff line number Diff line Loading @@ -26,16 +26,16 @@ #include <subdev/bios/perf.h> #include <subdev/pci.h> u16 u32 nvbios_perf_table(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len, u8 *snr, u8 *ssz) { struct bit_entry bit_P; u16 perf = 0x0000; u32 perf = 0; if (!bit_entry(bios, 'P', &bit_P)) { if (bit_P.version <= 2) { perf = nvbios_rd16(bios, bit_P.offset + 0); perf = nvbios_rd32(bios, bit_P.offset + 0); if (perf) { *ver = nvbios_rd08(bios, perf + 0); *hdr = nvbios_rd08(bios, perf + 1); Loading Loading @@ -72,15 +72,15 @@ nvbios_perf_table(struct nvkm_bios *bios, u8 *ver, u8 *hdr, } } return 0x0000; return 0; } u16 u32 nvbios_perf_entry(struct nvkm_bios *bios, int idx, u8 *ver, u8 *hdr, u8 *cnt, u8 *len) { u8 snr, ssz; u16 perf = nvbios_perf_table(bios, ver, hdr, cnt, len, &snr, &ssz); u32 perf = nvbios_perf_table(bios, ver, hdr, cnt, len, &snr, &ssz); if (perf && idx < *cnt) { perf = perf + *hdr + (idx * (*len + (snr * ssz))); *hdr = *len; Loading @@ -88,14 +88,14 @@ nvbios_perf_entry(struct nvkm_bios *bios, int idx, *len = ssz; return perf; } return 0x0000; return 0; } u16 u32 nvbios_perfEp(struct nvkm_bios *bios, int idx, u8 *ver, u8 *hdr, u8 *cnt, u8 *len, struct nvbios_perfE *info) { u16 perf = nvbios_perf_entry(bios, idx, ver, hdr, cnt, len); u32 perf = nvbios_perf_entry(bios, idx, ver, hdr, cnt, len); memset(info, 0x00, sizeof(*info)); info->pstate = nvbios_rd08(bios, perf + 0x00); switch (!!perf * *ver) { Loading Loading @@ -163,7 +163,7 @@ nvbios_perfEp(struct nvkm_bios *bios, int idx, info->pcie_width = 0xff; break; default: return 0x0000; return 0; } return perf; } Loading Loading @@ -202,7 +202,7 @@ nvbios_perf_fan_parse(struct nvkm_bios *bios, struct nvbios_perf_fan *fan) { u8 ver, hdr, cnt, len, snr, ssz; u16 perf = nvbios_perf_table(bios, &ver, &hdr, &cnt, &len, &snr, &ssz); u32 perf = nvbios_perf_table(bios, &ver, &hdr, &cnt, &len, &snr, &ssz); if (!perf) return -ENODEV; Loading drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm200.c +2 −0 Original line number Diff line number Diff line Loading @@ -130,6 +130,7 @@ gm200_devinit_post(struct nvkm_devinit *base, bool post) /* upload first chunk of init data */ if (post) { // devinit tables u32 pmu = pmu_args(init, args + 0x08, 0x08); u32 img = nvbios_rd16(bios, bit_I.offset + 0x14); u32 len = nvbios_rd16(bios, bit_I.offset + 0x16); Loading @@ -138,6 +139,7 @@ gm200_devinit_post(struct nvkm_devinit *base, bool post) /* upload second chunk of init data */ if (post) { // devinit boot scripts u32 pmu = pmu_args(init, args + 0x08, 0x10); u32 img = nvbios_rd16(bios, bit_I.offset + 0x18); u32 len = nvbios_rd16(bios, bit_I.offset + 0x1a); Loading Loading
drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/perf.h +3 −3 Original line number Diff line number Diff line #ifndef __NVBIOS_PERF_H__ #define __NVBIOS_PERF_H__ u16 nvbios_perf_table(struct nvkm_bios *, u8 *ver, u8 *hdr, u32 nvbios_perf_table(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len, u8 *snr, u8 *ssz); struct nvbios_perfE { Loading @@ -17,9 +17,9 @@ struct nvbios_perfE { u8 pcie_width; }; u16 nvbios_perf_entry(struct nvkm_bios *, int idx, u32 nvbios_perf_entry(struct nvkm_bios *, int idx, u8 *ver, u8 *hdr, u8 *cnt, u8 *len); u16 nvbios_perfEp(struct nvkm_bios *, int idx, u32 nvbios_perfEp(struct nvkm_bios *, int idx, u8 *ver, u8 *hdr, u8 *cnt, u8 *len, struct nvbios_perfE *); struct nvbios_perfS { Loading
drivers/gpu/drm/nouveau/nvkm/subdev/bios/perf.c +11 −11 Original line number Diff line number Diff line Loading @@ -26,16 +26,16 @@ #include <subdev/bios/perf.h> #include <subdev/pci.h> u16 u32 nvbios_perf_table(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len, u8 *snr, u8 *ssz) { struct bit_entry bit_P; u16 perf = 0x0000; u32 perf = 0; if (!bit_entry(bios, 'P', &bit_P)) { if (bit_P.version <= 2) { perf = nvbios_rd16(bios, bit_P.offset + 0); perf = nvbios_rd32(bios, bit_P.offset + 0); if (perf) { *ver = nvbios_rd08(bios, perf + 0); *hdr = nvbios_rd08(bios, perf + 1); Loading Loading @@ -72,15 +72,15 @@ nvbios_perf_table(struct nvkm_bios *bios, u8 *ver, u8 *hdr, } } return 0x0000; return 0; } u16 u32 nvbios_perf_entry(struct nvkm_bios *bios, int idx, u8 *ver, u8 *hdr, u8 *cnt, u8 *len) { u8 snr, ssz; u16 perf = nvbios_perf_table(bios, ver, hdr, cnt, len, &snr, &ssz); u32 perf = nvbios_perf_table(bios, ver, hdr, cnt, len, &snr, &ssz); if (perf && idx < *cnt) { perf = perf + *hdr + (idx * (*len + (snr * ssz))); *hdr = *len; Loading @@ -88,14 +88,14 @@ nvbios_perf_entry(struct nvkm_bios *bios, int idx, *len = ssz; return perf; } return 0x0000; return 0; } u16 u32 nvbios_perfEp(struct nvkm_bios *bios, int idx, u8 *ver, u8 *hdr, u8 *cnt, u8 *len, struct nvbios_perfE *info) { u16 perf = nvbios_perf_entry(bios, idx, ver, hdr, cnt, len); u32 perf = nvbios_perf_entry(bios, idx, ver, hdr, cnt, len); memset(info, 0x00, sizeof(*info)); info->pstate = nvbios_rd08(bios, perf + 0x00); switch (!!perf * *ver) { Loading Loading @@ -163,7 +163,7 @@ nvbios_perfEp(struct nvkm_bios *bios, int idx, info->pcie_width = 0xff; break; default: return 0x0000; return 0; } return perf; } Loading Loading @@ -202,7 +202,7 @@ nvbios_perf_fan_parse(struct nvkm_bios *bios, struct nvbios_perf_fan *fan) { u8 ver, hdr, cnt, len, snr, ssz; u16 perf = nvbios_perf_table(bios, &ver, &hdr, &cnt, &len, &snr, &ssz); u32 perf = nvbios_perf_table(bios, &ver, &hdr, &cnt, &len, &snr, &ssz); if (!perf) return -ENODEV; Loading
drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm200.c +2 −0 Original line number Diff line number Diff line Loading @@ -130,6 +130,7 @@ gm200_devinit_post(struct nvkm_devinit *base, bool post) /* upload first chunk of init data */ if (post) { // devinit tables u32 pmu = pmu_args(init, args + 0x08, 0x08); u32 img = nvbios_rd16(bios, bit_I.offset + 0x14); u32 len = nvbios_rd16(bios, bit_I.offset + 0x16); Loading @@ -138,6 +139,7 @@ gm200_devinit_post(struct nvkm_devinit *base, bool post) /* upload second chunk of init data */ if (post) { // devinit boot scripts u32 pmu = pmu_args(init, args + 0x08, 0x10); u32 img = nvbios_rd16(bios, bit_I.offset + 0x18); u32 len = nvbios_rd16(bios, bit_I.offset + 0x1a); Loading