Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d6454706 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jikos/hid

* 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jikos/hid: (21 commits)
  USB HID: don't warn on idVendor == 0
  USB HID: add 'quirks' module parameter
  USB HID: add support for dynamically-created quirks
  USB HID: clarify static quirk handling as squirks
  USB HID: encapsulate quirk handling into hid-quirks.c
  USB HID: EMS USBII device needs HID_QUIRK_MULTI_INPUT
  HID: update copyright and authorship macro
  HID: introduce proper zeroing of unused bits in output reports
  USB HID: add support for WiseGroup MP-8800 Quad Joypad
  USB HID: add FF support for Logitech Force 3D Pro Joystick
  USB HID: numlock quirk for dell W7658 keyboard
  USB HID: Logitech MX3000 keyboard needs report descriptor quirk
  USB HID: extend quirk for Logitech S510 keyboard
  USB HID: usbkbd/usbmouse - handle errors when registering devices
  USB HID: add QUIRK_HIDDEV for Belkin Flip KVM
  HID: enable dead keys on a belkin wireless keyboard
  USB HID: Thustmaster firestorm dual power v1 support
  USB HID: specify explicit size for hid_blacklist.quirks
  USB HID: fix retry & reset logic
  USB HID: consolidate vendor/product ids
  ...
parents 152a6a9d 11941a32
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -36,5 +36,7 @@ config HID_DEBUG

	If unsure, say N

source "drivers/hid/usbhid/Kconfig"

endmenu
+4 −0
Original line number Diff line number Diff line
@@ -6,3 +6,7 @@ hid-objs := hid-core.o hid-input.o
obj-$(CONFIG_HID)		+= hid.o
hid-$(CONFIG_HID_DEBUG)		+= hid-debug.o

obj-$(CONFIG_USB_HID)		+= usbhid/
obj-$(CONFIG_USB_MOUSE)		+= usbhid/
obj-$(CONFIG_USB_KBD)		+= usbhid/
+7 −2
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@
 *  Copyright (c) 1999 Andreas Gal
 *  Copyright (c) 2000-2005 Vojtech Pavlik <vojtech@suse.cz>
 *  Copyright (c) 2005 Michael Haboustak <mike-@cinci.rr.com> for Concept2, Inc
 *  Copyright (c) 2006 Jiri Kosina
 *  Copyright (c) 2006-2007 Jiri Kosina
 */

/*
@@ -37,7 +37,7 @@
 */

#define DRIVER_VERSION "v2.6"
#define DRIVER_AUTHOR "Andreas Gal, Vojtech Pavlik"
#define DRIVER_AUTHOR "Andreas Gal, Vojtech Pavlik, Jiri Kosina"
#define DRIVER_DESC "HID core driver"
#define DRIVER_LICENSE "GPL"

