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

Commit 19b344ef authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull HID updates from Jiri Kosina:

 - hid driver transport cleanup, finalizing the long-desired decoupling
   of core from transport layers, by Benjamin Tissoires and Henrik
   Rydberg

 - support for hybrid finger/pen multitouch HID devices, by Benjamin
   Tissoires

 - fix for long-standing issue in Logitech unifying driver sometimes not
   inializing properly due to device specifics, by Andrew de los Reyes

 - Wii remote driver updates to support 2nd generation of devices, by
   David Herrmann

 - support for Apple IR remote

 - roccat driver now supports new devices (Roccat Kone Pure, IskuFX), by
   Stefan Achatz

 - debugfs locking fixes in hid debug interface, by Jiri Kosina

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (43 commits)
  HID: protect hid_debug_list
  HID: debug: break out hid_dump_report() into hid-debug
  HID: Add PID for Japanese version of NE4K keyboard
  HID: hid-lg4ff add support for new version of DFGT wheel
  HID: icade: u16 which never < 0
  HID: clarify Magic Mouse Kconfig description
  HID: appleir: add support for Apple ir devices
  HID: roccat: added media key support for Kone
  HID: hid-lenovo-tpkbd: remove doubled hid_get_drvdata
  HID: i2c-hid: fix length for set/get report in i2c hid
  HID: wiimote: parse reduced status reports
  HID: wiimote: add 2nd generation Wii Remote IDs
  HID: wiimote: use unique battery names
  HID: hidraw: warn if userspace headers are outdated
  HID: multitouch: force BTN_STYLUS for pen devices
  HID: multitouch: append " Pen" to the name of the stylus input
  HID: multitouch: add handling for pen in dual-sensors device
  HID: multitouch: change touch sensor detection in mt_input_configured()
  HID: multitouch: do not map usage from non used reports
  HID: multitouch: breaks out touch handling in specific functions
  ...
parents 5d434fcb ad1b890e
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -101,7 +101,8 @@ Date: June 2011
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one set the backlight intensity for
		a specific profile. Profile number is included in written data.
		The data has to be 10 bytes long.
		The data has to be 10 bytes long for Isku, IskuFX needs	16 bytes
		of data.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net
@@ -141,3 +142,12 @@ Description: When written, this file lets one trigger easyshift functionality
		The data has to be 16 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/isku/roccatisku<minor>/talkfx
Date:		February 2013
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one trigger temporary color schemes
		from the host.
		The data has to be 16 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net
+105 −0
Original line number Diff line number Diff line
What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/konepure/roccatkonepure<minor>/actual_profile
Date:		December 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store 5 profiles which can be switched by the
		press of a button. actual_profile holds number of actual profile.
		This value is persistent, so its value determines the profile
		that's active when the mouse is powered on next time.
		When written, the mouse activates the set profile immediately.
		The data has to be 3 bytes long.
		The mouse will reject invalid data.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/konepure/roccatkonepure<minor>/control
Date:		December 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written, this file lets one select which data from which
		profile will be	read next. The data has to be 3 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/konepure/roccatkonepure<minor>/info
Date:		December 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When read, this file returns general data like firmware version.
		When written, the device can be reset.
		The data is 6 bytes long.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/konepure/roccatkonepure<minor>/macro
Date:		December 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store a macro with max 500 key/button strokes
		internally.
		When written, this file lets one set the sequence for a specific
		button for a specific profile. Button and profile numbers are
		included in written data. The data has to be 2082 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/konepure/roccatkonepure<minor>/profile_buttons
Date:		December 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store 5 profiles which can be switched by the
		press of a button. A profile is split in settings and buttons.
		profile_buttons holds information about button layout.
		When written, this file lets one write the respective profile
		buttons back to the mouse. The data has to be 59 bytes long.
		The mouse will reject invalid data.
		Which profile to write is determined by the profile number
		contained in the data.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/konepure/roccatkonepure<minor>/profile_settings
Date:		December 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse can store 5 profiles which can be switched by the
		press of a button. A profile is split in settings and buttons.
		profile_settings holds information like resolution, sensitivity
		and light effects.
		When written, this file lets one write the respective profile
		settings back to the mouse. The data has to be 31 bytes long.
		The mouse will reject invalid data.
		Which profile to write is determined by the profile number
		contained in the data.
		Before reading this file, control has to be written to select
		which profile to read.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/konepure/roccatkonepure<minor>/sensor
