linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ARM: pxa/raumfeld: use PROPERTY_ENTRY_INTEGER to define props
@ 2016-03-15 21:31 Arnd Bergmann
  2016-03-15 23:48 ` Dmitry Torokhov
  0 siblings, 1 reply; 2+ messages in thread
From: Arnd Bergmann @ 2016-03-15 21:31 UTC (permalink / raw)
  To: linux-arm-kernel

gcc-6.0 notices that the use of the property_entry in this file that
was recently introduced cannot work right, as we initialize the wrong
field:

raumfeld.c:387:3: error: the address of 'raumfeld_rotary_encoder_steps' will always evaluate as 'true' [-Werror=address]
   DEV_PROP_U32, 1, &raumfeld_rotary_encoder_steps, },
   ^~~~~~~~~~~~
raumfeld.c:389:3: error: the address of 'raumfeld_rotary_encoder_axis' will always evaluate as 'true' [-Werror=address]
   DEV_PROP_U32, 1, &raumfeld_rotary_encoder_axis, },
   ^~~~~~~~~~~~
raumfeld.c:391:3: error: the address of 'raumfeld_rotary_encoder_relative_axis' will always evaluate as 'true' [-Werror=address]
   DEV_PROP_U32, 1, &raumfeld_rotary_encoder_relative_axis, },
   ^~~~~~~~~~~~

The problem appears to stem from relying on an old definition of
'struct property', but it has changed several times since the code
could have last been correct.

This changes the code to use the PROPERTY_ENTRY_INTEGER() macro instead,
which works fine for the current definition and is a safer way of doing
the initialization.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: a9e340dce3c3 ("Input: rotary_encoder - move away from platform data structure")
---

The broken patch is currently in the input-next tree, please apply this
fixup on top.

 arch/arm/mach-pxa/raumfeld.c | 15 ++++-----------
 1 file changed, 4 insertions(+), 11 deletions(-)

diff --git a/arch/arm/mach-pxa/raumfeld.c b/arch/arm/mach-pxa/raumfeld.c
index 16ffd01daff1..5a941bd3dbed 100644
--- a/arch/arm/mach-pxa/raumfeld.c
+++ b/arch/arm/mach-pxa/raumfeld.c
@@ -378,18 +378,11 @@ static struct gpiod_lookup_table raumfeld_rotary_gpios_table = {
 	},
 };
 
-static u32 raumfeld_rotary_encoder_steps = 24;
-static u32 raumfeld_rotary_encoder_axis = REL_X;
-static u32 raumfeld_rotary_encoder_relative_axis = 1;
-
 static struct property_entry raumfeld_rotary_properties[] = {
-	{ "rotary-encoder,steps-per-period",
-		DEV_PROP_U32, 1, &raumfeld_rotary_encoder_steps, },
-	{ "linux,axis",
-		DEV_PROP_U32, 1, &raumfeld_rotary_encoder_axis, },
-	{ "rotary-encoder,relative_axis",
-		DEV_PROP_U32, 1, &raumfeld_rotary_encoder_relative_axis, },
-	{ NULL }
+	PROPERTY_ENTRY_INTEGER("rotary-encoder,steps-per-period", u32, 24),
+	PROPERTY_ENTRY_INTEGER("linux,axis",			  u32, REL_X),
+	PROPERTY_ENTRY_INTEGER("rotary-encoder,relative_axis",	  u32, 1),
+	{ },
 };
 
 static struct property_set raumfeld_rotary_property_set = {
-- 
2.7.0

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [PATCH] ARM: pxa/raumfeld: use PROPERTY_ENTRY_INTEGER to define props
  2016-03-15 21:31 [PATCH] ARM: pxa/raumfeld: use PROPERTY_ENTRY_INTEGER to define props Arnd Bergmann
@ 2016-03-15 23:48 ` Dmitry Torokhov
  0 siblings, 0 replies; 2+ messages in thread
