]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.12-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 2 Dec 2013 17:50:39 +0000 (09:50 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 2 Dec 2013 17:50:39 +0000 (09:50 -0800)
added patches:
hid-add-support-for-leetgion-hellion-gaming-mouse.patch
hid-apple-option-to-swap-the-option-alt-and-command-flag-keys.patch
hid-enable-mayflash-usb-gamecube-adapter.patch
hid-roccat-add-missing-special-driver-declarations.patch
hid-roccat-add-new-device-return-value.patch
hid-roccat-fix-coverity-cid-141438.patch

queue-3.12/hid-add-support-for-leetgion-hellion-gaming-mouse.patch [new file with mode: 0644]
queue-3.12/hid-apple-option-to-swap-the-option-alt-and-command-flag-keys.patch [new file with mode: 0644]
queue-3.12/hid-enable-mayflash-usb-gamecube-adapter.patch [new file with mode: 0644]
queue-3.12/hid-roccat-add-missing-special-driver-declarations.patch [new file with mode: 0644]
queue-3.12/hid-roccat-add-new-device-return-value.patch [new file with mode: 0644]
queue-3.12/hid-roccat-fix-coverity-cid-141438.patch [new file with mode: 0644]
queue-3.12/series

diff --git a/queue-3.12/hid-add-support-for-leetgion-hellion-gaming-mouse.patch b/queue-3.12/hid-add-support-for-leetgion-hellion-gaming-mouse.patch
new file mode 100644 (file)
index 0000000..80dd713
--- /dev/null
@@ -0,0 +1,86 @@
+From f1a4914bd04911fbeaee23445112adae8977144a Mon Sep 17 00:00:00 2001
+From: Anders F. U. Kiær <ablacksheep@gmail.com>
+Date: Mon, 21 Oct 2013 23:42:22 +0200
+Subject: HID: add support for LEETGION Hellion Gaming Mouse
+
+From: Anders F. U. Kiær <ablacksheep@gmail.com>
+
+commit f1a4914bd04911fbeaee23445112adae8977144a upstream.
+
+Added id, bindings and comments for Holtek USB ID 04d9:a072
+LEETGION Hellion Gaming mouse to use the same corrections of the report
+descriptor as Holtek 04d9:a067. As the mouse exceed HID_MAX_USAGES at the
+same offsets in the reported descriptor.
+Tested on the hardware.
+
+Signed-off-by: Anders F. U. Kiær <ablacksheep@gmail.com>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/hid/Kconfig            |    1 +
+ drivers/hid/hid-core.c         |    1 +
+ drivers/hid/hid-holtek-mouse.c |    4 ++++
+ drivers/hid/hid-ids.h          |    3 ++-
+ 4 files changed, 8 insertions(+), 1 deletion(-)
+
+--- a/drivers/hid/Kconfig
++++ b/drivers/hid/Kconfig
+@@ -242,6 +242,7 @@ config HID_HOLTEK
+         - Tracer Sniper TRM-503 / NOVA Gaming Slider X200 /
+           Zalman ZM-GM1
+         - SHARKOON DarkGlider Gaming mouse
++        - LEETGION Hellion Gaming Mouse
+ config HOLTEK_FF
+       bool "Holtek On Line Grip force feedback support"
+--- a/drivers/hid/hid-core.c
++++ b/drivers/hid/hid-core.c
+@@ -1716,6 +1716,7 @@ static const struct hid_device_id hid_ha
+       { HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A04A) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A067) },
++      { HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A072) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A081) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_HUION, USB_DEVICE_ID_HUION_580) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_JESS2, USB_DEVICE_ID_JESS2_COLOR_RUMBLE_PAD) },
+--- a/drivers/hid/hid-holtek-mouse.c
++++ b/drivers/hid/hid-holtek-mouse.c
+@@ -28,6 +28,7 @@
+  * - USB ID 04d9:a04a, sold as Tracer Sniper TRM-503, NOVA Gaming Slider X200
+  *   and Zalman ZM-GM1
+  * - USB ID 04d9:a081, sold as SHARKOON DarkGlider Gaming mouse
++ * - USB ID 04d9:a072, sold as LEETGION Hellion Gaming Mouse
+  */
+ static __u8 *holtek_mouse_report_fixup(struct hid_device *hdev, __u8 *rdesc,
+@@ -40,6 +41,7 @@ static __u8 *holtek_mouse_report_fixup(s
+                * 0x2fff, so they don't exceed HID_MAX_USAGES */
+               switch (hdev->product) {
+               case USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A067:
++              case USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A072:
+                       if (*rsize >= 122 && rdesc[115] == 0xff && rdesc[116] == 0x7f
+                                       && rdesc[120] == 0xff && rdesc[121] == 0x7f) {
+                               hid_info(hdev, "Fixing up report descriptor\n");
+@@ -66,6 +68,8 @@ static const struct hid_device_id holtek
+       { HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT,
+                       USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A04A) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT,
++                      USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A072) },
++      { HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT,
+                       USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A081) },
+       { }
+ };
+--- a/drivers/hid/hid-ids.h
++++ b/drivers/hid/hid-ids.h
+@@ -453,8 +453,9 @@
+ #define USB_VENDOR_ID_HOLTEK_ALT              0x04d9
+ #define USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD     0xa055
+-#define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A067   0xa067
+ #define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A04A   0xa04a
++#define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A067   0xa067
++#define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A072   0xa072
+ #define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A081   0xa081
+ #define USB_VENDOR_ID_IMATION         0x0718
diff --git a/queue-3.12/hid-apple-option-to-swap-the-option-alt-and-command-flag-keys.patch b/queue-3.12/hid-apple-option-to-swap-the-option-alt-and-command-flag-keys.patch
new file mode 100644 (file)
index 0000000..005dd29
--- /dev/null
@@ -0,0 +1,68 @@
+From 43c831468b3d26dbe8f2e061ccaf1abaf9cc1b8b Mon Sep 17 00:00:00 2001
+From: Nanno Langstraat <langstr@gmail.com>
+Date: Mon, 14 Oct 2013 16:07:15 +0200
+Subject: HID: apple: option to swap the 'Option' ("Alt") and 'Command' ("Flag") keys.
+
+From: Nanno Langstraat <langstr@gmail.com>
+
+commit 43c831468b3d26dbe8f2e061ccaf1abaf9cc1b8b upstream.
+
+Use case: people who use both Apple and PC keyboards regularly, and desire to
+keep&use their PC muscle memory.
+
+A particular use case: an Apple compact external keyboard connected to a PC
+laptop. (This use case can't be covered well by X.org key remappings etc.)
+
+Signed-off-by: Nanno Langstraat <langstr@gmail.com>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/hid/hid-apple.c |   22 ++++++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+
+--- a/drivers/hid/hid-apple.c
++++ b/drivers/hid/hid-apple.c
+@@ -46,6 +46,12 @@ module_param(iso_layout, uint, 0644);
+ MODULE_PARM_DESC(iso_layout, "Enable/Disable hardcoded ISO-layout of the keyboard. "
+               "(0 = disabled, [1] = enabled)");
++static unsigned int swap_opt_cmd = 0;
++module_param(swap_opt_cmd, uint, 0644);
++MODULE_PARM_DESC(swap_opt_cmd, "Swap the Option (\"Alt\") and Command (\"Flag\") keys. "
++              "(For people who want to keep Windows PC keyboard muscle memory. "
++              "[0] = as-is, Mac layout. 1 = swapped, Windows layout.)");
++
+ struct apple_sc {
+       unsigned long quirks;
+       unsigned int fn_on;
+@@ -150,6 +156,14 @@ static const struct apple_key_translatio
+       { }
+ };
++static const struct apple_key_translation swapped_option_cmd_keys[] = {
++      { KEY_LEFTALT,  KEY_LEFTMETA },
++      { KEY_LEFTMETA, KEY_LEFTALT },
++      { KEY_RIGHTALT, KEY_RIGHTMETA },
++      { KEY_RIGHTMETA,KEY_RIGHTALT },
++      { }
++};
++
+ static const struct apple_key_translation *apple_find_translation(
+               const struct apple_key_translation *table, u16 from)
+ {
+@@ -242,6 +256,14 @@ static int hidinput_apple_event(struct h
+               }
+       }
++      if (swap_opt_cmd) {
++              trans = apple_find_translation(swapped_option_cmd_keys, usage->code);
++              if (trans) {
++                      input_event(input, usage->type, trans->to, value);
++                      return 1;
++              }
++      }
++
+       return 0;
+ }
diff --git a/queue-3.12/hid-enable-mayflash-usb-gamecube-adapter.patch b/queue-3.12/hid-enable-mayflash-usb-gamecube-adapter.patch
new file mode 100644 (file)
index 0000000..e839abf
--- /dev/null
@@ -0,0 +1,51 @@
+From e17f5d7667c5414b8f12a93ef14aae0824bd2beb Mon Sep 17 00:00:00 2001
+From: Tristan Rice <rice@outerearth.net>
+Date: Tue, 12 Nov 2013 19:06:23 +0100
+Subject: HID: enable Mayflash USB Gamecube Adapter
+
+From: Tristan Rice <rice@outerearth.net>
+
+commit e17f5d7667c5414b8f12a93ef14aae0824bd2beb upstream.
+
+This is a patch that adds the new Mayflash Gamecube Controller to USB adapter
+(ID 1a34:f705 ACRUX) to the ACRUX driver (drivers/hid/hid-axff.c) with full
+force feedback support.
+
+Signed-off-by: Tristan Rice <rice@outerearth.net>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/hid/hid-axff.c |    3 ++-
+ drivers/hid/hid-core.c |    1 +
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+--- a/drivers/hid/hid-axff.c
++++ b/drivers/hid/hid-axff.c
+@@ -95,7 +95,7 @@ static int axff_init(struct hid_device *
+               }
+       }
+-      if (field_count < 4) {
++      if (field_count < 4 && hid->product != 0xf705) {
+               hid_err(hid, "not enough fields in the report: %d\n",
+                       field_count);
+               return -ENODEV;
+@@ -180,6 +180,7 @@ static void ax_remove(struct hid_device
+ static const struct hid_device_id ax_devices[] = {
+       { HID_USB_DEVICE(USB_VENDOR_ID_ACRUX, 0x0802), },
++      { HID_USB_DEVICE(USB_VENDOR_ID_ACRUX, 0xf705), },
+       { }
+ };
+ MODULE_DEVICE_TABLE(hid, ax_devices);
+--- a/drivers/hid/hid-core.c
++++ b/drivers/hid/hid-core.c
+@@ -1605,6 +1605,7 @@ static const struct hid_device_id hid_ha
+       { HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_X5_005D) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_RP_649) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_ACRUX, 0x0802) },
++      { HID_USB_DEVICE(USB_VENDOR_ID_ACRUX, 0xf705) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MIGHTYMOUSE) },
+       { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGICMOUSE) },
+       { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGICTRACKPAD) },
diff --git a/queue-3.12/hid-roccat-add-missing-special-driver-declarations.patch b/queue-3.12/hid-roccat-add-missing-special-driver-declarations.patch
new file mode 100644 (file)
index 0000000..53a4a78
--- /dev/null
@@ -0,0 +1,37 @@
+From e078809df5611600965f4d3420c3256260fc3e3d Mon Sep 17 00:00:00 2001
+From: Stefan Achatz <erazor_de@users.sourceforge.net>
+Date: Fri, 8 Nov 2013 14:12:00 +0100
+Subject: HID: roccat: add missing special driver declarations
+
+From: Stefan Achatz <erazor_de@users.sourceforge.net>
+
+commit e078809df5611600965f4d3420c3256260fc3e3d upstream.
+
+Forgot two special driver declarations and sorted the list.
+
+Signed-off-by: Stefan Achatz <erazor_de@users.sourceforge.net>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/hid/hid-core.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/drivers/hid/hid-core.c
++++ b/drivers/hid/hid-core.c
+@@ -1802,12 +1802,14 @@ static const struct hid_device_id hid_ha
+       { HID_USB_DEVICE(USB_VENDOR_ID_PETALYNX, USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_KEYBOARD) },
+ #if IS_ENABLED(CONFIG_HID_ROCCAT)
+-      { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONE) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_ARVO) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_ISKU) },
++      { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_ISKUFX) },
++      { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONE) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONEPLUS) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONEPURE) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONEPURE_OPTICAL) },
++      { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONEXTD) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KOVAPLUS) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_LUA) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_PYRA_WIRED) },
diff --git a/queue-3.12/hid-roccat-add-new-device-return-value.patch b/queue-3.12/hid-roccat-add-new-device-return-value.patch
new file mode 100644 (file)
index 0000000..5f0f1ea
--- /dev/null
@@ -0,0 +1,53 @@
+From 14fc4290df2fb94a28f39dab9ed32feaa5527bef Mon Sep 17 00:00:00 2001
+From: Stefan Achatz <erazor_de@users.sourceforge.net>
+Date: Mon, 28 Oct 2013 18:52:03 +0100
+Subject: HID: roccat: add new device return value
+
+From: Stefan Achatz <erazor_de@users.sourceforge.net>
+
+commit 14fc4290df2fb94a28f39dab9ed32feaa5527bef upstream.
+
+Ryos uses a new return value for critical errors, others have been
+confirmed.
+
+Signed-off-by: Stefan Achatz <erazor_de@users.sourceforge.net>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/hid/hid-roccat-common.c |   12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+--- a/drivers/hid/hid-roccat-common.c
++++ b/drivers/hid/hid-roccat-common.c
+@@ -65,10 +65,11 @@ int roccat_common2_send(struct usb_devic
+ EXPORT_SYMBOL_GPL(roccat_common2_send);
+ enum roccat_common2_control_states {
+-      ROCCAT_COMMON_CONTROL_STATUS_OVERLOAD = 0,
++      ROCCAT_COMMON_CONTROL_STATUS_CRITICAL = 0,
+       ROCCAT_COMMON_CONTROL_STATUS_OK = 1,
+       ROCCAT_COMMON_CONTROL_STATUS_INVALID = 2,
+-      ROCCAT_COMMON_CONTROL_STATUS_WAIT = 3,
++      ROCCAT_COMMON_CONTROL_STATUS_BUSY = 3,
++      ROCCAT_COMMON_CONTROL_STATUS_CRITICAL_NEW = 4,
+ };
+ static int roccat_common2_receive_control_status(struct usb_device *usb_dev)
+@@ -88,13 +89,12 @@ static int roccat_common2_receive_contro
+               switch (control.value) {
+               case ROCCAT_COMMON_CONTROL_STATUS_OK:
+                       return 0;
+-              case ROCCAT_COMMON_CONTROL_STATUS_WAIT:
++              case ROCCAT_COMMON_CONTROL_STATUS_BUSY:
+                       msleep(500);
+                       continue;
+               case ROCCAT_COMMON_CONTROL_STATUS_INVALID:
+-
+-              case ROCCAT_COMMON_CONTROL_STATUS_OVERLOAD:
+-                      /* seems to be critical - replug necessary */
++              case ROCCAT_COMMON_CONTROL_STATUS_CRITICAL:
++              case ROCCAT_COMMON_CONTROL_STATUS_CRITICAL_NEW:
+                       return -EINVAL;
+               default:
+                       dev_err(&usb_dev->dev,
diff --git a/queue-3.12/hid-roccat-fix-coverity-cid-141438.patch b/queue-3.12/hid-roccat-fix-coverity-cid-141438.patch
new file mode 100644 (file)
index 0000000..e939a9a
--- /dev/null
@@ -0,0 +1,35 @@
+From 7be63f20b00840a6f1c718dcee00855688d64acd Mon Sep 17 00:00:00 2001
+From: Stefan Achatz <erazor_de@users.sourceforge.net>
+Date: Sun, 3 Nov 2013 06:25:33 +0100
+Subject: HID: roccat: fix Coverity CID 141438
+
+From: Stefan Achatz <erazor_de@users.sourceforge.net>
+
+commit 7be63f20b00840a6f1c718dcee00855688d64acd upstream.
+
+Add missing switch breaks.
+
+Signed-off-by: Stefan Achatz <erazor_de@users.sourceforge.net>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/hid/hid-roccat-kovaplus.c |    4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/hid/hid-roccat-kovaplus.c
++++ b/drivers/hid/hid-roccat-kovaplus.c
+@@ -554,9 +554,13 @@ static void kovaplus_keep_values_up_to_d
+               break;
+       case KOVAPLUS_MOUSE_REPORT_BUTTON_TYPE_CPI:
+               kovaplus->actual_cpi = kovaplus_convert_event_cpi(button_report->data1);
++              break;
+       case KOVAPLUS_MOUSE_REPORT_BUTTON_TYPE_SENSITIVITY:
+               kovaplus->actual_x_sensitivity = button_report->data1;
+               kovaplus->actual_y_sensitivity = button_report->data2;
++              break;
++      default:
++              break;
+       }
+ }
index 63f2fa7de57a214de9eaa59040e1ab36273c9ee7..9f7f0c715e0de04922590b91493f8f7455aaed53 100644 (file)
@@ -204,3 +204,9 @@ media-dvb-frontends-don-t-use-dynamic-static-allocation.patch
 media-dvb-frontends-again-don-t-use-dynamic-static-allocation.patch
 media-s5h1420-don-t-use-dynamic-static-allocation.patch
 x.509-remove-certificate-date-checks.patch
+hid-roccat-add-new-device-return-value.patch
+hid-roccat-fix-coverity-cid-141438.patch
+hid-roccat-add-missing-special-driver-declarations.patch
+hid-add-support-for-leetgion-hellion-gaming-mouse.patch
+hid-enable-mayflash-usb-gamecube-adapter.patch
+hid-apple-option-to-swap-the-option-alt-and-command-flag-keys.patch