diff mbox series

[v1,1/1] HID: debug: Remove duplicates from 'keys'

Message ID 20240905184351.311858-1-andriy.shevchenko@linux.intel.com (mailing list archive)
State Superseded
Delegated to: Jiri Kosina
Headers show
Series [v1,1/1] HID: debug: Remove duplicates from 'keys' | expand

Commit Message

Andy Shevchenko Sept. 5, 2024, 6:43 p.m. UTC
Duplicates in 'keys prevents kernel builds with clang, `make W=1` and
CONFIG_WERROR=y, for example:

drivers/hid/hid-debug.c:3443:18: error: initializer overrides prior initialization of this subobject [-Werror,-Winitializer-overrides]
 3443 |         [KEY_HANGEUL] = "HanGeul",              [KEY_HANGUP_PHONE] = "HangUpPhone",
      |                         ^~~~~~~~~
drivers/hid/hid-debug.c:3217:18: note: previous initialization is here
 3217 |         [KEY_HANGUEL] = "Hangeul",              [KEY_HANJA] = "Hanja",
      |                         ^~~~~~~~~

Fix this by removing them.

The logic of removal is that, remove...
1) if there is a constant that uses another defined constant, OR
2) the one that appears later in the list.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/hid/hid-debug.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

Comments

Andy Shevchenko Oct. 8, 2024, 7:06 p.m. UTC | #1
On Thu, Sep 05, 2024 at 09:43:50PM +0300, Andy Shevchenko wrote:
> Duplicates in 'keys prevents kernel builds with clang, `make W=1` and
> CONFIG_WERROR=y, for example:
> 
> drivers/hid/hid-debug.c:3443:18: error: initializer overrides prior initialization of this subobject [-Werror,-Winitializer-overrides]
>  3443 |         [KEY_HANGEUL] = "HanGeul",              [KEY_HANGUP_PHONE] = "HangUpPhone",
>       |                         ^~~~~~~~~
> drivers/hid/hid-debug.c:3217:18: note: previous initialization is here
>  3217 |         [KEY_HANGUEL] = "Hangeul",              [KEY_HANJA] = "Hanja",
>       |                         ^~~~~~~~~
> 
> Fix this by removing them.
> 
> The logic of removal is that, remove...
> 1) if there is a constant that uses another defined constant, OR
> 2) the one that appears later in the list.

Can this be applied or is there another approach?
Jiri Kosina Oct. 15, 2024, 12:20 p.m. UTC | #2
On Thu, 5 Sep 2024, Andy Shevchenko wrote:

> Duplicates in 'keys prevents kernel builds with clang, `make W=1` and
> CONFIG_WERROR=y, for example:
> 
> drivers/hid/hid-debug.c:3443:18: error: initializer overrides prior initialization of this subobject [-Werror,-Winitializer-overrides]
>  3443 |         [KEY_HANGEUL] = "HanGeul",              [KEY_HANGUP_PHONE] = "HangUpPhone",
>       |                         ^~~~~~~~~
> drivers/hid/hid-debug.c:3217:18: note: previous initialization is here
>  3217 |         [KEY_HANGUEL] = "Hangeul",              [KEY_HANJA] = "Hanja",
>       |                         ^~~~~~~~~
> 
> Fix this by removing them.
> 
> The logic of removal is that, remove...
> 1) if there is a constant that uses another defined constant, OR
> 2) the one that appears later in the list.
> 
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
>  drivers/hid/hid-debug.c | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/hid/hid-debug.c b/drivers/hid/hid-debug.c
> index d5abfe652fb5..618ebaa3bfc0 100644
> --- a/drivers/hid/hid-debug.c
> +++ b/drivers/hid/hid-debug.c
> @@ -3214,7 +3214,7 @@ static const char *keys[KEY_MAX + 1] = {
>  	[KEY_VOLUMEUP] = "VolumeUp",		[KEY_POWER] = "Power",
>  	[KEY_KPEQUAL] = "KPEqual",		[KEY_KPPLUSMINUS] = "KPPlusMinus",
>  	[KEY_PAUSE] = "Pause",			[KEY_KPCOMMA] = "KPComma",
> -	[KEY_HANGUEL] = "Hangeul",		[KEY_HANJA] = "Hanja",

The problem specifically with this one is really there to fix a typo 
someone did at some point in the past. See b9ab58dd8e771d ("Input: fix 
misspelling of Hangeul key").

So I think we should preserve it somehow.

The remaining ones seem indeed to be duplicates and I don't see a problem 
removing them.

Thanks,
Andy Shevchenko Oct. 16, 2024, 1:36 p.m. UTC | #3
On Tue, Oct 15, 2024 at 02:20:19PM +0200, Jiri Kosina wrote:
> On Thu, 5 Sep 2024, Andy Shevchenko wrote:

...

> > drivers/hid/hid-debug.c:3443:18: error: initializer overrides prior initialization of this subobject [-Werror,-Winitializer-overrides]
> >  3443 |         [KEY_HANGEUL] = "HanGeul",              [KEY_HANGUP_PHONE] = "HangUpPhone",
> >       |                         ^~~~~~~~~
> > drivers/hid/hid-debug.c:3217:18: note: previous initialization is here
> >  3217 |         [KEY_HANGUEL] = "Hangeul",              [KEY_HANJA] = "Hanja",
> >       |                         ^~~~~~~~~
> > 
> > Fix this by removing them.
> > 
> > The logic of removal is that, remove...
> > 1) if there is a constant that uses another defined constant, OR
> > 2) the one that appears later in the list.