From: Dmitry Torokhov @ 2016-03-15 23:48 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Mar 15, 2016 at 10:31:17PM +0100, Arnd Bergmann wrote:
> gcc-6.0 notices that the use of the property_entry in this file that
> was recently introduced cannot work right, as we initialize the wrong
> field:
> 
> raumfeld.c:387:3: error: the address of 'raumfeld_rotary_encoder_steps' will always evaluate as 'true' [-Werror=address]
>    DEV_PROP_U32, 1, &raumfeld_rotary_encoder_steps, },
>    ^~~~~~~~~~~~
> raumfeld.c:389:3: error: the address of 'raumfeld_rotary_encoder_axis' will always evaluate as 'true' [-Werror=address]
>    DEV_PROP_U32, 1, &raumfeld_rotary_encoder_axis, },
>    ^~~~~~~~~~~~
> raumfeld.c:391:3: error: the address of 'raumfeld_rotary_encoder_relative_axis' will always evaluate as 'true' [-Werror=address]
>    DEV_PROP_U32, 1, &raumfeld_rotary_encoder_relative_axis, },
>    ^~~~~~~~~~~~
> 
> The problem appears to stem from relying on an old definition of
> 'struct property', but it has changed several times since the code
> could have last been correct.
> 
> This changes the code to use the PROPERTY_ENTRY_INTEGER() macro instead,
> which works fine for the current definition and is a safer way of doing
> the initialization.

Ah, very nice, I hated how the original style of specifying properties
worked. I'll have to pull 4.5 into my branch first to get it though...

> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Fixes: a9e340dce3c3 ("Input: rotary_encoder - move away from platform data structure")
> ---
> 
> The broken patch is currently in the input-next tree, please apply this
> fixup on top.

Applied, thank you.

> 
>  arch/arm/mach-pxa/raumfeld.c | 15 ++++-----------
>  1 file changed, 4 insertions(+), 11 deletions(-)
> 
> diff --git a/arch/arm/mach-pxa/raumfeld.c b/arch/arm/mach-pxa/raumfeld.c
> index 16ffd01daff1..5a941bd3dbed 100644
> --- a/arch/arm/mach-pxa/raumfeld.c
> +++ b/arch/arm/mach-pxa/raumfeld.c
> @@ -378,18 +378,11 @@ static struct gpiod_lookup_table raumfeld_rotary_gpios_table = {
>  	},
>  };
>  
> -static u32 raumfeld_rotary_encoder_steps = 24;
> -static u32 raumfeld_rotary_encoder_axis = REL_X;
> -static u32 raumfeld_rotary_encoder_relative_axis = 1;
> -
>  static struct property_entry raumfeld_rotary_properties[] = {
> -	{ "rotary-encoder,steps-per-period",
> -		DEV_PROP_U32, 1, &raumfeld_rotary_encoder_steps, },
> -	{ "linux,axis",
> -		DEV_PROP_U32, 1, &raumfeld_rotary_encoder_axis, },
> -	{ "rotary-encoder,relative_axis",
> -		DEV_PROP_U32, 1, &raumfeld_rotary_encoder_relative_axis, },
> -	{ NULL }
> +	PROPERTY_ENTRY_INTEGER("rotary-encoder,steps-per-period", u32, 24),
> +	PROPERTY_ENTRY_INTEGER("linux,axis",			  u32, REL_X),
> +	PROPERTY_ENTRY_INTEGER("rotary-encoder,relative_axis",	  u32, 1),
> +	{ },
>  };
>  
>  static struct property_set raumfeld_rotary_property_set = {
> -- 
> 2.7.0
> 

-- 
Dmitry

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-03-15 23:48 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-15 21:31 [PATCH] ARM: pxa/raumfeld: use PROPERTY_ENTRY_INTEGER to define props Arnd Bergmann
2016-03-15 23:48 ` Dmitry Torokhov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).