--- /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
+@@ -491,6 +491,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
+@@ -709,6 +709,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 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
+@@ -2767,6 +2767,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.
+ *
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
+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-fix-wrong-tx-power-compensation.patch