...

> > -	[KEY_HANGUEL] = "Hangeul",		[KEY_HANJA] = "Hanja",
> 
> The problem specifically with this one is really there to fix a typo 
> someone did at some point in the past. See b9ab58dd8e771d ("Input: fix 
> misspelling of Hangeul key").
> 
> So I think we should preserve it somehow.

Right, I fixed that in v2 that has been just sent out.
diff mbox series

Patch

diff --git a/drivers/hid/hid-debug.c b/drivers/hid/hid-debug.c
index d5abfe652fb5..618ebaa3bfc0 100644
--- a/drivers/hid/hid-debug.c
+++ b/drivers/hid/hid-debug.c
@@ -3214,7 +3214,7 @@  static const char *keys[KEY_MAX + 1] = {
 	[KEY_VOLUMEUP] = "VolumeUp",		[KEY_POWER] = "Power",
 	[KEY_KPEQUAL] = "KPEqual",		[KEY_KPPLUSMINUS] = "KPPlusMinus",
 	[KEY_PAUSE] = "Pause",			[KEY_KPCOMMA] = "KPComma",
-	[KEY_HANGUEL] = "Hangeul",		[KEY_HANJA] = "Hanja",
+	[KEY_HANJA] = "Hanja",
 	[KEY_YEN] = "Yen",			[KEY_LEFTMETA] = "LeftMeta",
 	[KEY_RIGHTMETA] = "RightMeta",		[KEY_COMPOSE] = "Compose",
 	[KEY_STOP] = "Stop",			[KEY_AGAIN] = "Again",
@@ -3309,9 +3309,9 @@  static const char *keys[KEY_MAX + 1] = {
 	[KEY_EPG] = "EPG",			[KEY_PVR] = "PVR",
 	[KEY_MHP] = "MHP",			[KEY_LANGUAGE] = "Language",
 	[KEY_TITLE] = "Title",			[KEY_SUBTITLE] = "Subtitle",
-	[KEY_ANGLE] = "Angle",			[KEY_ZOOM] = "Zoom",
+	[KEY_ANGLE] = "Angle",
 	[KEY_MODE] = "Mode",			[KEY_KEYBOARD] = "Keyboard",
-	[KEY_SCREEN] = "Screen",		[KEY_PC] = "PC",
+	[KEY_PC] = "PC",
 	[KEY_TV] = "TV",			[KEY_TV2] = "TV2",
 	[KEY_VCR] = "VCR",			[KEY_VCR2] = "VCR2",
 	[KEY_SAT] = "Sat",			[KEY_SAT2] = "Sat2",
@@ -3409,8 +3409,7 @@  static const char *keys[KEY_MAX + 1] = {
 	[BTN_TRIGGER_HAPPY35] = "TriggerHappy35", [BTN_TRIGGER_HAPPY36] = "TriggerHappy36",
 	[BTN_TRIGGER_HAPPY37] = "TriggerHappy37", [BTN_TRIGGER_HAPPY38] = "TriggerHappy38",
 	[BTN_TRIGGER_HAPPY39] = "TriggerHappy39", [BTN_TRIGGER_HAPPY40] = "TriggerHappy40",
-	[BTN_DIGI] = "Digi",			[BTN_STYLUS3] = "Stylus3",
-	[BTN_TOOL_QUINTTAP] = "ToolQuintTap",	[BTN_WHEEL] = "Wheel",
+	[BTN_STYLUS3] = "Stylus3",		 [BTN_TOOL_QUINTTAP] = "ToolQuintTap",
 	[KEY_10CHANNELSDOWN] = "10ChannelsDown",
 	[KEY_10CHANNELSUP] = "10ChannelsUp",
 	[KEY_3D_MODE] = "3DMode",		[KEY_ADDRESSBOOK] = "Addressbook",