2018-02-09 21:30:57

by Matthias Kaehlcke

[permalink] [raw]
Subject: [PATCH] amdgpu/dc: Add missing cast in dce_clock_set_min_clocks_state()

dce_clock_set_min_clocks_state() assigns (intentionally) a value of type
'enum dm_pp_clocks_state' to a variable of type 'enum dm_pp_power_level'
without an explicit cast. This causes clang to raise the following
warning:

drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_clocks.c:308:4: error:
implicit conversion from enumeration type 'enum dm_pp_clocks_state'
to different enumeration type 'enum dm_pp_power_level' [-Werror,-Wenum-conversion]
clocks_state };

Make the cast explicit.

Signed-off-by: Matthias Kaehlcke <[email protected]>
---
drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c b/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c
index 9e98a5f39a6d..db3ceb283255 100644
--- a/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c
+++ b/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c
@@ -304,7 +304,8 @@ static bool dce_clock_set_min_clocks_state(
enum dm_pp_clocks_state clocks_state)
{
struct dm_pp_power_level_change_request level_change_req = {
- clocks_state };
+ .power_level = (enum dm_pp_power_level)clocks_state
+ };

if (clocks_state > clk->max_clks_state) {
/*Requested state exceeds max supported state.*/
--
2.16.0.rc1.238.g530d649a79-goog



2018-02-09 21:57:07

by Harry Wentland

[permalink] [raw]
Subject: Re: [PATCH] amdgpu/dc: Add missing cast in dce_clock_set_min_clocks_state()

On 2018-02-09 04:28 PM, Matthias Kaehlcke wrote:
> dce_clock_set_min_clocks_state() assigns (intentionally) a value of type
> 'enum dm_pp_clocks_state' to a variable of type 'enum dm_pp_power_level'
> without an explicit cast. This causes clang to raise the following
> warning:
>
> drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_clocks.c:308:4: error:
> implicit conversion from enumeration type 'enum dm_pp_clocks_state'
> to different enumeration type 'enum dm_pp_power_level' [-Werror,-Wenum-conversion]
> clocks_state };
>
> Make the cast explicit.
>
> Signed-off-by: Matthias Kaehlcke <[email protected]>
> ---
> drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c b/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c
> index 9e98a5f39a6d..db3ceb283255 100644
> --- a/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c
> +++ b/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c
> @@ -304,7 +304,8 @@ static bool dce_clock_set_min_clocks_state(
> enum dm_pp_clocks_state clocks_state)
> {
> struct dm_pp_power_level_change_request level_change_req = {
> - clocks_state };
> + .power_level = (enum dm_pp_power_level)clocks_state

Thanks for spotting this. Looks like both enums are exactly the same so no need to keep both. I sent a patch to remove the dm_pp_power_level enum to amd-gfx and CC'd you on it.

Harry

> + };
>
> if (clocks_state > clk->max_clks_state) {
> /*Requested state exceeds max supported state.*/
>

2018-02-09 22:21:08

by Matthias Kaehlcke

[permalink] [raw]
Subject: Re: [PATCH] amdgpu/dc: Add missing cast in dce_clock_set_min_clocks_state()

El Fri, Feb 09, 2018 at 04:55:57PM -0500 Harry Wentland ha dit:

> On 2018-02-09 04:28 PM, Matthias Kaehlcke wrote:
> > dce_clock_set_min_clocks_state() assigns (intentionally) a value of type
> > 'enum dm_pp_clocks_state' to a variable of type 'enum dm_pp_power_level'
> > without an explicit cast. This causes clang to raise the following
> > warning:
> >
> > drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_clocks.c:308:4: error:
> > implicit conversion from enumeration type 'enum dm_pp_clocks_state'
> > to different enumeration type 'enum dm_pp_power_level' [-Werror,-Wenum-conversion]
> > clocks_state };
> >
> > Make the cast explicit.
> >
> > Signed-off-by: Matthias Kaehlcke <[email protected]>
> > ---
> > drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c b/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c
> > index 9e98a5f39a6d..db3ceb283255 100644
> > --- a/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c
> > +++ b/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c
> > @@ -304,7 +304,8 @@ static bool dce_clock_set_min_clocks_state(
> > enum dm_pp_clocks_state clocks_state)
> > {
> > struct dm_pp_power_level_change_request level_change_req = {
> > - clocks_state };
> > + .power_level = (enum dm_pp_power_level)clocks_state
>
> Thanks for spotting this. Looks like both enums are exactly the same so no need to keep both. I sent a patch to remove the dm_pp_power_level enum to amd-gfx and CC'd you on it.

Even better, thanks!