@@ -872,8 +872,13 @@ static void hid_output_field(struct hid_field *field, __u8 *data)
	unsigned count = field->report_count;
	unsigned offset = field->report_offset;
	unsigned size = field->report_size;
	unsigned bitsused = offset + count * size;
	unsigned n;

	/* make sure the unused bits in the last byte are zeros */
	if (count > 0 && size > 0 && (bitsused % 8) != 0)
		data[(bitsused-1)/8] &= (1 << (bitsused % 8)) - 1;

	for (n = 0; n < count; n++) {
		if (field->logical_minimum < 0)	/* signed values */
			implement(data, offset + n * size, size, s32ton(field->value[n], size));
+26 −1
Original line number Diff line number Diff line
@@ -431,6 +431,15 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
				case 0x000: goto ignore;
				case 0x034: map_key_clear(KEY_SLEEP);		break;
				case 0x036: map_key_clear(BTN_MISC);		break;
				/*
				 * The next three are reported by Belkin wireless
				 * keyboard (1020:0006). These values are "reserved"
				 * in HUT 1.12.
				 */
				case 0x03a: map_key_clear(KEY_SOUND);           break;
				case 0x03b: map_key_clear(KEY_CAMERA);          break;
				case 0x03c: map_key_clear(KEY_DOCUMENTS);       break;

				case 0x040: map_key_clear(KEY_MENU);		break;
				case 0x045: map_key_clear(KEY_RADIO);		break;

@@ -531,10 +540,26 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
				case 0x302: map_key_clear(KEY_PROG2);		break;
				case 0x303: map_key_clear(KEY_PROG3);		break;

				/* Reported on Logitech S510 wireless keyboard */
				/* Reported on certain Logitech wireless keyboards */
				case 0x1001: map_key_clear(KEY_MESSENGER);	break;
				case 0x1003: map_key_clear(KEY_SOUND);		break;
				case 0x1004: map_key_clear(KEY_VIDEO);		break;
				case 0x1005: map_key_clear(KEY_AUDIO);		break;
				case 0x100a: map_key_clear(KEY_DOCUMENTS);	break;
				case 0x1011: map_key_clear(KEY_PREVIOUSSONG);	break;
				case 0x1012: map_key_clear(KEY_NEXTSONG);	break;
				case 0x1013: map_key_clear(KEY_CAMERA);		break;
				case 0x1014: map_key_clear(KEY_MESSENGER);	break;
				case 0x1015: map_key_clear(KEY_RECORD);		break;
				case 0x1016: map_key_clear(KEY_PLAYER);		break;
				case 0x1017: map_key_clear(KEY_EJECTCD);	break;
				case 0x1019: map_key_clear(KEY_PROG1);		break;
				case 0x101a: map_key_clear(KEY_PROG2);		break;
				case 0x101b: map_key_clear(KEY_PROG3);		break;
				case 0x101f: map_key_clear(KEY_ZOOMIN);		break;
				case 0x1020: map_key_clear(KEY_ZOOMOUT);	break;
				case 0x1021: map_key_clear(KEY_ZOOMRESET);	break;
				case 0x1023: map_key_clear(KEY_CLOSE);		break;
				/* this one is marked as 'Rotate' */
				case 0x1028: map_key_clear(KEY_ANGLE);		break;
				case 0x1029: map_key_clear(KEY_SHUFFLE);	break;
+149 −0
Original line number Diff line number Diff line
comment "USB Input Devices"
	depends on USB

config USB_HID
	tristate "USB Human Interface Device (full HID) support"
	default y
	depends on USB && INPUT
	select HID
	---help---
	  Say Y here if you want full HID support to connect USB keyboards,
	  mice, joysticks, graphic tablets, or any other HID based devices
	  to your computer via USB, as well as Uninterruptible Power Supply
	  (UPS) and monitor control devices.

	  You can't use this driver and the HIDBP (Boot Protocol) keyboard
	  and mouse drivers at the same time. More information is available:
	  <file:Documentation/input/input.txt>.

	  If unsure, say Y.

	  To compile this driver as a module, choose M here: the
	  module will be called usbhid.

comment "Input core support is needed for USB HID input layer or HIDBP support"
	depends on USB_HID && INPUT=n

config USB_HIDINPUT_POWERBOOK
	bool "Enable support for iBook/PowerBook special keys"
	default n
	depends on USB_HID
	help
	  Say Y here if you want support for the special keys (Fn, Numlock) on
	  Apple iBooks and PowerBooks.

	  If unsure, say N.

config HID_FF
	bool "Force feedback support (EXPERIMENTAL)"
	depends on USB_HID && EXPERIMENTAL
	help
	  Say Y here is you want force feedback support for a few HID devices.
	  See below for a list of supported devices.

	  See <file:Documentation/input/ff.txt> for a description of the force
	  feedback API.

	  If unsure, say N.

config HID_PID
	bool "PID device support"
	depends on HID_FF
	help
	  Say Y here if you have a PID-compliant device and wish to enable force
	  feedback for it. Microsoft Sidewinder Force Feedback 2 is one of such
	  devices.

config LOGITECH_FF
	bool "Logitech devices support"
	depends on HID_FF
	select INPUT_FF_MEMLESS if USB_HID
	help
	  Say Y here if you have one of these devices:
	  - Logitech WingMan Cordless RumblePad
	  - Logitech WingMan Cordless RumblePad 2
	  - Logitech WingMan Force 3D
	  - Logitech Formula Force EX
	  - Logitech MOMO Force wheel

	  and if you want to enable force feedback for them.
	  Note: if you say N here, this device will still be supported, but without
	  force feedback.

config PANTHERLORD_FF
	bool "PantherLord USB/PS2 2in1 Adapter support"
	depends on HID_FF
	select INPUT_FF_MEMLESS if USB_HID
	help
	  Say Y here if you have a PantherLord USB/PS2 2in1 Adapter and want
	  to enable force feedback support for it.

config THRUSTMASTER_FF
	bool "ThrustMaster FireStorm Dual Power 2 support (EXPERIMENTAL)"
	depends on HID_FF && EXPERIMENTAL
	select INPUT_FF_MEMLESS if USB_HID
	help
	  Say Y here if you have a THRUSTMASTER FireStore Dual Power 2,
	  and want to enable force feedback support for it.
	  Note: if you say N here, this device will still be supported, but without
	  force feedback.

config ZEROPLUS_FF
	bool "Zeroplus based game controller support"
	depends on HID_FF
	select INPUT_FF_MEMLESS if USB_HID
	help
	  Say Y here if you have a Zeroplus based game controller and want to
	  enable force feedback for it.

config USB_HIDDEV
	bool "/dev/hiddev raw HID device support"
	depends on USB_HID
	help
	  Say Y here if you want to support HID devices (from the USB
	  specification standpoint) that aren't strictly user interface
	  devices, like monitor controls and Uninterruptable Power Supplies.

	  This module supports these devices separately using a separate
	  event interface on /dev/usb/hiddevX (char 180:96 to 180:111).

	  If unsure, say Y.

menu "USB HID Boot Protocol drivers"
	depends on USB!=n && USB_HID!=y

config USB_KBD
	tristate "USB HIDBP Keyboard (simple Boot) support"
	depends on USB && INPUT
	---help---
	  Say Y here only if you are absolutely sure that you don't want
	  to use the generic HID driver for your USB keyboard and prefer
	  to use the keyboard in its limited Boot Protocol mode instead.

	  This is almost certainly not what you want.  This is mostly
	  useful for embedded applications or simple keyboards.

	  To compile this driver as a module, choose M here: the
	  module will be called usbkbd.

	  If even remotely unsure, say N.

config USB_MOUSE
	tristate "USB HIDBP Mouse (simple Boot) support"
	depends on USB && INPUT
	---help---
	  Say Y here only if you are absolutely sure that you don't want
	  to use the generic HID driver for your USB mouse and prefer
	  to use the mouse in its limited Boot Protocol mode instead.

	  This is almost certainly not what you want.  This is mostly
	  useful for embedded applications or simple mice.

	  To compile this driver as a module, choose M here: the
	  module will be called usbmouse.

	  If even remotely unsure, say N.

endmenu

Loading