Date:		December 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	The mouse has a tracking- and a distance-control-unit. These
		can be activated/deactivated and the lift-off distance can be
		set. The data has to be 6 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/konepure/roccatkonepure<minor>/talk
Date:		December 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	Used to active some easy* functions of the mouse from outside.
		The data has to be 16 bytes long.
		This file is writeonly.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/konepure/roccatkonepure<minor>/tcu
Date:		December 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When written a calibration process for the tracking control unit
		can be initiated/cancelled. Also lets one read/write sensor
		registers.
		The data has to be 4 bytes long.
Users:		http://roccat.sourceforge.net

What:		/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/konepure/roccatkonepure<minor>/tcu_image
Date:		December 2012
Contact:	Stefan Achatz <erazor_de@users.sourceforge.net>
Description:	When read the mouse returns a 30x30 pixel image of the
		sampled underground. This works only in the course of a
		calibration process initiated with tcu.
		The returned data is 1028 bytes in size.
		This file is readonly.
Users:		http://roccat.sourceforge.net
+64 −53
Original line number Diff line number Diff line
@@ -92,14 +92,14 @@ menu "Special HID drivers"

config HID_A4TECH
	tristate "A4 tech mice" if EXPERT
	depends on USB_HID
	depends on HID
	default !EXPERT
	---help---
	Support for A4 tech X5 and WOP-35 / Trust 450L mice.

config HID_ACRUX
	tristate "ACRUX game controller support"
	depends on USB_HID
	depends on HID
	---help---
	Say Y here if you want to enable support for ACRUX game controllers.

@@ -113,7 +113,7 @@ config HID_ACRUX_FF

config HID_APPLE
	tristate "Apple {i,Power,Mac}Books" if EXPERT
	depends on (USB_HID || BT_HIDP)
	depends on HID
	default !EXPERT
	---help---
	Support for some Apple devices which less or more break
@@ -122,36 +122,47 @@ config HID_APPLE
	Say Y here if you want support for keyboards of	Apple iBooks, PowerBooks,
	MacBooks, MacBook Pros and Apple Aluminum.

config HID_APPLEIR
	tristate "Apple infrared receiver"
	depends on (USB_HID)
	---help---
	Support for Apple infrared remote control. All the Apple computers from
	  2005 onwards include such a port, except the unibody Macbook (2009),
	  and Mac Pros. This receiver is also used in the Apple TV set-top box
	  prior to the 2010 model.

	Say Y here if you want support for Apple infrared remote control.

config HID_AUREAL
	tristate "Aureal"
	depends on USB_HID
	depends on 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
	depends on HID
	default !EXPERT
	---help---
	Support for Belkin Flip KVM and Wireless keyboard.

config HID_CHERRY
	tristate "Cherry Cymotion keyboard" if EXPERT
	depends on USB_HID
	depends on HID
	default !EXPERT
	---help---
	Support for Cherry Cymotion keyboard.

config HID_CHICONY
	tristate "Chicony Tactical pad" if EXPERT
	depends on USB_HID
	depends on HID
	default !EXPERT
	---help---
	Support for Chicony Tactical pad.

config HID_PRODIKEYS
	tristate "Prodikeys PC-MIDI Keyboard support"
	depends on USB_HID && SND
	depends on HID && SND
	select SND_RAWMIDI
	---help---
	Support for Prodikeys PC-MIDI Keyboard device support.
@@ -166,14 +177,14 @@ config HID_PRODIKEYS

config HID_CYPRESS
	tristate "Cypress mouse and barcode readers" if EXPERT
	depends on USB_HID
	depends on HID
	default !EXPERT
	---help---
	Support for cypress mouse and barcode readers.

config HID_DRAGONRISE
	tristate "DragonRise Inc. game controller"
	depends on USB_HID
	depends on HID
	---help---
	Say Y here if you have DragonRise Inc. game controllers.
	These might be branded as:
@@ -192,7 +203,7 @@ config DRAGONRISE_FF

