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

Commit 3c2c4b73 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull HID subsystem updates from Jiri Kosina:
 "Apart from various driver updates and added support for a number of
  new devices (mostly multitouch ones, but not limited to), there is one
  change that is worth pointing out explicitly: creation of HID device
  groups and proper autoloading of hid-multitouch, implemented by Henrik
  Rydberg."

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (50 commits)
  HID: wacom: fix build breakage without CONFIG_LEDS_CLASS
  HID: waltop: Extend barrel button fix
  HID: hyperv: Set the hid drvdata correctly
  HID: wacom: Unify speed setting
  HID: wacom: Add speed setting for Intuos4 WL
  HID: wacom: Move Graphire raport header check.
  HID: uclogic: Add support for UC-Logic TWHL850
  HID: explain the signed/unsigned handling in hid_add_field()
  HID: handle logical min/max signedness properly in parser
  HID: logitech: read all 32 bits of report type bitfield
  HID: wacom: Add LED selector control for Wacom Intuos4 WL
  HID: hid-multitouch: fix wrong protocol detection
  HID: wiimote: Fix IR data parser
  HID: wacom: Add tilt reporting for Intuos4 WL
  HID: multitouch: MT interface matching for Baanto
  HID: hid-multitouch: Only match MT interfaces
  HID: Create a common generic driver
  HID: hid-multitouch: Switch to device groups
  HID: Create a generic device group
  HID: Allow bus wildcard matching
  ...
parents f08b9c2f 99ce58dd
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -9,6 +9,14 @@ Description:
		or 0 otherwise. Writing to this file one of these values
		switches reporting speed.

What:		/sys/class/leds/0005\:056A\:00BD.0001\:selector\:*/
Date:		May 2012
Kernel Version:	3.5
Contact:	linux-bluetooth@vger.kernel.org
Description:
		LED selector for Intuos4 WL. There are 4 leds, but only one LED
		can be lit at a time. Max brightness is 127.

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<cfg>.<intf>/wacom_led/led
Date:		August 2011
Contact:	linux-input@vger.kernel.org
+25 −9
Original line number Diff line number Diff line
@@ -32,9 +32,13 @@ config HID
	  If unsure, say Y.

config HID_BATTERY_STRENGTH
	bool
	bool "Battery level reporting for HID devices"
	depends on HID && POWER_SUPPLY && HID = POWER_SUPPLY
	default n
	---help---
	This option adds support of reporting battery strength (for HID devices
	that support this feature) through power_supply class so that userspace
	tools, such as upower, can display it.

config HIDRAW
	bool "/dev/hidraw raw HID device support"
@@ -60,6 +64,18 @@ source "drivers/hid/usbhid/Kconfig"
menu "Special HID drivers"
	depends on HID

config HID_GENERIC
	tristate "Generic HID driver"
	depends on HID
	default y
	---help---
	Support for generic HID devices.

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

	If unsure, say Y.

config HID_A4TECH
	tristate "A4 tech mice" if EXPERT
	depends on USB_HID
@@ -92,6 +108,12 @@ config HID_APPLE
	Say Y here if you want support for keyboards of	Apple iBooks, PowerBooks,
	MacBooks, MacBook Pros and Apple Aluminum.

config HID_AUREAL
	tristate "Aureal"
	depends on USB_HID
	---help---
	Support for Aureal Cy se W-01RN Remote Controller and other Aureal derived remotes.

config HID_BELKIN
	tristate "Belkin Flip KVM and Wireless keyboard" if EXPERT
	depends on USB_HID
@@ -595,16 +617,10 @@ config THRUSTMASTER_FF
config HID_WACOM
	tristate "Wacom Bluetooth devices support"
	depends on BT_HIDP
	---help---
	Support for Wacom Graphire Bluetooth tablet.

config HID_WACOM_POWER_SUPPLY
	bool "Wacom Bluetooth devices power supply status support"
	depends on HID_WACOM
	depends on LEDS_CLASS
	select POWER_SUPPLY
	---help---
	  Say Y here if you want to enable power supply status monitoring for
	  Wacom Bluetooth devices.
	Support for Wacom Graphire Bluetooth and Intuos4 WL tablets.

config HID_WIIMOTE
	tristate "Nintendo Wii Remote support"
+3 −0
Original line number Diff line number Diff line
@@ -9,6 +9,8 @@ endif

obj-$(CONFIG_HID)		+= hid.o

obj-$(CONFIG_HID_GENERIC)	+= hid-generic.o

hid-$(CONFIG_HIDRAW)		+= hidraw.o

hid-logitech-y		:= hid-lg.o
@@ -36,6 +38,7 @@ endif
obj-$(CONFIG_HID_A4TECH)	+= hid-a4tech.o
obj-$(CONFIG_HID_ACRUX)		+= hid-axff.o
obj-$(CONFIG_HID_APPLE)		+= hid-apple.o
obj-$(CONFIG_HID_AUREAL)        += hid-aureal.o
obj-$(CONFIG_HID_BELKIN)	+= hid-belkin.o
obj-$(CONFIG_HID_CHERRY)	+= hid-cherry.o
obj-$(CONFIG_HID_CHICONY)	+= hid-chicony.o
+4 −1
Original line number Diff line number Diff line
@@ -458,6 +458,9 @@ static const struct hid_device_id apple_devices[] = {
	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ISO),
		.driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN |
			APPLE_ISO_KEYBOARD },
	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE,
				USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ANSI),
		.driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_JIS),
		.driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ANSI),
+54 −0
Original line number Diff line number Diff line
/*
 *  HID driver for Aureal Cy se W-01RN USB_V3.1 devices
 *
 *  Copyright (c) 2010 Franco Catrin <fcatrin@gmail.com>
 *  Copyright (c) 2010 Ben Cropley <bcropley@internode.on.net>
 *
 *  Based on HID sunplus driver by
 *  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-2007 Jiri Kosina
 *  Copyright (c) 2007 Paul Walmsley
 *  Copyright (c) 2008 Jiri Slaby
 */
#include <linux/device.h>
#include <linux/hid.h>
#include <linux/module.h>

#include "hid-ids.h"

static __u8 *aureal_report_fixup(struct hid_device *hdev, __u8 *rdesc,
		unsigned int *rsize)
{
	if (*rsize >= 54 && rdesc[52] == 0x25 && rdesc[53] == 0x01) {
		dev_info(&hdev->dev, "fixing Aureal Cy se W-01RN USB_V3.1 report descriptor.\n");
		rdesc[53] = 0x65;
	} return rdesc;
}

static const struct hid_device_id aureal_devices[] = {
	{ HID_USB_DEVICE(USB_VENDOR_ID_AUREAL, USB_DEVICE_ID_AUREAL_W01RN) },
	{ }
};
MODULE_DEVICE_TABLE(hid, aureal_devices);

static struct hid_driver aureal_driver = {
	.name = "aureal",
	.id_table = aureal_devices,
	.report_fixup = aureal_report_fixup,
};

static int __init aureal_init(void)
{
	return hid_register_driver(&aureal_driver);
}

static void __exit aureal_exit(void)
{
	hid_unregister_driver(&aureal_driver);
}

module_init(aureal_init);
module_exit(aureal_exit);
MODULE_LICENSE("GPL");
Loading