[PATCH] ARM: pxa/raumfeld: use PROPERTY_ENTRY_INTEGER to define props

Dmitry Torokhov dmitry.torokhov at gmail.com
Tue Mar 15 16:48:30 PDT 2016


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 at 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



More information about the linux-arm-kernel mailing list