config HID_EMS_FF
	tristate "EMS Production Inc. force feedback support"
	depends on USB_HID
	depends on HID
	select INPUT_FF_MEMLESS
	---help---
	Say Y here if you want to enable force feedback support for devices by
@@ -202,13 +213,13 @@ config HID_EMS_FF

config HID_ELECOM
	tristate "ELECOM BM084 bluetooth mouse"
	depends on BT_HIDP
	depends on HID
	---help---
	Support for the ELECOM BM084 (bluetooth mouse).

config HID_EZKEY
	tristate "Ezkey BTC 8193 keyboard" if EXPERT
	depends on USB_HID
	depends on HID
	default !EXPERT
	---help---
	Support for Ezkey BTC 8193 keyboard.
@@ -231,7 +242,7 @@ config HOLTEK_FF

config HID_KEYTOUCH
	tristate "Keytouch HID devices"
	depends on USB_HID
	depends on HID
	---help---
	Support for Keytouch HID devices not fully compliant with
	the specification. Currently supported:
@@ -239,7 +250,7 @@ config HID_KEYTOUCH

config HID_KYE
	tristate "KYE/Genius devices"
	depends on USB_HID
	depends on HID
	---help---
	Support for KYE/Genius devices not fully compliant with HID standard:
	- Ergo Mouse
@@ -249,25 +260,25 @@ config HID_KYE

config HID_UCLOGIC
	tristate "UC-Logic"
	depends on USB_HID
	depends on HID
	---help---
	Support for UC-Logic tablets.

config HID_WALTOP
	tristate "Waltop"
	depends on USB_HID
	depends on HID
	---help---
	Support for Waltop tablets.

config HID_GYRATION
	tristate "Gyration remote control"
	depends on USB_HID
	depends on HID
	---help---
	Support for Gyration remote control.

config HID_ICADE
	tristate "ION iCade arcade controller"
	depends on BT_HIDP
	depends on HID
	---help---
	Support for the ION iCade arcade controller to work as a joystick.

@@ -276,20 +287,20 @@ config HID_ICADE

config HID_TWINHAN
	tristate "Twinhan IR remote control"
	depends on USB_HID
	depends on HID
	---help---
	Support for Twinhan IR remote control.

config HID_KENSINGTON
	tristate "Kensington Slimblade Trackball" if EXPERT
	depends on USB_HID
	depends on HID
	default !EXPERT
	---help---
	Support for Kensington Slimblade Trackball.

config HID_LCPOWER
	tristate "LC-Power"
	depends on USB_HID
	depends on HID
	---help---
	Support for LC-Power RC1000MCE RF remote control.

@@ -308,7 +319,7 @@ config HID_LENOVO_TPKBD

config HID_LOGITECH
	tristate "Logitech devices" if EXPERT
	depends on USB_HID
	depends on HID
	default !EXPERT
	---help---
	Support for Logitech devices that are not fully compliant with HID standard.
@@ -373,31 +384,31 @@ config LOGIWHEELS_FF
	  - Logitech Formula Force EX

config HID_MAGICMOUSE
	tristate "Apple MagicMouse multi-touch support"
	depends on BT_HIDP
	tristate "Apple Magic Mouse/Trackpad multi-touch support"
	depends on HID
	---help---
	Support for the Apple Magic Mouse multi-touch.
	Support for the Apple Magic Mouse/Trackpad multi-touch.

	Say Y here if you want support for the multi-touch features of the
	Apple Wireless "Magic" Mouse.
	Apple Wireless "Magic" Mouse and the Apple Wireless "Magic" Trackpad.

config HID_MICROSOFT
	tristate "Microsoft non-fully HID-compliant devices" if EXPERT
	depends on USB_HID
	depends on HID
	default !EXPERT
	---help---
	Support for Microsoft devices that are not fully compliant with HID standard.

config HID_MONTEREY
	tristate "Monterey Genius KB29E keyboard" if EXPERT
	depends on USB_HID
	depends on HID
	default !EXPERT
	---help---
	Support for Monterey Genius KB29E.

config HID_MULTITOUCH
	tristate "HID Multitouch panels"
	depends on USB_HID
	depends on HID
	---help---
	  Generic support for HID multitouch panels.

