--- /dev/null
+From 2cfeed314207f808077edb2f1ba41ba1ebbe3e69 Mon Sep 17 00:00:00 2001
+From: Tony Lindgren <tony@atomide.com>
+Date: Wed, 18 Sep 2013 12:01:58 -0700
+Subject: ARM: OMAP4: Fix clock_get error for GPMC during boot
+
+From: Tony Lindgren <tony@atomide.com>
+
+commit 2cfeed314207f808077edb2f1ba41ba1ebbe3e69 upstream.
+
+Looks like we still have the legacy clock alias name for
+omap4 GPMC (General Purpose Memory Controller), so let's
+fix it for the device tree naming. There's no need to keep
+the legacy naming as omap4 is DT only nowadays.
+
+Without this fix we get the following error while booting:
+
+[ 0.440399] omap-gpmc 50000000.gpmc: error: clk_get
+
+Reported-by: Olof Johansson <olof@lixom.net>
+Signed-off-by: Tony Lindgren <tony@atomide.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/mach-omap2/cclock44xx_data.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/arm/mach-omap2/cclock44xx_data.c
++++ b/arch/arm/mach-omap2/cclock44xx_data.c
+@@ -1632,7 +1632,7 @@ static struct omap_clk omap44xx_clks[] =
+ CLK(NULL, "auxclk5_src_ck", &auxclk5_src_ck),
+ CLK(NULL, "auxclk5_ck", &auxclk5_ck),
+ CLK(NULL, "auxclkreq5_ck", &auxclkreq5_ck),
+- CLK("omap-gpmc", "fck", &dummy_ck),
++ CLK("50000000.gpmc", "fck", &dummy_ck),
+ CLK("omap_i2c.1", "ick", &dummy_ck),
+ CLK("omap_i2c.2", "ick", &dummy_ck),
+ CLK("omap_i2c.3", "ick", &dummy_ck),
--- /dev/null
+From 6a391e7bf26c04a6df5f77290e1146941d210d49 Mon Sep 17 00:00:00 2001
+From: Rafał Miłecki <zajec5@gmail.com>
+Date: Sun, 15 Sep 2013 00:22:47 +0200
+Subject: bgmac: fix internal switch initialization
+
+From: Rafał Miłecki <zajec5@gmail.com>
+
+commit 6a391e7bf26c04a6df5f77290e1146941d210d49 upstream.
+
+Some devices (BCM4749, BCM5357, BCM53572) have internal switch that
+requires initialization. We already have code for this, but because
+of the typo in code it was never working. This resulted in network not
+working for some routers and possibility of soft-bricking them.
+
+Use correct bit for switch initialization and fix typo in the define.
+
+Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/ethernet/broadcom/bgmac.c | 2 +-
+ drivers/net/ethernet/broadcom/bgmac.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/ethernet/broadcom/bgmac.c
++++ b/drivers/net/ethernet/broadcom/bgmac.c
+@@ -908,7 +908,7 @@ static void bgmac_chip_reset(struct bgma
+ struct bcma_drv_cc *cc = &bgmac->core->bus->drv_cc;
+ u8 et_swtype = 0;
+ u8 sw_type = BGMAC_CHIPCTL_1_SW_TYPE_EPHY |
+- BGMAC_CHIPCTL_1_IF_TYPE_RMII;
++ BGMAC_CHIPCTL_1_IF_TYPE_MII;
+ char buf[2];
+
+ if (bcm47xx_nvram_getenv("et_swtype", buf, 1) > 0) {
+--- a/drivers/net/ethernet/broadcom/bgmac.h
++++ b/drivers/net/ethernet/broadcom/bgmac.h
+@@ -333,7 +333,7 @@
+
+ #define BGMAC_CHIPCTL_1_IF_TYPE_MASK 0x00000030
+ #define BGMAC_CHIPCTL_1_IF_TYPE_RMII 0x00000000
+-#define BGMAC_CHIPCTL_1_IF_TYPE_MI 0x00000010
++#define BGMAC_CHIPCTL_1_IF_TYPE_MII 0x00000010
+ #define BGMAC_CHIPCTL_1_IF_TYPE_RGMII 0x00000020
+ #define BGMAC_CHIPCTL_1_SW_TYPE_MASK 0x000000C0
+ #define BGMAC_CHIPCTL_1_SW_TYPE_EPHY 0x00000000
--- /dev/null
+From dfb1d61b0e9f9e2c542e9adc8d970689f4114ff6 Mon Sep 17 00:00:00 2001
+From: Miklos Szeredi <mszeredi@suse.cz>
+Date: Mon, 16 Sep 2013 14:51:59 +0200
+Subject: cifs: fix filp leak in cifs_atomic_open()
+
+From: Miklos Szeredi <mszeredi@suse.cz>
+
+commit dfb1d61b0e9f9e2c542e9adc8d970689f4114ff6 upstream.
+
+If an error occurs after having called finish_open() then fput() needs to
+be called on the already opened file.
+
+Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
+Cc: Steve French <sfrench@samba.org>
+Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/cifs/dir.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/fs/cifs/dir.c
++++ b/fs/cifs/dir.c
+@@ -499,6 +499,7 @@ cifs_atomic_open(struct inode *inode, st
+ if (server->ops->close)
+ server->ops->close(xid, tcon, &fid);
+ cifs_del_pending_open(&open);
++ fput(file);
+ rc = -ENOMEM;
+ }
+
--- /dev/null
+From 0092820407901a0b2c4e343e85f96bb7abfcded1 Mon Sep 17 00:00:00 2001
+From: Fabio Porcedda <fabio.porcedda@gmail.com>
+Date: Mon, 16 Sep 2013 11:47:50 +0200
+Subject: net: usb: cdc_ether: Use wwan interface for Telit modules
+
+From: Fabio Porcedda <fabio.porcedda@gmail.com>
+
+commit 0092820407901a0b2c4e343e85f96bb7abfcded1 upstream.
+
+Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com>
+Acked-by: Oliver Neukum <oliver@neukum.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/usb/cdc_ether.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/drivers/net/usb/cdc_ether.c
++++ b/drivers/net/usb/cdc_ether.c
+@@ -726,6 +726,11 @@ static const struct usb_device_id produc
+ .bInterfaceProtocol = USB_CDC_PROTO_NONE,
+ .driver_info = (unsigned long)&wwan_info,
+ }, {
++ /* Telit modules */
++ USB_VENDOR_AND_INTERFACE_INFO(0x1bc7, USB_CLASS_COMM,
++ USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
++ .driver_info = (kernel_ulong_t) &wwan_info,
++}, {
+ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ETHERNET,
+ USB_CDC_PROTO_NONE),
+ .driver_info = (unsigned long) &cdc_info,
--- /dev/null
+From 834145156bedadfb50121f0bc5e9d9f9f942bcca Mon Sep 17 00:00:00 2001
+From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
+Date: Sat, 14 Sep 2013 03:38:20 +0200
+Subject: PCI / ACPI / PM: Clear pme_poll for devices in D3cold on wakeup
+
+From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
+
+commit 834145156bedadfb50121f0bc5e9d9f9f942bcca upstream.
+
+Commit 448bd85 (PCI/PM: add PCIe runtime D3cold support) added a
+piece of code to pci_acpi_wake_dev() causing that function to behave
+in a special way for devices in D3cold (so that their configuration
+registers are not accessed before those devices are resumed).
+However, it didn't take the clearing of the pme_poll flag into
+account. That has to be done for all devices, even if they are in
+D3cold, or pci_pme_list_scan() will not know that wakeup has been
+signaled for the device and will poll its PME Status bit
+unnecessarily.
+
+Fix the problem by moving the clearing of the pme_poll flag in
+pci_acpi_wake_dev() before the code introduced by commit 448bd85.
+
+Reported-and-tested-by: David E. Box <david.e.box@intel.com>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Acked-by: Bjorn Helgaas <bhelgaas@google.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/pci/pci-acpi.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/pci/pci-acpi.c
++++ b/drivers/pci/pci-acpi.c
+@@ -47,6 +47,9 @@ static void pci_acpi_wake_dev(acpi_handl
+ if (event != ACPI_NOTIFY_DEVICE_WAKE || !pci_dev)
+ return;
+
++ if (pci_dev->pme_poll)
++ pci_dev->pme_poll = false;
++
+ if (pci_dev->current_state == PCI_D3cold) {
+ pci_wakeup_event(pci_dev);
+ pm_runtime_resume(&pci_dev->dev);
+@@ -57,9 +60,6 @@ static void pci_acpi_wake_dev(acpi_handl
+ if (pci_dev->pme_support)
+ pci_check_pme_status(pci_dev);
+
+- if (pci_dev->pme_poll)
+- pci_dev->pme_poll = false;
+-
+ pci_wakeup_event(pci_dev);
+ pm_runtime_resume(&pci_dev->dev);
+
--- /dev/null
+From f4e1a4d3ecbb9e42bdf8e7869ee8a4ebfa27fb20 Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Mon, 9 Sep 2013 12:37:37 +0200
+Subject: rt2800: change initialization sequence to fix system freeze
+
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+
+commit f4e1a4d3ecbb9e42bdf8e7869ee8a4ebfa27fb20 upstream.
+
+My commit
+
+commit c630ccf1a127578421a928489d51e99c05037054
+Author: Stanislaw Gruszka <stf_xl@wp.pl>
+Date: Sat Mar 16 19:19:46 2013 +0100
+
+ rt2800: rearrange bbp/rfcsr initialization
+
+make Maxim machine freeze when try to start wireless device.
+
+Initialization order and sending MCU_BOOT_SIGNAL request, changed in
+above commit, is important. Doing things incorrectly make PCIe bus
+problems, which can froze the machine.
+
+This patch change initialization sequence like vendor driver do:
+function NICInitializeAsic() from
+2011_1007_RT5390_RT5392_Linux_STA_V2.5.0.3_DPO (PCI devices) and
+DPO_RT5572_LinuxSTA_2.6.1.3_20121022 (according Mediatek, latest driver
+for RT8070/RT3070/RT3370/RT3572/RT5370/RT5372/RT5572 USB devices).
+It fixes freezes on Maxim system.
+
+Resolve:
+https://bugzilla.redhat.com/show_bug.cgi?id=1000679
+
+Reported-and-tested-by: Maxim Polyakov <polyakov@dexmalabs.com>
+Bisected-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/rt2x00/rt2800lib.c | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+--- a/drivers/net/wireless/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/rt2x00/rt2800lib.c
+@@ -5404,19 +5404,20 @@ int rt2800_enable_radio(struct rt2x00_de
+ rt2800_init_registers(rt2x00dev)))
+ return -EIO;
+
++ if (unlikely(rt2800_wait_bbp_rf_ready(rt2x00dev)))
++ return -EIO;
++
+ /*
+ * Send signal to firmware during boot time.
+ */
+ rt2800_register_write(rt2x00dev, H2M_BBP_AGENT, 0);
+ rt2800_register_write(rt2x00dev, H2M_MAILBOX_CSR, 0);
+- if (rt2x00_is_usb(rt2x00dev)) {
++ if (rt2x00_is_usb(rt2x00dev))
+ rt2800_register_write(rt2x00dev, H2M_INT_SRC, 0);
+- rt2800_mcu_request(rt2x00dev, MCU_BOOT_SIGNAL, 0, 0, 0);
+- }
++ rt2800_mcu_request(rt2x00dev, MCU_BOOT_SIGNAL, 0, 0, 0);
+ msleep(1);
+
+- if (unlikely(rt2800_wait_bbp_rf_ready(rt2x00dev) ||
+- rt2800_wait_bbp_ready(rt2x00dev)))
++ if (unlikely(rt2800_wait_bbp_ready(rt2x00dev)))
+ return -EIO;
+
+ rt2800_init_bbp(rt2x00dev);
--- /dev/null
+From 6e956da2027c767859128b9bfef085cf2a8e233b Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Mon, 26 Aug 2013 15:18:53 +0200
+Subject: rt2800: fix wrong TX power compensation
+
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+
+commit 6e956da2027c767859128b9bfef085cf2a8e233b upstream.
+
+We should not do temperature compensation on devices without
+EXTERNAL_TX_ALC bit set (called DynamicTxAgcControl on vendor driver).
+Such devices can have totally bogus TSSI parameters on the EEPROM,
+but still threaded by us as valid and result doing wrong TX power
+calculations.
+
+This fix inability to connect to AP on slightly longer distance on
+some Ralink chips/devices.
+
+Reported-and-tested-by: Fabien ADAM <id2ndr@crocobox.org>
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/rt2x00/rt2800lib.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/drivers/net/wireless/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/rt2x00/rt2800lib.c
+@@ -2790,6 +2790,13 @@ static int rt2800_get_gain_calibration_d
+ int i;
+
+ /*
++ * First check if temperature compensation is supported.
++ */
++ rt2x00_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1, &eeprom);
++ if (!rt2x00_get_field16(eeprom, EEPROM_NIC_CONF1_EXTERNAL_TX_ALC))
++ return 0;
++
++ /*
+ * Read TSSI boundaries for temperature compensation from
+ * the EEPROM.
+ *
--- /dev/null
+From d02433d15566f542e42e3c469dfade0de332dc7b Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Mon, 8 Jul 2013 16:08:35 +0200
+Subject: rt2x00: rt2800usb: add USB device ID for Linksys AE3000
+
+From: Gabor Juhos <juhosg@openwrt.org>
+
+commit d02433d15566f542e42e3c469dfade0de332dc7b upstream.
+
+The Linksys AE3000 device is based on the RT3573
+chipset. The support for this chipset is available
+already, and the AE3000 device works with the driver.
+
+Only managed mode works correctly at the moment,
+for AP mode additional changes are needed in the
+driver.
+
+Also add a new RT2800USB_RT3573 Kconfig option and
+only enable support for RT3573 based devices if
+that is enabled.
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>
+Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/rt2x00/Kconfig | 6 ++++++
+ drivers/net/wireless/rt2x00/rt2800usb.c | 4 ++++
+ 2 files changed, 10 insertions(+)
+
+--- a/drivers/net/wireless/rt2x00/Kconfig
++++ b/drivers/net/wireless/rt2x00/Kconfig
+@@ -166,6 +166,12 @@ config RT2800USB_RT35XX
+ rt2800usb driver.
+ Supported chips: RT3572
+
++config RT2800USB_RT3573
++ bool "rt2800usb - Include support for rt3573 devices (EXPERIMENTAL)"
++ ---help---
++ This enables support for RT3573 chipset based wireless USB devices
++ in the rt2800usb driver.
++
+ config RT2800USB_RT53XX
+ bool "rt2800usb - Include support for rt53xx devices (EXPERIMENTAL)"
+ ---help---
+--- a/drivers/net/wireless/rt2x00/rt2800usb.c
++++ b/drivers/net/wireless/rt2x00/rt2800usb.c
+@@ -1194,6 +1194,10 @@ static struct usb_device_id rt2800usb_de
+ /* Zinwell */
+ { USB_DEVICE(0x5a57, 0x0284) },
+ #endif
++#ifdef CONFIG_RT2800USB_RT3573
++ /* Linksys */
++ { USB_DEVICE(0x13b1, 0x003b) },
++#endif
+ #ifdef CONFIG_RT2800USB_RT53XX
+ /* Arcadyan */
+ { USB_DEVICE(0x043e, 0x7a12) },
--- /dev/null
+rt2x00-rt2800usb-add-usb-device-id-for-linksys-ae3000.patch
+wireless-rt2x00-rt2800usb-add-rt3573-devices.patch
+pci-acpi-pm-clear-pme_poll-for-devices-in-d3cold-on-wakeup.patch
+arm-omap4-fix-clock_get-error-for-gpmc-during-boot.patch
+net-usb-cdc_ether-use-wwan-interface-for-telit-modules.patch
+cifs-fix-filp-leak-in-cifs_atomic_open.patch
+bgmac-fix-internal-switch-initialization.patch
+rt2800-change-initialization-sequence-to-fix-system-freeze.patch
+rt2800-fix-wrong-tx-power-compensation.patch
--- /dev/null
+From 637065267eab4817c0b06cbf3c7fc80842acab99 Mon Sep 17 00:00:00 2001
+From: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Date: Tue, 23 Jul 2013 14:55:15 +0200
+Subject: wireless: rt2x00: rt2800usb: add RT3573 devices
+
+From: Xose Vazquez Perez <xose.vazquez@gmail.com>
+
+commit 637065267eab4817c0b06cbf3c7fc80842acab99 upstream.
+
+taken from Ralink linux and windows drivers:
+
+0x1b75, 0x7733 AirLive 450Mbps Wireless-N Dual Band USB Adapter
+0x0b05, 0x17bc ASUS USB-N66 450Mbps Dual Band USB Adapter
+0x0b05, 0x17ad ASUS USB-N66 Dual Band N Network Adapter
+0x050d, 0x1103 Belkin Wireless Adapter
+0x148f, 0xf301 Cameo Ralink3573 3x3 single band USB dongle
+0x7392, 0x7733 Edimax
+0x0e66, 0x0020 Hawking HD45U Dual Band USB Wireless-N Adapter
+0x0e66, 0x0021 Hawking HD45U Dual Band Wls-450N Adapter
+0x04bb, 0x094e I-O DATA WN-AG450U Wireless LAN Adapter
+0x0789, 0x016b Logitec LAN-W450AN/U2
+0x0846, 0x9012 NETGEAR WNDA4100 N900 Wireless Dual Band USB Adapter
+0x0846, 0x9019 NETGEAR WNDA4200D Wireless Dual Band USB Adapter
+0x2019, 0xed19 Planex GW-USDual450
+0x148f, 0x3573 Ralink 802.11n USB Wireless LAN Card
+0x0df6, 0x0067 Sitecom Wireless Dualband Network Adapter N750 X6
+0x0df6, 0x006a Sitecom Wireless Dualband Network Adapter N900 X7
+0x0586, 0x3421 ZyXEL Dual-Band Wireless N450 USB Adapter
+
+Cc: Ivo van Doorn <IvDoorn@gmail.com>
+Cc: Gertjan van Wingerde <gwingerde@gmail.com>
+Cc: Helmut Schaa <helmut.schaa@googlemail.com>
+Cc: John W. Linville <linville@tuxdriver.com>
+Cc: John Vert <johnv@valvesoftware.com>
+Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/rt2x00/rt2800usb.c | 30 ++++++++++++++++++++++++++++++
+ 1 file changed, 30 insertions(+)
+
+--- a/drivers/net/wireless/rt2x00/rt2800usb.c
++++ b/drivers/net/wireless/rt2x00/rt2800usb.c
+@@ -1195,8 +1195,38 @@ static struct usb_device_id rt2800usb_de
+ { USB_DEVICE(0x5a57, 0x0284) },
+ #endif
+ #ifdef CONFIG_RT2800USB_RT3573
++ /* AirLive */
++ { USB_DEVICE(0x1b75, 0x7733) },
++ /* ASUS */
++ { USB_DEVICE(0x0b05, 0x17bc) },
++ { USB_DEVICE(0x0b05, 0x17ad) },
++ /* Belkin */
++ { USB_DEVICE(0x050d, 0x1103) },
++ /* Cameo */
++ { USB_DEVICE(0x148f, 0xf301) },
++ /* Edimax */
++ { USB_DEVICE(0x7392, 0x7733) },
++ /* Hawking */
++ { USB_DEVICE(0x0e66, 0x0020) },
++ { USB_DEVICE(0x0e66, 0x0021) },
++ /* I-O DATA */
++ { USB_DEVICE(0x04bb, 0x094e) },
+ /* Linksys */
+ { USB_DEVICE(0x13b1, 0x003b) },
++ /* Logitec */
++ { USB_DEVICE(0x0789, 0x016b) },
++ /* NETGEAR */
++ { USB_DEVICE(0x0846, 0x9012) },
++ { USB_DEVICE(0x0846, 0x9019) },
++ /* Planex */
++ { USB_DEVICE(0x2019, 0xed19) },
++ /* Ralink */
++ { USB_DEVICE(0x148f, 0x3573) },
++ /* Sitecom */
++ { USB_DEVICE(0x0df6, 0x0067) },
++ { USB_DEVICE(0x0df6, 0x006a) },
++ /* ZyXEL */
++ { USB_DEVICE(0x0586, 0x3421) },
+ #endif
+ #ifdef CONFIG_RT2800USB_RT53XX
+ /* Arcadyan */