pinctrl: uniphier: fix unused-const-variable warnings for GCC 6.x
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Sun, 9 Oct 2016 14:52:57 +0000 (23:52 +0900)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Tue, 18 Oct 2016 05:06:46 +0000 (14:06 +0900)
commit935e09cdcb6d6dfa41f4cd8c8a69da52ef6850ed
tree776975150b46e5e5a4ec4a1d818314272c452654
parentd5a815327d2c257fbba108ff46974b1c1d12fd2a
pinctrl: uniphier: fix unused-const-variable warnings for GCC 6.x

Marek reports warnings in UniPhier pinctrl drivers when compiled by
GCC 6.x, like:

  drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c:58:18: warning:
  'usb3_muxvals' defined but not used [-Wunused-const-variable=]
   static const int usb3_muxvals[] = {0, 0};
                    ^~~~~~~~~~~~

My intention here is to compile minimum set of pin data for SPL to
save memory footprint, but GCC these days is clever enough to notice
unused data arrays.

We can fix it by sprinkling around __maybe_unused on those arrays,
but I did not do that because they are counterparts of the pinctrl
drivers in Linux.  All the pin data were just copy-pasted from Linux
and are kept in sync for maintainability.

I chose a bit tricky way to fix the issue; calculate ARRAY_SIZE of
*_pins and *_muxvals and set their sum to an unused struct member.
This trick will satisfy GCC because the data arrays are used anyway,
but such data arrays will be dropped from the final binary because
the pointers to them are not used.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reported-by: Marek Vasut <marex@denx.de>
drivers/pinctrl/uniphier/pinctrl-uniphier.h