diff --git a/packages/linux/package.mk b/packages/linux/package.mk index 738fa46124..6e1aca713d 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -23,7 +23,7 @@ case "$LINUX" in PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" ;; *) - PKG_VERSION="3.16.3" + PKG_VERSION="3.16.4" PKG_URL="http://www.kernel.org/pub/linux/kernel/v3.x/$PKG_NAME-$PKG_VERSION.tar.xz" ;; esac diff --git a/packages/linux/patches/3.16.3/linux-999.05-fix_ath9k_htc.patch b/packages/linux/patches/3.16.3/linux-999.05-fix_ath9k_htc.patch deleted file mode 100644 index edaac73b35..0000000000 --- a/packages/linux/patches/3.16.3/linux-999.05-fix_ath9k_htc.patch +++ /dev/null @@ -1,35 +0,0 @@ -see https://bugzilla.kernel.org/show_bug.cgi?id=78581 - -I read a bit through the code and found one thing which explains -both the issue and the random reproducibility behaviour in -comment 14 and 16. Currently I can't reboot to fully confirm, -only did the speed test as in comment 16. (After overhight -hibernate I'm back to the state as in comment 14.) - -This one change on top of v3.16 seems to fix it. - -Another thing caught my eye, it is unrelated to this bug but -I'm reporting it here for my convenience ;-) -In ath9k_cmn_rx_skb_postprocess(): - - hdrlen = ieee80211_get_hdrlen_from_skb(skb); - fc = hdr->frame_control; - padpos = ieee80211_hdrlen(fc); - -Now padpos == hdrlen, except ieee80211_get_hdrlen_from_skb() -checks the skb->len and might fail. This is confused. If the -skb->len check is needed, shouldn't it be done before calling -ath9k_cmn_rx_accept()? - -diff -Naur linux-3.16.3/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c linux-3.16.3.patch/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c ---- linux-3.16.3/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c 2014-09-17 19:22:16.000000000 +0200 -+++ linux-3.16.3.patch/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c 2014-09-30 02:58:30.750915927 +0200 -@@ -978,7 +978,7 @@ - struct ath_hw *ah = common->ah; - struct ath_htc_rx_status *rxstatus; - struct ath_rx_status rx_stats; -- bool decrypt_error; -+ bool decrypt_error = false; - - if (skb->len < HTC_RX_FRAME_HEADER_SIZE) { - ath_err(common, "Corrupted RX frame, dropping (len: %d)\n", diff --git a/packages/linux/patches/3.16.3/linux-003-no_dev_console.patch b/packages/linux/patches/3.16.4/linux-003-no_dev_console.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-003-no_dev_console.patch rename to packages/linux/patches/3.16.4/linux-003-no_dev_console.patch diff --git a/packages/linux/patches/3.16.4/linux-050-xpad-add_support_for_Xbox-One_controllers.patch.bk b/packages/linux/patches/3.16.4/linux-050-xpad-add_support_for_Xbox-One_controllers.patch.bk new file mode 100644 index 0000000000..12cc96015c --- /dev/null +++ b/packages/linux/patches/3.16.4/linux-050-xpad-add_support_for_Xbox-One_controllers.patch.bk @@ -0,0 +1,348 @@ +From 1a48ff81b3912be5fadae3fafde6c2f632246a4c Mon Sep 17 00:00:00 2001 +From: Ted Mielczarek +Date: Fri, 8 Aug 2014 11:21:59 -0700 +Subject: Input: xpad - add support for Xbox One controllers + +Xbox One controllers require an initialization message to start sending +data, so xpad_init_output becomes a required function. The Xbox One +controller does not have LEDs like the Xbox 360 controller, so that +functionality is not implemented. The format of messages controlling rumble +is currently undocumented, so rumble support is not yet implemented. + +Note that Xbox One controller advertises three interfaces with the same +interface class, subclass and protocol, so we have to also match against +interface number. + +Signed-off-by: Ted Mielczarek +Signed-off-by: Dmitry Torokhov + +diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c +index 603fe0d..177602c 100644 +--- a/drivers/input/joystick/xpad.c ++++ b/drivers/input/joystick/xpad.c +@@ -95,7 +95,8 @@ + #define XTYPE_XBOX 0 + #define XTYPE_XBOX360 1 + #define XTYPE_XBOX360W 2 +-#define XTYPE_UNKNOWN 3 ++#define XTYPE_XBOXONE 3 ++#define XTYPE_UNKNOWN 4 + + static bool dpad_to_buttons; + module_param(dpad_to_buttons, bool, S_IRUGO); +@@ -121,6 +122,7 @@ static const struct xpad_device { + { 0x045e, 0x0287, "Microsoft Xbox Controller S", 0, XTYPE_XBOX }, + { 0x045e, 0x0289, "Microsoft X-Box pad v2 (US)", 0, XTYPE_XBOX }, + { 0x045e, 0x028e, "Microsoft X-Box 360 pad", 0, XTYPE_XBOX360 }, ++ { 0x045e, 0x02d1, "Microsoft X-Box One pad", 0, XTYPE_XBOXONE }, + { 0x045e, 0x0291, "Xbox 360 Wireless Receiver (XBOX)", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX360W }, + { 0x045e, 0x0719, "Xbox 360 Wireless Receiver", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX360W }, + { 0x044f, 0x0f07, "Thrustmaster, Inc. Controller", 0, XTYPE_XBOX }, +@@ -231,10 +233,12 @@ static const signed short xpad_abs_triggers[] = { + -1 + }; + +-/* Xbox 360 has a vendor-specific class, so we cannot match it with only ++/* ++ * Xbox 360 has a vendor-specific class, so we cannot match it with only + * USB_INTERFACE_INFO (also specifically refused by USB subsystem), so we + * match against vendor id as well. Wired Xbox 360 devices have protocol 1, +- * wireless controllers have protocol 129. */ ++ * wireless controllers have protocol 129. ++ */ + #define XPAD_XBOX360_VENDOR_PROTOCOL(vend,pr) \ + .match_flags = USB_DEVICE_ID_MATCH_VENDOR | USB_DEVICE_ID_MATCH_INT_INFO, \ + .idVendor = (vend), \ +@@ -245,9 +249,20 @@ static const signed short xpad_abs_triggers[] = { + { XPAD_XBOX360_VENDOR_PROTOCOL(vend,1) }, \ + { XPAD_XBOX360_VENDOR_PROTOCOL(vend,129) } + ++/* The Xbox One controller uses subclass 71 and protocol 208. */ ++#define XPAD_XBOXONE_VENDOR_PROTOCOL(vend, pr) \ ++ .match_flags = USB_DEVICE_ID_MATCH_VENDOR | USB_DEVICE_ID_MATCH_INT_INFO, \ ++ .idVendor = (vend), \ ++ .bInterfaceClass = USB_CLASS_VENDOR_SPEC, \ ++ .bInterfaceSubClass = 71, \ ++ .bInterfaceProtocol = (pr) ++#define XPAD_XBOXONE_VENDOR(vend) \ ++ { XPAD_XBOXONE_VENDOR_PROTOCOL(vend, 208) } ++ + static struct usb_device_id xpad_table[] = { + { USB_INTERFACE_INFO('X', 'B', 0) }, /* X-Box USB-IF not approved class */ + XPAD_XBOX360_VENDOR(0x045e), /* Microsoft X-Box 360 controllers */ ++ XPAD_XBOXONE_VENDOR(0x045e), /* Microsoft X-Box One controllers */ + XPAD_XBOX360_VENDOR(0x046d), /* Logitech X-Box 360 style controllers */ + XPAD_XBOX360_VENDOR(0x0738), /* Mad Catz X-Box 360 controllers */ + { USB_DEVICE(0x0738, 0x4540) }, /* Mad Catz Beat Pad */ +@@ -278,12 +293,10 @@ struct usb_xpad { + struct urb *bulk_out; + unsigned char *bdata; + +-#if defined(CONFIG_JOYSTICK_XPAD_FF) || defined(CONFIG_JOYSTICK_XPAD_LEDS) + struct urb *irq_out; /* urb for interrupt out report */ + unsigned char *odata; /* output data */ + dma_addr_t odata_dma; + struct mutex odata_mutex; +-#endif + + #if defined(CONFIG_JOYSTICK_XPAD_LEDS) + struct xpad_led *led; +@@ -470,6 +483,105 @@ static void xpad360w_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned cha + xpad360_process_packet(xpad, cmd, &data[4]); + } + ++/* ++ * xpadone_process_buttons ++ * ++ * Process a button update packet from an Xbox one controller. ++ */ ++static void xpadone_process_buttons(struct usb_xpad *xpad, ++ struct input_dev *dev, ++ unsigned char *data) ++{ ++ /* menu/view buttons */ ++ input_report_key(dev, BTN_START, data[4] & 0x04); ++ input_report_key(dev, BTN_SELECT, data[4] & 0x08); ++ ++ /* buttons A,B,X,Y */ ++ input_report_key(dev, BTN_A, data[4] & 0x10); ++ input_report_key(dev, BTN_B, data[4] & 0x20); ++ input_report_key(dev, BTN_X, data[4] & 0x40); ++ input_report_key(dev, BTN_Y, data[4] & 0x80); ++ ++ /* digital pad */ ++ if (xpad->mapping & MAP_DPAD_TO_BUTTONS) { ++ /* dpad as buttons (left, right, up, down) */ ++ input_report_key(dev, BTN_TRIGGER_HAPPY1, data[5] & 0x04); ++ input_report_key(dev, BTN_TRIGGER_HAPPY2, data[5] & 0x08); ++ input_report_key(dev, BTN_TRIGGER_HAPPY3, data[5] & 0x01); ++ input_report_key(dev, BTN_TRIGGER_HAPPY4, data[5] & 0x02); ++ } else { ++ input_report_abs(dev, ABS_HAT0X, ++ !!(data[5] & 0x08) - !!(data[5] & 0x04)); ++ input_report_abs(dev, ABS_HAT0Y, ++ !!(data[5] & 0x02) - !!(data[5] & 0x01)); ++ } ++ ++ /* TL/TR */ ++ input_report_key(dev, BTN_TL, data[5] & 0x10); ++ input_report_key(dev, BTN_TR, data[5] & 0x20); ++ ++ /* stick press left/right */ ++ input_report_key(dev, BTN_THUMBL, data[5] & 0x40); ++ input_report_key(dev, BTN_THUMBR, data[5] & 0x80); ++ ++ if (!(xpad->mapping & MAP_STICKS_TO_NULL)) { ++ /* left stick */ ++ input_report_abs(dev, ABS_X, ++ (__s16) le16_to_cpup((__le16 *)(data + 10))); ++ input_report_abs(dev, ABS_Y, ++ ~(__s16) le16_to_cpup((__le16 *)(data + 12))); ++ ++ /* right stick */ ++ input_report_abs(dev, ABS_RX, ++ (__s16) le16_to_cpup((__le16 *)(data + 14))); ++ input_report_abs(dev, ABS_RY, ++ ~(__s16) le16_to_cpup((__le16 *)(data + 16))); ++ } ++ ++ /* triggers left/right */ ++ if (xpad->mapping & MAP_TRIGGERS_TO_BUTTONS) { ++ input_report_key(dev, BTN_TL2, ++ (__u16) le16_to_cpup((__le16 *)(data + 6))); ++ input_report_key(dev, BTN_TR2, ++ (__u16) le16_to_cpup((__le16 *)(data + 8))); ++ } else { ++ input_report_abs(dev, ABS_Z, ++ (__u16) le16_to_cpup((__le16 *)(data + 6))); ++ input_report_abs(dev, ABS_RZ, ++ (__u16) le16_to_cpup((__le16 *)(data + 8))); ++ } ++ ++ input_sync(dev); ++} ++ ++/* ++ * xpadone_process_packet ++ * ++ * Completes a request by converting the data into events for the ++ * input subsystem. This version is for the Xbox One controller. ++ * ++ * The report format was gleaned from ++ * https://github.com/kylelemons/xbox/blob/master/xbox.go ++ */ ++ ++static void xpadone_process_packet(struct usb_xpad *xpad, ++ u16 cmd, unsigned char *data) ++{ ++ struct input_dev *dev = xpad->dev; ++ ++ switch (data[0]) { ++ case 0x20: ++ xpadone_process_buttons(xpad, dev, data); ++ break; ++ ++ case 0x07: ++ /* the xbox button has its own special report */ ++ input_report_key(dev, BTN_MODE, data[4] & 0x01); ++ input_sync(dev); ++ break; ++ } ++} ++ + static void xpad_irq_in(struct urb *urb) + { + struct usb_xpad *xpad = urb->context; +@@ -502,6 +614,9 @@ static void xpad_irq_in(struct urb *urb) + case XTYPE_XBOX360W: + xpad360w_process_packet(xpad, 0, xpad->idata); + break; ++ case XTYPE_XBOXONE: ++ xpadone_process_packet(xpad, 0, xpad->idata); ++ break; + default: + xpad_process_packet(xpad, 0, xpad->idata); + } +@@ -535,7 +650,6 @@ static void xpad_bulk_out(struct urb *urb) + } + } + +-#if defined(CONFIG_JOYSTICK_XPAD_FF) || defined(CONFIG_JOYSTICK_XPAD_LEDS) + static void xpad_irq_out(struct urb *urb) + { + struct usb_xpad *xpad = urb->context; +@@ -573,6 +687,7 @@ exit: + static int xpad_init_output(struct usb_interface *intf, struct usb_xpad *xpad) + { + struct usb_endpoint_descriptor *ep_irq_out; ++ int ep_irq_out_idx; + int error; + + if (xpad->xtype == XTYPE_UNKNOWN) +@@ -593,7 +708,10 @@ static int xpad_init_output(struct usb_interface *intf, struct usb_xpad *xpad) + goto fail2; + } + +- ep_irq_out = &intf->cur_altsetting->endpoint[1].desc; ++ /* Xbox One controller has in/out endpoints swapped. */ ++ ep_irq_out_idx = xpad->xtype == XTYPE_XBOXONE ? 0 : 1; ++ ep_irq_out = &intf->cur_altsetting->endpoint[ep_irq_out_idx].desc; ++ + usb_fill_int_urb(xpad->irq_out, xpad->udev, + usb_sndintpipe(xpad->udev, ep_irq_out->bEndpointAddress), + xpad->odata, XPAD_PKT_LEN, +@@ -621,11 +739,6 @@ static void xpad_deinit_output(struct usb_xpad *xpad) + xpad->odata, xpad->odata_dma); + } + } +-#else +-static int xpad_init_output(struct usb_interface *intf, struct usb_xpad *xpad) { return 0; } +-static void xpad_deinit_output(struct usb_xpad *xpad) {} +-static void xpad_stop_output(struct usb_xpad *xpad) {} +-#endif + + #ifdef CONFIG_JOYSTICK_XPAD_FF + static int xpad_play_effect(struct input_dev *dev, void *data, struct ff_effect *effect) +@@ -692,7 +805,7 @@ static int xpad_play_effect(struct input_dev *dev, void *data, struct ff_effect + + static int xpad_init_ff(struct usb_xpad *xpad) + { +- if (xpad->xtype == XTYPE_UNKNOWN) ++ if (xpad->xtype == XTYPE_UNKNOWN || xpad->xtype == XTYPE_XBOXONE) + return 0; + + input_set_capability(xpad->dev, EV_FF, FF_RUMBLE); +@@ -801,6 +914,14 @@ static int xpad_open(struct input_dev *dev) + if (usb_submit_urb(xpad->irq_in, GFP_KERNEL)) + return -EIO; + ++ if (xpad->xtype == XTYPE_XBOXONE) { ++ /* Xbox one controller needs to be initialized. */ ++ xpad->odata[0] = 0x05; ++ xpad->odata[1] = 0x20; ++ xpad->irq_out->transfer_buffer_length = 2; ++ return usb_submit_urb(xpad->irq_out, GFP_KERNEL); ++ } ++ + return 0; + } + +@@ -816,6 +937,7 @@ static void xpad_close(struct input_dev *dev) + + static void xpad_set_up_abs(struct input_dev *input_dev, signed short abs) + { ++ struct usb_xpad *xpad = input_get_drvdata(input_dev); + set_bit(abs, input_dev->absbit); + + switch (abs) { +@@ -827,7 +949,10 @@ static void xpad_set_up_abs(struct input_dev *input_dev, signed short abs) + break; + case ABS_Z: + case ABS_RZ: /* the triggers (if mapped to axes) */ +- input_set_abs_params(input_dev, abs, 0, 255, 0, 0); ++ if (xpad->xtype == XTYPE_XBOXONE) ++ input_set_abs_params(input_dev, abs, 0, 1023, 0, 0); ++ else ++ input_set_abs_params(input_dev, abs, 0, 255, 0, 0); + break; + case ABS_HAT0X: + case ABS_HAT0Y: /* the d-pad (only if dpad is mapped to axes */ +@@ -842,6 +967,7 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id + struct usb_xpad *xpad; + struct input_dev *input_dev; + struct usb_endpoint_descriptor *ep_irq_in; ++ int ep_irq_in_idx; + int i, error; + + for (i = 0; xpad_device[i].idVendor; i++) { +@@ -850,6 +976,16 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id + break; + } + ++ if (xpad_device[i].xtype == XTYPE_XBOXONE && ++ intf->cur_altsetting->desc.bInterfaceNumber != 0) { ++ /* ++ * The Xbox One controller lists three interfaces all with the ++ * same interface class, subclass and protocol. Differentiate by ++ * interface number. ++ */ ++ return -ENODEV; ++ } ++ + xpad = kzalloc(sizeof(struct usb_xpad), GFP_KERNEL); + input_dev = input_allocate_device(); + if (!xpad || !input_dev) { +@@ -920,7 +1056,8 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id + __set_bit(xpad_common_btn[i], input_dev->keybit); + + /* set up model-specific ones */ +- if (xpad->xtype == XTYPE_XBOX360 || xpad->xtype == XTYPE_XBOX360W) { ++ if (xpad->xtype == XTYPE_XBOX360 || xpad->xtype == XTYPE_XBOX360W || ++ xpad->xtype == XTYPE_XBOXONE) { + for (i = 0; xpad360_btn[i] >= 0; i++) + __set_bit(xpad360_btn[i], input_dev->keybit); + } else { +@@ -933,7 +1070,7 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id + __set_bit(xpad_btn_pad[i], input_dev->keybit); + } else { + for (i = 0; xpad_abs_pad[i] >= 0; i++) +- xpad_set_up_abs(input_dev, xpad_abs_pad[i]); ++ xpad_set_up_abs(input_dev, xpad_abs_pad[i]); + } + + if (xpad->mapping & MAP_TRIGGERS_TO_BUTTONS) { +@@ -956,7 +1093,10 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id + if (error) + goto fail5; + +- ep_irq_in = &intf->cur_altsetting->endpoint[0].desc; ++ /* Xbox One controller has in/out endpoints swapped. */ ++ ep_irq_in_idx = xpad->xtype == XTYPE_XBOXONE ? 1 : 0; ++ ep_irq_in = &intf->cur_altsetting->endpoint[ep_irq_in_idx].desc; ++ + usb_fill_int_urb(xpad->irq_in, udev, + usb_rcvintpipe(udev, ep_irq_in->bEndpointAddress), + xpad->idata, XPAD_PKT_LEN, xpad_irq_in, +-- +cgit v0.10.1 + diff --git a/packages/linux/patches/3.16.3/linux-051-ouya_controller_support.patch b/packages/linux/patches/3.16.4/linux-051-ouya_controller_support.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-051-ouya_controller_support.patch rename to packages/linux/patches/3.16.4/linux-051-ouya_controller_support.patch diff --git a/packages/linux/patches/3.16.3/linux-052-XBOX_remote_support.patch b/packages/linux/patches/3.16.4/linux-052-XBOX_remote_support.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-052-XBOX_remote_support.patch rename to packages/linux/patches/3.16.4/linux-052-XBOX_remote_support.patch diff --git a/packages/linux/patches/3.16.3/linux-053-spinelplus-remote-0.2.patch b/packages/linux/patches/3.16.4/linux-053-spinelplus-remote-0.2.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-053-spinelplus-remote-0.2.patch rename to packages/linux/patches/3.16.4/linux-053-spinelplus-remote-0.2.patch diff --git a/packages/linux/patches/3.16.3/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch b/packages/linux/patches/3.16.4/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch rename to packages/linux/patches/3.16.4/linux-054-nuvoton_revert_d7b290a1056c5564eec8a1b169c6e84ff3.6.114c13.patch diff --git a/packages/linux/patches/3.16.3/linux-055-add_Formosa_eHome_Infrared_Receiver.patch b/packages/linux/patches/3.16.4/linux-055-add_Formosa_eHome_Infrared_Receiver.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-055-add_Formosa_eHome_Infrared_Receiver.patch rename to packages/linux/patches/3.16.4/linux-055-add_Formosa_eHome_Infrared_Receiver.patch diff --git a/packages/linux/patches/3.16.3/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch b/packages/linux/patches/3.16.4/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch rename to packages/linux/patches/3.16.4/linux-056-add_Adaptec_eHome_Infrared_Receiver.patch diff --git a/packages/linux/patches/3.16.3/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch b/packages/linux/patches/3.16.4/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch rename to packages/linux/patches/3.16.4/linux-057-Removed-MCE-customer-code-restriction-in-rc6-decode.patch diff --git a/packages/linux/patches/3.16.3/linux-057-add_SMK_Manufacturing_Inc_Infrared_Receiver.patch b/packages/linux/patches/3.16.4/linux-057-add_SMK_Manufacturing_Inc_Infrared_Receiver.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-057-add_SMK_Manufacturing_Inc_Infrared_Receiver.patch rename to packages/linux/patches/3.16.4/linux-057-add_SMK_Manufacturing_Inc_Infrared_Receiver.patch diff --git a/packages/linux/patches/3.16.3/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch b/packages/linux/patches/3.16.4/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch rename to packages/linux/patches/3.16.4/linux-058.05-hid_sony-add_autorepeat_for_PS3_remotes.patch diff --git a/packages/linux/patches/3.16.3/linux-058.06-hid_sony-add_SMK_link.patch b/packages/linux/patches/3.16.4/linux-058.06-hid_sony-add_SMK_link.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-058.06-hid_sony-add_SMK_link.patch rename to packages/linux/patches/3.16.4/linux-058.06-hid_sony-add_SMK_link.patch diff --git a/packages/linux/patches/3.16.3/linux-059-remove_some_xpad_pids-0.2.patch b/packages/linux/patches/3.16.4/linux-059-remove_some_xpad_pids-0.2.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-059-remove_some_xpad_pids-0.2.patch rename to packages/linux/patches/3.16.4/linux-059-remove_some_xpad_pids-0.2.patch diff --git a/packages/linux/patches/3.16.3/linux-060-add_AUGUST_DVB-T205.patch b/packages/linux/patches/3.16.4/linux-060-add_AUGUST_DVB-T205.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-060-add_AUGUST_DVB-T205.patch rename to packages/linux/patches/3.16.4/linux-060-add_AUGUST_DVB-T205.patch diff --git a/packages/linux/patches/3.16.3/linux-061-valve-xpad-rework.patch b/packages/linux/patches/3.16.4/linux-061-valve-xpad-rework.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-061-valve-xpad-rework.patch rename to packages/linux/patches/3.16.4/linux-061-valve-xpad-rework.patch diff --git a/packages/linux/patches/3.16.3/linux-062-imon_pad_ignore_diagonal.patch b/packages/linux/patches/3.16.4/linux-062-imon_pad_ignore_diagonal.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-062-imon_pad_ignore_diagonal.patch rename to packages/linux/patches/3.16.4/linux-062-imon_pad_ignore_diagonal.patch diff --git a/packages/linux/patches/3.16.3/linux-203-stb0899_enable_low_symbol_rate.patch b/packages/linux/patches/3.16.4/linux-203-stb0899_enable_low_symbol_rate.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-203-stb0899_enable_low_symbol_rate.patch rename to packages/linux/patches/3.16.4/linux-203-stb0899_enable_low_symbol_rate.patch diff --git a/packages/linux/patches/3.16.3/linux-210-dvbsky.patch b/packages/linux/patches/3.16.4/linux-210-dvbsky.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-210-dvbsky.patch rename to packages/linux/patches/3.16.4/linux-210-dvbsky.patch diff --git a/packages/linux/patches/3.16.3/linux-211-dvbsky-s950v3-s952v3.patch b/packages/linux/patches/3.16.4/linux-211-dvbsky-s950v3-s952v3.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-211-dvbsky-s950v3-s952v3.patch rename to packages/linux/patches/3.16.4/linux-211-dvbsky-s950v3-s952v3.patch diff --git a/packages/linux/patches/3.16.3/linux-212-mantis_stb0899_faster_lock.patch b/packages/linux/patches/3.16.4/linux-212-mantis_stb0899_faster_lock.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-212-mantis_stb0899_faster_lock.patch rename to packages/linux/patches/3.16.4/linux-212-mantis_stb0899_faster_lock.patch diff --git a/packages/linux/patches/3.16.3/linux-221-ngene-octopus.patch b/packages/linux/patches/3.16.4/linux-221-ngene-octopus.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-221-ngene-octopus.patch rename to packages/linux/patches/3.16.4/linux-221-ngene-octopus.patch diff --git a/packages/linux/patches/3.16.3/linux-222-stb0899_signal_quality.patch b/packages/linux/patches/3.16.4/linux-222-stb0899_signal_quality.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-222-stb0899_signal_quality.patch rename to packages/linux/patches/3.16.4/linux-222-stb0899_signal_quality.patch diff --git a/packages/linux/patches/3.16.3/linux-223-Fix-video-artifacts-with-tt-3600-s2-usb.patch b/packages/linux/patches/3.16.4/linux-223-Fix-video-artifacts-with-tt-3600-s2-usb.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-223-Fix-video-artifacts-with-tt-3600-s2-usb.patch rename to packages/linux/patches/3.16.4/linux-223-Fix-video-artifacts-with-tt-3600-s2-usb.patch diff --git a/packages/linux/patches/3.16.3/linux-224-geniatech-t220-dvb-t2-fix.patch b/packages/linux/patches/3.16.4/linux-224-geniatech-t220-dvb-t2-fix.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-224-geniatech-t220-dvb-t2-fix.patch rename to packages/linux/patches/3.16.4/linux-224-geniatech-t220-dvb-t2-fix.patch diff --git a/packages/linux/patches/3.16.3/linux-701-linksys_aes2500_brcmfmac.patch b/packages/linux/patches/3.16.4/linux-701-linksys_aes2500_brcmfmac.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-701-linksys_aes2500_brcmfmac.patch rename to packages/linux/patches/3.16.4/linux-701-linksys_aes2500_brcmfmac.patch diff --git a/packages/linux/patches/3.16.3/linux-703-macmini2012-ethernet.patch b/packages/linux/patches/3.16.4/linux-703-macmini2012-ethernet.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-703-macmini2012-ethernet.patch rename to packages/linux/patches/3.16.4/linux-703-macmini2012-ethernet.patch diff --git a/packages/linux/patches/3.16.3/linux-705-Support-for-Buffalo-WLI-UC-G300HP-V1.patch b/packages/linux/patches/3.16.4/linux-705-Support-for-Buffalo-WLI-UC-G300HP-V1.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-705-Support-for-Buffalo-WLI-UC-G300HP-V1.patch rename to packages/linux/patches/3.16.4/linux-705-Support-for-Buffalo-WLI-UC-G300HP-V1.patch diff --git a/packages/linux/patches/3.16.3/linux-706-Sitecom-N300.patch b/packages/linux/patches/3.16.4/linux-706-Sitecom-N300.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-706-Sitecom-N300.patch rename to packages/linux/patches/3.16.4/linux-706-Sitecom-N300.patch diff --git a/packages/linux/patches/3.16.3/linux-900-hide_tsc_error.patch b/packages/linux/patches/3.16.4/linux-900-hide_tsc_error.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-900-hide_tsc_error.patch rename to packages/linux/patches/3.16.4/linux-900-hide_tsc_error.patch diff --git a/packages/linux/patches/3.16.3/linux-950-saa716x_PCIe_interface_chipset.patch b/packages/linux/patches/3.16.4/linux-950-saa716x_PCIe_interface_chipset.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-950-saa716x_PCIe_interface_chipset.patch rename to packages/linux/patches/3.16.4/linux-950-saa716x_PCIe_interface_chipset.patch diff --git a/packages/linux/patches/3.16.3/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch b/packages/linux/patches/3.16.4/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch rename to packages/linux/patches/3.16.4/linux-990.06-hda-Avoid-outputting-HDMI-audio-before-prepare-.patch diff --git a/packages/linux/patches/3.16.3/linux-995-CX24120-13Z_frontend.patch b/packages/linux/patches/3.16.4/linux-995-CX24120-13Z_frontend.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-995-CX24120-13Z_frontend.patch rename to packages/linux/patches/3.16.4/linux-995-CX24120-13Z_frontend.patch diff --git a/packages/linux/patches/3.16.3/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch b/packages/linux/patches/3.16.4/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch rename to packages/linux/patches/3.16.4/linux-999.02-0001-pm-disable-async-suspend-resume-by-default.patch diff --git a/packages/linux/patches/3.16.3/linux-999.04-revert-xhci-Set-scatter-gather-limit.patch b/packages/linux/patches/3.16.4/linux-999.04-revert-xhci-Set-scatter-gather-limit.patch similarity index 100% rename from packages/linux/patches/3.16.3/linux-999.04-revert-xhci-Set-scatter-gather-limit.patch rename to packages/linux/patches/3.16.4/linux-999.04-revert-xhci-Set-scatter-gather-limit.patch