@@ -445,7 +456,7 @@ config HID_NTRIG

config HID_ORTEK
	tristate "Ortek PKB-1700/WKB-2000/Skycable wireless keyboard and mouse trackpad"
	depends on USB_HID
	depends on HID
	---help---
	There are certain devices which have LogicalMaximum wrong in the keyboard
	usage page of their report descriptor. The most prevailing ones so far
@@ -458,7 +469,7 @@ config HID_ORTEK

config HID_PANTHERLORD
	tristate "Pantherlord/GreenAsia game controller"
	depends on USB_HID
	depends on HID
	---help---
	  Say Y here if you have a PantherLord/GreenAsia based game controller
	  or adapter.
@@ -473,13 +484,13 @@ config PANTHERLORD_FF

config HID_PETALYNX
	tristate "Petalynx Maxter remote control"
	depends on USB_HID
	depends on HID
	---help---
	Support for Petalynx Maxter remote control.

config HID_PICOLCD
	tristate "PicoLCD (graphic version)"
	depends on USB_HID
	depends on HID
	---help---
	  This provides support for Minibox PicoLCD devices, currently
	  only the graphical ones are supported.
@@ -545,14 +556,14 @@ config HID_PICOLCD_CIR

config HID_PRIMAX
	tristate "Primax non-fully HID-compliant devices"
	depends on USB_HID
	depends on HID
	---help---
	Support for Primax devices that are not fully compliant with the
	HID standard.

config HID_PS3REMOTE
	tristate "Sony PS3 BD Remote Control"
	depends on BT_HIDP
	depends on HID
	---help---
	Support for the Sony PS3 Blue-ray Disk Remote Control and Logitech
	Harmony Adapter for PS3, which connect over Bluetooth.
@@ -569,7 +580,7 @@ config HID_ROCCAT

config HID_SAITEK
	tristate "Saitek non-fully HID-compliant devices"
	depends on USB_HID
	depends on HID
	---help---
	Support for Saitek devices that are not fully compliant with the
	HID standard.
@@ -578,7 +589,7 @@ config HID_SAITEK

config HID_SAMSUNG
	tristate "Samsung InfraRed remote control or keyboards"
	depends on USB_HID
	depends on HID
	---help---
	Support for Samsung InfraRed remote control or keyboards.

@@ -592,25 +603,25 @@ config HID_SONY

config HID_SPEEDLINK
	tristate "Speedlink VAD Cezanne mouse support"
	depends on USB_HID
	depends on HID
	---help---
	Support for Speedlink Vicious and Divine Cezanne mouse.

config HID_STEELSERIES
	tristate "Steelseries SRW-S1 steering wheel support"
	depends on USB_HID
	depends on HID
	---help---
	Support for Steelseries SRW-S1 steering wheel

config HID_SUNPLUS
	tristate "Sunplus wireless desktop"
	depends on USB_HID
	depends on HID
	---help---
	Support for Sunplus wireless desktop.

config HID_GREENASIA
	tristate "GreenAsia (Product ID 0x12) game controller support"
	depends on USB_HID
	depends on HID
	---help---
	  Say Y here if you have a GreenAsia (Product ID 0x12) based game
	  controller or adapter.
@@ -632,7 +643,7 @@ config HID_HYPERV_MOUSE

config HID_SMARTJOYPLUS
	tristate "SmartJoy PLUS PS2/USB adapter support"
	depends on USB_HID
	depends on HID
	---help---
	Support for SmartJoy PLUS PS2/USB adapter, Super Dual Box,
	Super Joy Box 3 Pro, Super Dual Box Pro, and Super Joy Box 5 Pro.
@@ -650,20 +661,20 @@ config SMARTJOYPLUS_FF

config HID_TIVO
	tristate "TiVo Slide Bluetooth remote control support"
	depends on (USB_HID || BT_HIDP)
	depends on HID
	---help---
	Say Y if you have a TiVo Slide Bluetooth remote control.

config HID_TOPSEED
	tristate "TopSeed Cyberlink, BTC Emprex, Conceptronic remote control support"
	depends on USB_HID
	depends on HID
	---help---
	Say Y if you have a TopSeed Cyberlink or BTC Emprex or Conceptronic
	CLLRCMCE remote control.

