Commit 321c258e authored by Alexandre Courbot's avatar Alexandre Courbot Committed by Ben Skeggs

drm/nouveau/volt: use kernel's 64-bit signed division function

Doing direct 64 bit divisions in kernel code leads to references to
undefined symbols on 32 bit architectures. Replace such divisions with
calls to div64_s64 to make the module usable on 32 bit archs.
Signed-off-by: default avatarAlexandre Courbot <acourbot@nvidia.com>
Reviewed-by: default avatarKarol Herbst <karolherbst@gmail.com>
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent d6c6035a
...@@ -116,9 +116,9 @@ nvkm_volt_map(struct nvkm_volt *volt, u8 id, u8 temp) ...@@ -116,9 +116,9 @@ nvkm_volt_map(struct nvkm_volt *volt, u8 id, u8 temp)
return volt->speedo; return volt->speedo;
if (ver == 0x10 || (ver == 0x20 && info.mode == 0)) { if (ver == 0x10 || (ver == 0x20 && info.mode == 0)) {
result = (s64)info.arg[0] / 10; result = div64_s64((s64)info.arg[0], 10);
result += ((s64)info.arg[1] * volt->speedo) / 10; result += div64_s64((s64)info.arg[1] * volt->speedo, 10);
result += ((s64)info.arg[2] * volt->speedo * volt->speedo) / 100000; result += div64_s64((s64)info.arg[2] * volt->speedo * volt->speedo, 100000);
} else if (ver == 0x20) { } else if (ver == 0x20) {
switch (info.mode) { switch (info.mode) {
/* 0x0 handled above! */ /* 0x0 handled above! */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment