Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: pxa/raumfeld: use PROPERTY_ENTRY_INTEGER to define props

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")
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

authored by

Arnd Bergmann and committed by
Dmitry Torokhov
4d2508a5 245f0db0

+4 -11
+4 -11
arch/arm/mach-pxa/raumfeld.c
··· 378 378 }, 379 379 }; 380 380 381 - static u32 raumfeld_rotary_encoder_steps = 24; 382 - static u32 raumfeld_rotary_encoder_axis = REL_X; 383 - static u32 raumfeld_rotary_encoder_relative_axis = 1; 384 - 385 381 static struct property_entry raumfeld_rotary_properties[] = { 386 - { "rotary-encoder,steps-per-period", 387 - DEV_PROP_U32, 1, &raumfeld_rotary_encoder_steps, }, 388 - { "linux,axis", 389 - DEV_PROP_U32, 1, &raumfeld_rotary_encoder_axis, }, 390 - { "rotary-encoder,relative_axis", 391 - DEV_PROP_U32, 1, &raumfeld_rotary_encoder_relative_axis, }, 392 - { NULL } 382 + PROPERTY_ENTRY_INTEGER("rotary-encoder,steps-per-period", u32, 24), 383 + PROPERTY_ENTRY_INTEGER("linux,axis", u32, REL_X), 384 + PROPERTY_ENTRY_INTEGER("rotary-encoder,relative_axis", u32, 1), 385 + { }, 393 386 }; 394 387 395 388 static struct property_set raumfeld_rotary_property_set = {