From: "Christian König" <christian.koenig@amd.com>
To: Arnd Bergmann <arnd@arndb.de>, Jammy Zhou <Jammy.Zhou@amd.com>,
David Airlie <airlied@linux.ie>
Cc: Eric Huang <JinHuiEric.Huang@amd.com>,
Alex Deucher <alexander.deucher@amd.com>,
linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
David Zhang <david1.zhang@amd.com>
Subject: Re: [PATCH] drm: powerplay: use div64_s64 instead of do_div
Date: Mon, 4 Jan 2016 13:48:25 +0100 [thread overview]
Message-ID: <568A6A19.7060309@amd.com> (raw)
In-Reply-To: <5249276.tkZ1gbxakA@wuerfel>
On 01.01.2016 14:07, Arnd Bergmann wrote:
> 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 <arnd@arndb.de>
Reviewed-by: Christian König <christian.koenig@amd.com>
> 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;
>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
WARNING: multiple messages have this Message-ID (diff)
From: "Christian König" <christian.koenig@amd.com>
To: Arnd Bergmann <arnd@arndb.de>, Jammy Zhou <Jammy.Zhou@amd.com>,
"David Airlie" <airlied@linux.ie>
Cc: Eric Huang <JinHuiEric.Huang@amd.com>,
Alex Deucher <alexander.deucher@amd.com>,
David Zhang <david1.zhang@amd.com>,
<linux-kernel@vger.kernel.org>, <dri-devel@lists.freedesktop.org>
Subject: Re: [PATCH] drm: powerplay: use div64_s64 instead of do_div
Date: Mon, 4 Jan 2016 13:48:25 +0100 [thread overview]
Message-ID: <568A6A19.7060309@amd.com> (raw)
In-Reply-To: <5249276.tkZ1gbxakA@wuerfel>
On 01.01.2016 14:07, Arnd Bergmann wrote:
> 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 <arnd@arndb.de>
Reviewed-by: Christian König <christian.koenig@amd.com>
> 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;
>
next prev parent reply other threads:[~2016-01-04 12:48 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-01 13:07 [PATCH] drm: powerplay: use div64_s64 instead of do_div Arnd Bergmann
2016-01-01 13:07 ` Arnd Bergmann
2016-01-04 8:17 ` Thierry Reding
2016-01-04 8:17 ` Thierry Reding
2016-01-04 12:48 ` Christian König [this message]
2016-01-04 12:48 ` Christian König
2016-01-04 15:42 ` Alex Deucher
2016-01-04 15:42 ` Alex Deucher
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=568A6A19.7060309@amd.com \
--to=christian.koenig@amd.com \
--cc=Jammy.Zhou@amd.com \
--cc=JinHuiEric.Huang@amd.com \
--cc=airlied@linux.ie \
--cc=alexander.deucher@amd.com \
--cc=arnd@arndb.de \
--cc=david1.zhang@amd.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.