config HID_THINGM
	tristate "ThingM blink(1) USB RGB LED"
	depends on USB_HID
	depends on HID
	depends on LEDS_CLASS
	---help---
	Support for the ThingM blink(1) USB RGB LED. This driver registers a
@@ -673,7 +684,7 @@ config HID_THINGM

config HID_THRUSTMASTER
	tristate "ThrustMaster devices support"
	depends on USB_HID
	depends on HID
	---help---
	  Say Y here if you have a THRUSTMASTER FireStore Dual Power 2 or
	  a THRUSTMASTER Ferrari GT Rumble Wheel.
@@ -689,7 +700,7 @@ config THRUSTMASTER_FF

config HID_WACOM
	tristate "Wacom Bluetooth devices support"
	depends on BT_HIDP
	depends on HID
	depends on LEDS_CLASS
	select POWER_SUPPLY
	---help---
@@ -697,7 +708,7 @@ config HID_WACOM

config HID_WIIMOTE
	tristate "Nintendo Wii Remote support"
	depends on BT_HIDP
	depends on HID
	depends on LEDS_CLASS
	select POWER_SUPPLY
	select INPUT_FF_MEMLESS
@@ -715,7 +726,7 @@ config HID_WIIMOTE_EXT

config HID_ZEROPLUS
	tristate "Zeroplus based game controller support"
	depends on USB_HID
	depends on HID
	---help---
	  Say Y here if you have a Zeroplus based game controller.

@@ -729,16 +740,16 @@ config ZEROPLUS_FF

config HID_ZYDACRON
	tristate "Zydacron remote control support"
	depends on USB_HID
	depends on HID
	---help---
	Support for Zydacron remote control.

config HID_SENSOR_HUB
	tristate "HID Sensors framework support"
	depends on USB_HID && GENERIC_HARDIRQS
	depends on HID && GENERIC_HARDIRQS
	select MFD_CORE
	default n
	-- help---
	---help---
	  Support for HID Sensor framework. This creates a MFD instance
	  for a sensor hub and identifies all the sensors connected to it.
	  Each sensor is registered as a MFD cell, so that sensor specific
+3 −2
Original line number Diff line number Diff line
@@ -39,6 +39,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_APPLEIR)	+= hid-appleir.o
obj-$(CONFIG_HID_AUREAL)        += hid-aureal.o
obj-$(CONFIG_HID_BELKIN)	+= hid-belkin.o
obj-$(CONFIG_HID_CHERRY)	+= hid-cherry.o
@@ -94,8 +95,8 @@ obj-$(CONFIG_HID_PRIMAX) += hid-primax.o
obj-$(CONFIG_HID_PS3REMOTE)	+= hid-ps3remote.o
obj-$(CONFIG_HID_ROCCAT)	+= hid-roccat.o hid-roccat-common.o \
	hid-roccat-arvo.o hid-roccat-isku.o hid-roccat-kone.o \
	hid-roccat-koneplus.o hid-roccat-kovaplus.o hid-roccat-lua.o \
	hid-roccat-pyra.o hid-roccat-savu.o
	hid-roccat-koneplus.o hid-roccat-konepure.o hid-roccat-kovaplus.o \
	hid-roccat-lua.o hid-roccat-pyra.o hid-roccat-savu.o
obj-$(CONFIG_HID_SAITEK)	+= hid-saitek.o
obj-$(CONFIG_HID_SAMSUNG)	+= hid-samsung.o
obj-$(CONFIG_HID_SMARTJOYPLUS)	+= hid-sjoy.o
+0 −5
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@
#include <linux/hid.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/usb.h>

#include "hid-ids.h"

@@ -390,10 +389,6 @@ static void apple_remove(struct hid_device *hdev)
}

static const struct hid_device_id apple_devices[] = {
	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ATV_IRCONTROL),
		.driver_data = APPLE_HIDDEV | APPLE_IGNORE_HIDINPUT },
	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL4),
		.driver_data = APPLE_HIDDEV | APPLE_IGNORE_HIDINPUT },
	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MIGHTYMOUSE),
		.driver_data = APPLE_MIGHTYMOUSE | APPLE_INVERT_HWHEEL },

Loading