Code:
--- ./drivers/net/wireless/mwifiex/usb.c.orig 2014-02-19 05:13:05.000000000 +0800
+++ ./drivers/net/wireless/mwifiex/usb.c 2014-03-13 08:14:41.877822883 +0800
@@ -511,13 +511,6 @@
MWIFIEX_BSS_ROLE_ANY),
MWIFIEX_ASYNC_CMD);
-#ifdef CONFIG_PM
- /* Resume handler may be called due to remote wakeup,
- * force to exit suspend anyway
- */
- usb_disable_autosuspend(card->udev);
-#endif /* CONFIG_PM */
-
return 0;
}
@@ -576,7 +569,6 @@
.id_table = mwifiex_usb_table,
.suspend = mwifiex_usb_suspend,
.resume = mwifiex_usb_resume,
- .supports_autosuspend = 1,
};
static int mwifiex_usb_tx_init(struct mwifiex_adapter *adapter)
--- drivers/bluetooth/btusb.c.orig 2014-02-19 05:13:05.000000000 +0800
+++ drivers/bluetooth/btusb.c 2014-03-14 21:40:14.904609775 +0800
@@ -50,6 +50,7 @@
#define BTUSB_WRONG_SCO_MTU 0x40
#define BTUSB_ATH3012 0x80
#define BTUSB_INTEL 0x100
+#define BTUSB_MWIFIEX 0x200
#define BTUSB_BCM_PATCHRAM 0x800
static struct usb_device_id btusb_table[] = {
@@ -230,6 +231,9 @@
/* Intel Bluetooth device */
{ USB_DEVICE(0x8087, 0x07dc), .driver_info = BTUSB_INTEL },
+ /* Marvell 8797 - mwifiex-usb composite wifi+bt device */
+ { USB_DEVICE(0x1286, 0x2044), .driver_info = BTUSB_MWIFIEX },
+
{ } /* Terminating entry */
};
@@ -1511,6 +1515,11 @@
if (id->driver_info & BTUSB_BCM_PATCHRAM)
hdev->setup = btusb_setup_patchram;
+ if (id->driver_info & BTUSB_MWIFIEX) {
+ printk(KERN_INFO KBUILD_MODNAME ": mwifiex bt detected, disabling usb autosuspend\n");
+ usb_disable_autosuspend(data->udev);
+ }
+
/* Interface numbers are hardcoded in the specification */
data->isoc = usb_ifnum_to_if(data->udev, 1);
--- ./drivers/hid/usbhid/hid-quirks.c.orig 2014-02-19 05:13:05.000000000 +0800
+++ ./drivers/hid/usbhid/hid-quirks.c 2014-03-13 08:46:37.785748753 +0800
@@ -73,6 +73,9 @@
{ USB_VENDOR_ID_FORMOSA, USB_DEVICE_ID_FORMOSA_IR_RECEIVER, HID_QUIRK_NO_INIT_REPORTS },
{ USB_VENDOR_ID_FREESCALE, USB_DEVICE_ID_FREESCALE_MX28, HID_QUIRK_NOGET },
{ USB_VENDOR_ID_MGE, USB_DEVICE_ID_MGE_UPS, HID_QUIRK_NOGET },
+ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_SURFACE_PRO_2, HID_QUIRK_NO_INIT_REPORTS },
+ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_2, HID_QUIRK_NO_INIT_REPORTS },
+ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TOUCH_COVER_2, HID_QUIRK_NO_INIT_REPORTS },
{ USB_VENDOR_ID_MSI, USB_DEVICE_ID_MSI_GX680R_LED_PANEL, HID_QUIRK_NO_INIT_REPORTS },
{ USB_VENDOR_ID_NOVATEK, USB_DEVICE_ID_NOVATEK_MOUSE, HID_QUIRK_NO_INIT_REPORTS },
{ USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN, HID_QUIRK_NO_INIT_REPORTS },
--- ./drivers/hid/hid-core.c.orig 2014-03-13 08:16:08.013819550 +0800
+++ ./drivers/hid/hid-core.c 2014-03-13 08:18:37.721813758 +0800
@@ -733,6 +733,14 @@
(item_udata(&item) & 0xff) == HID_COLLECTION_PHYSICAL)
hid->group = HID_GROUP_SENSOR_HUB;
}
+ /*
+ * Handle vendor specific handlings
+ */
+ if ((hid->vendor == USB_VENDOR_ID_MICROSOFT) &&
+ (hid->product == USB_DEVICE_ID_MS_TYPE_COVER_2 ||
+ hid->product == USB_DEVICE_ID_MS_TOUCH_COVER_2)
+ && (hid->group == HID_GROUP_MULTITOUCH))
+ hid->group = HID_GROUP_GENERIC;
return 0;
}
--- ./drivers/hid/hid-ids.h.orig 2014-02-19 05:13:05.000000000 +0800
+++ ./drivers/hid/hid-ids.h 2014-03-13 08:16:08.025819550 +0800
@@ -611,6 +611,9 @@
#define USB_DEVICE_ID_MS_PRESENTER_8K_USB 0x0713
#define USB_DEVICE_ID_MS_DIGITAL_MEDIA_3K 0x0730
#define USB_DEVICE_ID_MS_COMFORT_MOUSE_4500 0x076c
+#define USB_DEVICE_ID_MS_SURFACE_PRO_2 0x0799
+#define USB_DEVICE_ID_MS_TOUCH_COVER_2 0x07a7
+#define USB_DEVICE_ID_MS_TYPE_COVER_2 0x07a9
#define USB_VENDOR_ID_MOJO 0x8282
#define USB_DEVICE_ID_RETRO_ADAPTER 0x3201
--- drivers/hid/hid-sensor-hub.c.orig 2014-03-14 00:45:20.759523066 +0800
+++ drivers/hid/hid-sensor-hub.c 2014-03-14 00:45:50.307521923 +0800
@@ -607,6 +607,15 @@
}
static const struct hid_device_id sensor_hub_devices[] = {
+ { HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_MICROSOFT,
+ USB_DEVICE_ID_MS_TOUCH_COVER_2),
+ .driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
+ { HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_MICROSOFT,
+ USB_DEVICE_ID_MS_TYPE_COVER_2),
+ .driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
+ { HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_MICROSOFT,
+ USB_DEVICE_ID_MS_SURFACE_PRO_2),
+ .driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, HID_ANY_ID,
HID_ANY_ID) },
{ }
Bookmarks