mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-02 23:27:06 +00:00
drm/nouveau/bios/volt: pointers are 32-bit
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
60fb7064e4
commit
ff5354120f
3 changed files with 17 additions and 17 deletions
|
@ -22,8 +22,8 @@ struct nvbios_volt {
|
||||||
u32 pwm_range;
|
u32 pwm_range;
|
||||||
};
|
};
|
||||||
|
|
||||||
u16 nvbios_volt_table(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len);
|
u32 nvbios_volt_table(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len);
|
||||||
u16 nvbios_volt_parse(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len,
|
u32 nvbios_volt_parse(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len,
|
||||||
struct nvbios_volt *);
|
struct nvbios_volt *);
|
||||||
|
|
||||||
struct nvbios_volt_entry {
|
struct nvbios_volt_entry {
|
||||||
|
@ -31,7 +31,7 @@ struct nvbios_volt_entry {
|
||||||
u8 vid;
|
u8 vid;
|
||||||
};
|
};
|
||||||
|
|
||||||
u16 nvbios_volt_entry(struct nvkm_bios *, int idx, u8 *ver, u8 *len);
|
u32 nvbios_volt_entry(struct nvkm_bios *, int idx, u8 *ver, u8 *len);
|
||||||
u16 nvbios_volt_entry_parse(struct nvkm_bios *, int idx, u8 *ver, u8 *len,
|
u32 nvbios_volt_entry_parse(struct nvkm_bios *, int idx, u8 *ver, u8 *len,
|
||||||
struct nvbios_volt_entry *);
|
struct nvbios_volt_entry *);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -25,18 +25,18 @@
|
||||||
#include <subdev/bios/bit.h>
|
#include <subdev/bios/bit.h>
|
||||||
#include <subdev/bios/volt.h>
|
#include <subdev/bios/volt.h>
|
||||||
|
|
||||||
u16
|
u32
|
||||||
nvbios_volt_table(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len)
|
nvbios_volt_table(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len)
|
||||||
{
|
{
|
||||||
struct bit_entry bit_P;
|
struct bit_entry bit_P;
|
||||||
u16 volt = 0x0000;
|
u32 volt = 0;
|
||||||
|
|
||||||
if (!bit_entry(bios, 'P', &bit_P)) {
|
if (!bit_entry(bios, 'P', &bit_P)) {
|
||||||
if (bit_P.version == 2)
|
if (bit_P.version == 2)
|
||||||
volt = nvbios_rd16(bios, bit_P.offset + 0x0c);
|
volt = nvbios_rd32(bios, bit_P.offset + 0x0c);
|
||||||
else
|
else
|
||||||
if (bit_P.version == 1)
|
if (bit_P.version == 1)
|
||||||
volt = nvbios_rd16(bios, bit_P.offset + 0x10);
|
volt = nvbios_rd32(bios, bit_P.offset + 0x10);
|
||||||
|
|
||||||
if (volt) {
|
if (volt) {
|
||||||
*ver = nvbios_rd08(bios, volt + 0);
|
*ver = nvbios_rd08(bios, volt + 0);
|
||||||
|
@ -62,14 +62,14 @@ nvbios_volt_table(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0x0000;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
u16
|
u32
|
||||||
nvbios_volt_parse(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len,
|
nvbios_volt_parse(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len,
|
||||||
struct nvbios_volt *info)
|
struct nvbios_volt *info)
|
||||||
{
|
{
|
||||||
u16 volt = nvbios_volt_table(bios, ver, hdr, cnt, len);
|
u32 volt = nvbios_volt_table(bios, ver, hdr, cnt, len);
|
||||||
memset(info, 0x00, sizeof(*info));
|
memset(info, 0x00, sizeof(*info));
|
||||||
switch (!!volt * *ver) {
|
switch (!!volt * *ver) {
|
||||||
case 0x12:
|
case 0x12:
|
||||||
|
@ -119,23 +119,23 @@ nvbios_volt_parse(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len,
|
||||||
return volt;
|
return volt;
|
||||||
}
|
}
|
||||||
|
|
||||||
u16
|
u32
|
||||||
nvbios_volt_entry(struct nvkm_bios *bios, int idx, u8 *ver, u8 *len)
|
nvbios_volt_entry(struct nvkm_bios *bios, int idx, u8 *ver, u8 *len)
|
||||||
{
|
{
|
||||||
u8 hdr, cnt;
|
u8 hdr, cnt;
|
||||||
u16 volt = nvbios_volt_table(bios, ver, &hdr, &cnt, len);
|
u32 volt = nvbios_volt_table(bios, ver, &hdr, &cnt, len);
|
||||||
if (volt && idx < cnt) {
|
if (volt && idx < cnt) {
|
||||||
volt = volt + hdr + (idx * *len);
|
volt = volt + hdr + (idx * *len);
|
||||||
return volt;
|
return volt;
|
||||||
}
|
}
|
||||||
return 0x0000;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
u16
|
u32
|
||||||
nvbios_volt_entry_parse(struct nvkm_bios *bios, int idx, u8 *ver, u8 *len,
|
nvbios_volt_entry_parse(struct nvkm_bios *bios, int idx, u8 *ver, u8 *len,
|
||||||
struct nvbios_volt_entry *info)
|
struct nvbios_volt_entry *info)
|
||||||
{
|
{
|
||||||
u16 volt = nvbios_volt_entry(bios, idx, ver, len);
|
u32 volt = nvbios_volt_entry(bios, idx, ver, len);
|
||||||
memset(info, 0x00, sizeof(*info));
|
memset(info, 0x00, sizeof(*info));
|
||||||
switch (!!volt * *ver) {
|
switch (!!volt * *ver) {
|
||||||
case 0x12:
|
case 0x12:
|
||||||
|
|
|
@ -189,7 +189,7 @@ nvkm_volt_parse_bios(struct nvkm_bios *bios, struct nvkm_volt *volt)
|
||||||
struct nvbios_volt_entry ivid;
|
struct nvbios_volt_entry ivid;
|
||||||
struct nvbios_volt info;
|
struct nvbios_volt info;
|
||||||
u8 ver, hdr, cnt, len;
|
u8 ver, hdr, cnt, len;
|
||||||
u16 data;
|
u32 data;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
data = nvbios_volt_parse(bios, &ver, &hdr, &cnt, &len, &info);
|
data = nvbios_volt_parse(bios, &ver, &hdr, &cnt, &len, &info);
|
||||||
|
|
Loading…
Reference in a new issue