From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arnd Bergmann Subject: [PATCH] drm: powerplay: use div64_s64 instead of do_div Date: Fri, 01 Jan 2016 14:07:41 +0100 Message-ID: <5249276.tkZ1gbxakA@wuerfel> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.130]) by gabe.freedesktop.org (Postfix) with ESMTPS id C923372043 for ; Fri, 1 Jan 2016 05:07:50 -0800 (PST) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jammy Zhou , David Airlie Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Alex Deucher , David Zhang , Eric Huang , Christian =?ISO-8859-1?Q?K=F6nig?= List-Id: dri-devel@lists.freedesktop.org VGhlIG5ld2x5IGFkZGVkIGNvZGUgZm9yIEZpamkgY3JlYXRlcyBhIGNvcnJlY3QgY29tcGlsZXIg d2FybmluZwphYm91dCBpbnZhbGlkIHVzZSBvZiB0aGUgZG9fZGl2IG1hY3JvOgoKSW4gZmlsZSBp bmNsdWRlZCBmcm9tIHBvd2VycGxheS9od21nci9wcGF0b21jdHJsLmM6MzE6MDoKZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvLi4vcG93ZXJwbGF5L2h3bWdyL3BwZXZ2bWF0aC5oOiBJbiBmdW5j dGlvbiAnZkRpdmlkZSc6CmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL3Bvd2VycGxheS9o d21nci9wcGV2dm1hdGguaDozODI6ODk6IHdhcm5pbmc6IGNvbXBhcmlzb24gb2YgZGlzdGluY3Qg cG9pbnRlciB0eXBlcyBsYWNrcyBhIGNhc3QKICAgICBkb19kaXYobG9uZ2xvbmdYLCBsb25nbG9u Z1kpOyAvKlEoMzIsMzIpIGRpdmlkZWQgYnkgUSgxNiwxNikgPSBRKDE2LDE2KSBCYWNrIHRvIG9y aWdpbmFsIGZvcm1hdCAqLwoKZG9fZGl2KCkgZGl2aWRlcyBhbiB1bnNpZ25lZCA2NC1iaXQgbnVt YmVyIGJ5IGFuIHVuc2lnbmVkIDMyLWJpdCBudW1iZXIuClRoZSBjb2RlIGluc3RlYWQgd2FudHMg dG8gZGl2aWRlIHR3byBzaWduZWQgNjQtYml0IG51bWJlcnMsIHdoaWNoIGlzIGRvbmUKdXNpbmcg dGhlIGRpdjY0X3M2NCBmdW5jdGlvbi4KClNpZ25lZC1vZmYtYnk6IEFybmQgQmVyZ21hbm4gPGFy bmRAYXJuZGIuZGU+CkZpeGVzOiA3NzA5MTFhM2NmYmIgKCJkcm0vYW1kL3Bvd2VycGxheTogYWRk L3VwZGF0ZSBoZWFkZXJzIGZvciBGaWppIFNNVSBhbmQgRFBNIikKLS0tCkZvdW5kIG9uIEFSTSBh bGxtb2Rjb25maWcgb24geWVzdGVyZGF5J3MgbGludXgtbmV4dCAKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9wcGV2dm1hdGguaCBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3BwZXZ2bWF0aC5oCmluZGV4IDQyZjI0MjNjZGRlYS4u NDExY2IwZmNkZjk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9o d21nci9wcGV2dm1hdGguaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21n ci9wcGV2dm1hdGguaApAQCAtMzc5LDcgKzM3OSw3IEBAIGZJbnQgZkRpdmlkZSAoZkludCBYLCBm SW50IFkpCiAKICAgICBsb25nbG9uZ1ggPSBsb25nbG9uZ1ggPDwgMTY7IC8qUSgxNiwxNikgLT4g USgzMiwzMikgKi8KIAotICAgIGRvX2Rpdihsb25nbG9uZ1gsIGxvbmdsb25nWSk7IC8qUSgzMiwz MikgZGl2aWRlZCBieSBRKDE2LDE2KSA9IFEoMTYsMTYpIEJhY2sgdG8gb3JpZ2luYWwgZm9ybWF0 ICovCisgICAgZGl2NjRfczY0KGxvbmdsb25nWCwgbG9uZ2xvbmdZKTsgLypRKDMyLDMyKSBkaXZp ZGVkIGJ5IFEoMTYsMTYpID0gUSgxNiwxNikgQmFjayB0byBvcmlnaW5hbCBmb3JtYXQgKi8KIAog ICAgIGZRdW90aWVudC5mdWxsID0gKGludClsb25nbG9uZ1g7CiAgICAgcmV0dXJuIGZRdW90aWVu dDsKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751953AbcAANHy (ORCPT ); Fri, 1 Jan 2016 08:07:54 -0500 Received: from mout.kundenserver.de ([212.227.126.130]:50202 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751741AbcAANHw (ORCPT ); Fri, 1 Jan 2016 08:07:52 -0500 From: Arnd Bergmann To: Jammy Zhou , David Airlie Cc: Eric Huang , Alex Deucher , Christian =?ISO-8859-1?Q?K=F6nig?= , David Zhang , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org Subject: [PATCH] drm: powerplay: use div64_s64 instead of do_div Date: Fri, 01 Jan 2016 14:07:41 +0100 Message-ID: <5249276.tkZ1gbxakA@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:f8DqyU26c14Cnc5C8BOFosBD+oM4VailK3buO9s6totjWY30+iT cd+256SDKjvKKMHab/6qmXe3kf50Vr1CVQdGk9Tv+B8g3WKx/XbnEJRYcGUQKHroYLQ2GAM BVqaNNVNgvgbWNZA+4lCBJlRwxcgAZ1NN6/7kZIqoi4o6fSqfO4LQO0GjHIfC9FBJUdgi3P 02IZ+lu7RxNgPhxDseCgg== X-UI-Out-Filterresults: notjunk:1;V01:K0:LI0fyrKSbTU=:7s4jTT0/esrhff4GWaCURo ZRvKLPLPZBzYvLfaQhvWi5Uq9asSBpAS+sI1aIteXj2P1zMKgOtAlvIvyBVC9y4NnTNZ+8z7R XmVbXaJtHJNkttN01sC98zzwiIxcAA9NzFaJuy70rZ0rZgfZPnTshi2Nda0CrEvU1wXwHgJ2W sytXPLLBG4ZEPwL4jzJwQdVBxf8dD768PM9JyKzIxVQ0VF1tnJWkAnAp2WlYJ4lupkjFK1L7e Py5y6SfNxtHHaUdSHYcNMruZHd3WJLZ5YMRsCpXg8+DZiJr3SkLUHhrzyW4lv+K0un/N9Ra9i AsEcM344Zm1rUiXcFst0QsdrBXms55BfuteK0oY/nk3dS4kcc43cTeryF0i0B6NJD7klXJOU9 3Tw5Sbx4fuqXdlMvKCaKTZqOfL6Mh+DtgZPIuU3igt9E03KBrg8kano5hNM1NbwN62OLE4lIJ 6dzW/yqIqfpGFRjEmbNfnwzb17X2iwIPvENHP/cFWqZ2kuhD5k9IUkg0H6jLdfgDdq6iMiWs7 CH6ExqKp39a58CvkLxDYgvG4PIaWqHcCxWbTjRia+T57Ww/O5VTkBI0h2AEdS+dPlxgZan7hs xyzuXPXuWtoEWAzuf/eHwi1N1gDHIxxzcHB91itid5ky3AMm8YaFLSY0LAnJFLCn8nuohsySP pIWNjNu4mZg1ps4PAYaW2wyVvQmezs8jbm1FdYPHS0+XVbVLDCAlyyJOn7NEA3vB5Rk97Jipp xwIl5IyVcPptsTdz Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The newly added code for Fiji creates a correct compiler warning about invalid use of the do_div macro: In file included from powerplay/hwmgr/ppatomctrl.c:31:0: drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/ppevvmath.h: In function 'fDivide': drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/ppevvmath.h:382:89: warning: comparison of distinct pointer types lacks a cast do_div(longlongX, longlongY); /*Q(32,32) divided by Q(16,16) = Q(16,16) Back to original format */ do_div() divides an unsigned 64-bit number by an unsigned 32-bit number. The code instead wants to divide two signed 64-bit numbers, which is done using the div64_s64 function. Signed-off-by: Arnd Bergmann Fixes: 770911a3cfbb ("drm/amd/powerplay: add/update headers for Fiji SMU and DPM") --- Found on ARM allmodconfig on yesterday's linux-next diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/ppevvmath.h b/drivers/gpu/drm/amd/powerplay/hwmgr/ppevvmath.h index 42f2423cddea..411cb0fcdf98 100644 --- a/drivers/gpu/drm/amd/powerplay/hwmgr/ppevvmath.h +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/ppevvmath.h @@ -379,7 +379,7 @@ fInt fDivide (fInt X, fInt Y) longlongX = longlongX << 16; /*Q(16,16) -> Q(32,32) */ - do_div(longlongX, longlongY); /*Q(32,32) divided by Q(16,16) = Q(16,16) Back to original format */ + div64_s64(longlongX, longlongY); /*Q(32,32) divided by Q(16,16) = Q(16,16) Back to original format */ fQuotient.full = (int)longlongX; return fQuotient;