All of lore.kernel.org
 help / color / mirror / Atom feed
* [asahilinux:bits/090-spi-hid 5/19] drivers/hid/hid-apple.c:477:25: warning: this statement may fall through
@ 2025-10-12 22:18 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2025-10-12 22:18 UTC (permalink / raw)
  To: Janne Grunau; +Cc: oe-kbuild-all

tree:   https://github.com/AsahiLinux/linux bits/090-spi-hid
head:   57763d4a44d353b9510a5673c597e6e74fc132f8
commit: 451569bd645d6d8dd98d351b10e7d062898d0f90 [5/19] HID: apple: Bind Apple silicon SPI devices
config: csky-randconfig-002-20251013 (https://download.01.org/0day-ci/archive/20251013/202510130620.FOTSaTpf-lkp@intel.com/config)
compiler: csky-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251013/202510130620.FOTSaTpf-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202510130620.FOTSaTpf-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/hid/hid-apple.c: In function 'hidinput_apple_event':
>> drivers/hid/hid-apple.c:477:25: warning: this statement may fall through [-Wimplicit-fallthrough=]
     477 |                         switch (hid->product) {
         |                         ^~~~~~
   drivers/hid/hid-apple.c:485:17: note: here
     485 |                 default:
         |                 ^~~~~~~


vim +477 drivers/hid/hid-apple.c

   418	
   419	static int hidinput_apple_event(struct hid_device *hid, struct input_dev *input,
   420			struct hid_usage *usage, __s32 value)
   421	{
   422		struct apple_sc *asc = hid_get_drvdata(hid);
   423		const struct apple_key_translation *trans, *table;
   424		bool do_translate;
   425		u16 code = usage->code;
   426		unsigned int real_fnmode;
   427	
   428		if (fnmode == 3) {
   429			if (asc->quirks & APPLE_DISABLE_FKEYS)
   430				real_fnmode = 4;
   431			else if (asc->quirks & APPLE_IS_NON_APPLE)
   432				real_fnmode = 2;
   433			else
   434				real_fnmode = 1;
   435		} else {
   436			real_fnmode = fnmode;
   437		}
   438	
   439		if (swap_fn_leftctrl) {
   440			trans = apple_find_translation(swapped_fn_leftctrl_keys, code);
   441	
   442			if (trans)
   443				code = trans->to;
   444		}
   445	
   446		if (iso_layout > 0 || (iso_layout < 0 && (asc->quirks & APPLE_ISO_TILDE_QUIRK) &&
   447				hid->country == HID_COUNTRY_INTERNATIONAL_ISO)) {
   448			trans = apple_find_translation(apple_iso_keyboard, code);
   449	
   450			if (trans)
   451				code = trans->to;
   452		}
   453	
   454		if (swap_opt_cmd) {
   455			if (swap_opt_cmd == 2)
   456				trans = apple_find_translation(swapped_option_cmd_left_keys, code);
   457			else
   458				trans = apple_find_translation(swapped_option_cmd_keys, code);
   459	
   460			if (trans)
   461				code = trans->to;
   462		}
   463	
   464		if (swap_ctrl_cmd) {
   465			trans = apple_find_translation(swapped_ctrl_cmd_keys, code);
   466	
   467			if (trans)
   468				code = trans->to;
   469		}
   470	
   471		if (code == KEY_FN)
   472			asc->fn_on = !!value;
   473	
   474		if (real_fnmode) {
   475			switch (hid->bus) {
   476			case BUS_SPI:
 > 477				switch (hid->product) {
   478					case SPI_DEVICE_ID_APPLE_MACBOOK_PRO13_2020:
   479					table = macbookpro_dedicated_esc_fn_keys;
   480					break;
   481				default:
   482					table = magic_keyboard_2021_and_2024_fn_keys;
   483					break;
   484				}
   485			default:
   486			switch (hid->product) {
   487			case USB_DEVICE_ID_APPLE_ALU_WIRELESS_ANSI:
   488			case USB_DEVICE_ID_APPLE_ALU_WIRELESS_ISO:
   489			case USB_DEVICE_ID_APPLE_ALU_WIRELESS_JIS:
   490			case USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI:
   491			case USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO:
   492			case USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS:
   493			case USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ANSI:
   494			case USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ISO:
   495			case USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_JIS:
   496				table = magic_keyboard_alu_fn_keys;
   497				break;
   498			case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2015:
   499			case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2015:
   500				table = magic_keyboard_2015_fn_keys;
   501				break;
   502			case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021:
   503			case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021:
   504			case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2021:
   505			case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024:
   506			case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2024:
   507			case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2024:
   508				table = magic_keyboard_2021_and_2024_fn_keys;
   509				break;
   510			case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J132:
   511			case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J213:
   512			case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J680:
   513			case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J680_ALT:
   514				table = macbookpro_no_esc_fn_keys;
   515				break;
   516			case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J152F:
   517			case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J214K:
   518			case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J223:
   519				table = macbookpro_dedicated_esc_fn_keys;
   520				break;
   521			case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J140K:
   522			case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J230K:
   523				table = apple_fn_keys;
   524				break;
   525			default:
   526				if (hid->product >= USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI &&
   527				    hid->product <= USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS)
   528					table = macbookair_fn_keys;
   529				else if (hid->product < 0x21d || hid->product >= 0x300)
   530					table = powerbook_fn_keys;
   531				else
   532					table = apple_fn_keys;
   533			}
   534			}
   535	
   536			trans = apple_find_translation(table, code);
   537	
   538			if (trans) {
   539				bool from_is_set = test_bit(trans->from, input->key);
   540				bool to_is_set = test_bit(trans->to, input->key);
   541	
   542				if (from_is_set)
   543					code = trans->from;
   544				else if (to_is_set)
   545					code = trans->to;
   546	
   547				if (!(from_is_set || to_is_set)) {
   548					if (trans->flags & APPLE_FLAG_FKEY) {
   549						switch (real_fnmode) {
   550						case 1:
   551							do_translate = !asc->fn_on;
   552							break;
   553						case 2:
   554							do_translate = asc->fn_on;
   555							break;
   556						default:
   557							/* case 4 */
   558							do_translate = false;
   559						}
   560					} else if (trans->flags & APPLE_FLAG_TB_FKEY) {
   561						switch (real_fnmode) {
   562						case 4:
   563							do_translate = false;
   564							break;
   565						default:
   566							do_translate = asc->fn_on;
   567						}
   568					} else {
   569						do_translate = asc->fn_on;
   570					}
   571	
   572					if (do_translate)
   573						code = trans->to;
   574				}
   575			}
   576	
   577			if (asc->quirks & APPLE_NUMLOCK_EMULATION &&
   578					(test_bit(code, asc->pressed_numlock) ||
   579					test_bit(LED_NUML, input->led))) {
   580				trans = apple_find_translation(powerbook_numlock_keys, code);
   581	
   582				if (trans) {
   583					if (value)
   584						set_bit(code, asc->pressed_numlock);
   585					else
   586						clear_bit(code, asc->pressed_numlock);
   587	
   588					code = trans->to;
   589				}
   590			}
   591		}
   592	
   593		if (usage->code != code) {
   594			input_event_with_scancode(input, usage->type, code, usage->hid, value);
   595	
   596			return 1;
   597		}
   598	
   599		return 0;
   600	}
   601	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 2+ messages in thread
* [asahilinux:bits/090-spi-hid 5/19] drivers/hid/hid-apple.c:477:25: warning: this statement may fall through
@ 2025-10-17 12:41 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2025-10-17 12:41 UTC (permalink / raw)
  To: Janne Grunau; +Cc: oe-kbuild-all

tree:   https://github.com/AsahiLinux/linux bits/090-spi-hid
head:   57763d4a44d353b9510a5673c597e6e74fc132f8
commit: 451569bd645d6d8dd98d351b10e7d062898d0f90 [5/19] HID: apple: Bind Apple silicon SPI devices
config: x86_64-rhel-9.4 (https://download.01.org/0day-ci/archive/20251015/202510151644.SxZYjfQJ-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251015/202510151644.SxZYjfQJ-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202510151644.SxZYjfQJ-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/hid/hid-apple.c: In function 'hidinput_apple_event':
>> drivers/hid/hid-apple.c:477:25: warning: this statement may fall through [-Wimplicit-fallthrough=]
     477 |                         switch (hid->product) {
         |                         ^~~~~~
   drivers/hid/hid-apple.c:485:17: note: here
     485 |                 default:
         |                 ^~~~~~~


vim +477 drivers/hid/hid-apple.c

   418	
   419	static int hidinput_apple_event(struct hid_device *hid, struct input_dev *input,
   420			struct hid_usage *usage, __s32 value)
   421	{
   422		struct apple_sc *asc = hid_get_drvdata(hid);
   423		const struct apple_key_translation *trans, *table;
   424		bool do_translate;
   425		u16 code = usage->code;
   426		unsigned int real_fnmode;
   427	
   428		if (fnmode == 3) {
   429			if (asc->quirks & APPLE_DISABLE_FKEYS)
   430				real_fnmode = 4;
   431			else if (asc->quirks & APPLE_IS_NON_APPLE)
   432				real_fnmode = 2;
   433			else
   434				real_fnmode = 1;
   435		} else {
   436			real_fnmode = fnmode;
   437		}
   438	
   439		if (swap_fn_leftctrl) {
   440			trans = apple_find_translation(swapped_fn_leftctrl_keys, code);
   441	
   442			if (trans)
   443				code = trans->to;
   444		}
   445	
   446		if (iso_layout > 0 || (iso_layout < 0 && (asc->quirks & APPLE_ISO_TILDE_QUIRK) &&
   447				hid->country == HID_COUNTRY_INTERNATIONAL_ISO)) {
   448			trans = apple_find_translation(apple_iso_keyboard, code);
   449	
   450			if (trans)
   451				code = trans->to;
   452		}
   453	
   454		if (swap_opt_cmd) {
   455			if (swap_opt_cmd == 2)
   456				trans = apple_find_translation(swapped_option_cmd_left_keys, code);
   457			else
   458				trans = apple_find_translation(swapped_option_cmd_keys, code);
   459	
   460			if (trans)
   461				code = trans->to;
   462		}
   463	
   464		if (swap_ctrl_cmd) {
   465			trans = apple_find_translation(swapped_ctrl_cmd_keys, code);
   466	
   467			if (trans)
   468				code = trans->to;
   469		}
   470	
   471		if (code == KEY_FN)
   472			asc->fn_on = !!value;
   473	
   474		if (real_fnmode) {
   475			switch (hid->bus) {
   476			case BUS_SPI:
 > 477				switch (hid->product) {
   478					case SPI_DEVICE_ID_APPLE_MACBOOK_PRO13_2020:
   479					table = macbookpro_dedicated_esc_fn_keys;
   480					break;
   481				default:
   482					table = magic_keyboard_2021_and_2024_fn_keys;
   483					break;
   484				}
   485			default:
   486			switch (hid->product) {
   487			case USB_DEVICE_ID_APPLE_ALU_WIRELESS_ANSI:
   488			case USB_DEVICE_ID_APPLE_ALU_WIRELESS_ISO:
   489			case USB_DEVICE_ID_APPLE_ALU_WIRELESS_JIS:
   490			case USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI:
   491			case USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO:
   492			case USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS:
   493			case USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ANSI:
   494			case USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ISO:
   495			case USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_JIS:
   496				table = magic_keyboard_alu_fn_keys;
   497				break;
   498			case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2015:
   499			case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2015:
   500				table = magic_keyboard_2015_fn_keys;
   501				break;
   502			case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021:
   503			case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021:
   504			case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2021:
   505			case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024:
   506			case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2024:
   507			case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2024:
   508				table = magic_keyboard_2021_and_2024_fn_keys;
   509				break;
   510			case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J132:
   511			case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J213:
   512			case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J680:
   513			case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J680_ALT:
   514				table = macbookpro_no_esc_fn_keys;
   515				break;
   516			case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J152F:
   517			case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J214K:
   518			case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J223:
   519				table = macbookpro_dedicated_esc_fn_keys;
   520				break;
   521			case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J140K:
   522			case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J230K:
   523				table = apple_fn_keys;
   524				break;
   525			default:
   526				if (hid->product >= USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI &&
   527				    hid->product <= USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS)
   528					table = macbookair_fn_keys;
   529				else if (hid->product < 0x21d || hid->product >= 0x300)
   530					table = powerbook_fn_keys;
   531				else
   532					table = apple_fn_keys;
   533			}
   534			}
   535	
   536			trans = apple_find_translation(table, code);
   537	
   538			if (trans) {
   539				bool from_is_set = test_bit(trans->from, input->key);
   540				bool to_is_set = test_bit(trans->to, input->key);
   541	
   542				if (from_is_set)
   543					code = trans->from;
   544				else if (to_is_set)
   545					code = trans->to;
   546	
   547				if (!(from_is_set || to_is_set)) {
   548					if (trans->flags & APPLE_FLAG_FKEY) {
   549						switch (real_fnmode) {
   550						case 1:
   551							do_translate = !asc->fn_on;
   552							break;
   553						case 2:
   554							do_translate = asc->fn_on;
   555							break;
   556						default:
   557							/* case 4 */
   558							do_translate = false;
   559						}
   560					} else if (trans->flags & APPLE_FLAG_TB_FKEY) {
   561						switch (real_fnmode) {
   562						case 4:
   563							do_translate = false;
   564							break;
   565						default:
   566							do_translate = asc->fn_on;
   567						}
   568					} else {
   569						do_translate = asc->fn_on;
   570					}
   571	
   572					if (do_translate)
   573						code = trans->to;
   574				}
   575			}
   576	
   577			if (asc->quirks & APPLE_NUMLOCK_EMULATION &&
   578					(test_bit(code, asc->pressed_numlock) ||
   579					test_bit(LED_NUML, input->led))) {
   580				trans = apple_find_translation(powerbook_numlock_keys, code);
   581	
   582				if (trans) {
   583					if (value)
   584						set_bit(code, asc->pressed_numlock);
   585					else
   586						clear_bit(code, asc->pressed_numlock);
   587	
   588					code = trans->to;
   589				}
   590			}
   591		}
   592	
   593		if (usage->code != code) {
   594			input_event_with_scancode(input, usage->type, code, usage->hid, value);
   595	
   596			return 1;
   597		}
   598	
   599		return 0;
   600	}
   601	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

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

end of thread, other threads:[~2025-10-17 12:42 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-12 22:18 [asahilinux:bits/090-spi-hid 5/19] drivers/hid/hid-apple.c:477:25: warning: this statement may fall through kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2025-10-17 12:41 kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.