瀏覽代碼

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: Alexandre Courbot <acourbot@nvidia.com>
Reviewed-by: Karol Herbst <karolherbst@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Alexandre Courbot 9 年之前
父節點
當前提交
321c258e91
共有 1 個文件被更改,包括 3 次插入3 次删除
  1. 3 3
      drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c

+ 3 - 3
drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c

@@ -116,9 +116,9 @@ nvkm_volt_map(struct nvkm_volt *volt, u8 id, u8 temp)
 			return volt->speedo;
 
 		if (ver == 0x10 || (ver == 0x20 && info.mode == 0)) {
-			result  =  (s64)info.arg[0] / 10;
-			result += ((s64)info.arg[1] * volt->speedo) / 10;
-			result += ((s64)info.arg[2] * volt->speedo * volt->speedo) / 100000;
+			result  = div64_s64((s64)info.arg[0], 10);
+			result += div64_s64((s64)info.arg[1] * volt->speedo, 10);
+			result += div64_s64((s64)info.arg[2] * volt->speedo * volt->speedo, 100000);
 		} else if (ver == 0x20) {
 			switch (info.mode) {
 			/* 0x0 handled above! */