--- /dev/null
+From 5c78dfe87ea04b501ee000a7f03b9432ac9d008c Mon Sep 17 00:00:00 2001
+From: Fabio Estevam <fabio.estevam@freescale.com>
+Date: Thu, 4 Jul 2013 20:01:03 -0300
+Subject: ASoC: sglt5000: Fix SGTL5000_PLL_FRAC_DIV_MASK
+
+From: Fabio Estevam <fabio.estevam@freescale.com>
+
+commit 5c78dfe87ea04b501ee000a7f03b9432ac9d008c upstream.
+
+SGTL5000_PLL_FRAC_DIV_MASK is used to mask bits 0-10 (11 bits in total) of
+register CHIP_PLL_CTRL, so fix the mask to accomodate all this bit range.
+
+Reported-by: Oskar Schirmer <oskar@scara.com>
+Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
+Signed-off-by: Mark Brown <broonie@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/codecs/sgtl5000.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/soc/codecs/sgtl5000.h
++++ b/sound/soc/codecs/sgtl5000.h
+@@ -347,7 +347,7 @@
+ #define SGTL5000_PLL_INT_DIV_MASK 0xf800
+ #define SGTL5000_PLL_INT_DIV_SHIFT 11
+ #define SGTL5000_PLL_INT_DIV_WIDTH 5
+-#define SGTL5000_PLL_FRAC_DIV_MASK 0x0700
++#define SGTL5000_PLL_FRAC_DIV_MASK 0x07ff
+ #define SGTL5000_PLL_FRAC_DIV_SHIFT 0
+ #define SGTL5000_PLL_FRAC_DIV_WIDTH 11
+
--- /dev/null
+From c7e8695bfa0611b39493a9dfe8bab9f63f9809bd Mon Sep 17 00:00:00 2001
+From: Seth Heasley <seth.heasley@intel.com>
+Date: Wed, 19 Jun 2013 16:25:37 -0700
+Subject: ata_piix: IDE-mode SATA patch for Intel Coleto Creek DeviceIDs
+
+From: Seth Heasley <seth.heasley@intel.com>
+
+commit c7e8695bfa0611b39493a9dfe8bab9f63f9809bd upstream.
+
+This patch adds the IDE-mode SATA DeviceIDs for the Intel Coleto Creek PCH.
+
+Signed-off-by: Seth Heasley <seth.heasley@intel.com>
+Signed-off-by: Tejun Heo <tj@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/ata/ata_piix.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/ata/ata_piix.c
++++ b/drivers/ata/ata_piix.c
+@@ -352,6 +352,8 @@ static const struct pci_device_id piix_p
+ /* SATA Controller IDE (BayTrail) */
+ { 0x8086, 0x0F20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata_byt },
+ { 0x8086, 0x0F21, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata_byt },
++ /* SATA Controller IDE (Coleto Creek) */
++ { 0x8086, 0x23a6, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
+
+ { } /* terminate list */
+ };
--- /dev/null
+From d3bcb7b24bbf09fde8405770e676fe0c11c79662 Mon Sep 17 00:00:00 2001
+From: Sujith Manoharan <c_manoha@qca.qualcomm.com>
+Date: Mon, 10 Jun 2013 13:49:40 +0530
+Subject: ath9k: Do not assign noise for NULL caldata
+
+From: Sujith Manoharan <c_manoha@qca.qualcomm.com>
+
+commit d3bcb7b24bbf09fde8405770e676fe0c11c79662 upstream.
+
+ah->noise is maintained globally and not per-channel. This
+is updated in the reset() routine after the NF history has been
+filled for the *current channel*, just before switching to
+the new channel. There is no need to do it inside getnf(), since
+ah->noise must contain a value for the new channel.
+
+Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/ath/ath9k/calib.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/drivers/net/wireless/ath/ath9k/calib.c
++++ b/drivers/net/wireless/ath/ath9k/calib.c
+@@ -389,7 +389,6 @@ bool ath9k_hw_getnf(struct ath_hw *ah, s
+
+ if (!caldata) {
+ chan->noisefloor = nf;
+- ah->noise = ath9k_hw_getchan_noise(ah, chan);
+ return false;
+ }
+
--- /dev/null
+From e643692138cfa33528f054b071ba2583509bb217 Mon Sep 17 00:00:00 2001
+From: Jan Kara <jack@suse.cz>
+Date: Wed, 20 Mar 2013 14:39:05 +0100
+Subject: ext3: fix data=journal fast mount/umount hang
+
+From: Jan Kara <jack@suse.cz>
+
+commit e643692138cfa33528f054b071ba2583509bb217 upstream.
+
+In data=journal mode, if we unmount the file system before a
+transaction has a chance to complete, when the journal inode is being
+evicted, we can end up calling into log_wait_commit() for the
+last transaction, after the journalling machinery has been shut down.
+That triggers the WARN_ONCE in __log_start_commit().
+
+Arguably we should adjust ext3_should_journal_data() to return FALSE
+for the journal inode, but the only place it matters is
+ext3_evict_inode(), and so it's to save a bit of CPU time, and to make
+the patch much more obviously correct by inspection(tm), we'll fix it
+by explicitly not trying to waiting for a journal commit when we are
+evicting the journal inode, since it's guaranteed to never succeed in
+this case.
+
+This can be easily replicated via:
+
+ mount -t ext3 -o data=journal /dev/vdb /vdb ; umount /vdb
+
+This is a port of ext4 fix from Ted Ts'o.
+
+Signed-off-by: Jan Kara <jack@suse.cz>
+Cc: Benjamin LaHaise <bcrl@kvack.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/ext3/inode.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/fs/ext3/inode.c
++++ b/fs/ext3/inode.c
+@@ -218,7 +218,8 @@ void ext3_evict_inode (struct inode *ino
+ */
+ if (inode->i_nlink && ext3_should_journal_data(inode) &&
+ EXT3_SB(inode->i_sb)->s_journal &&
+- (S_ISLNK(inode->i_mode) || S_ISREG(inode->i_mode))) {
++ (S_ISLNK(inode->i_mode) || S_ISREG(inode->i_mode)) &&
++ inode->i_ino != EXT3_JOURNAL_INO) {
+ tid_t commit_tid = atomic_read(&ei->i_datasync_tid);
+ journal_t *journal = EXT3_SB(inode->i_sb)->s_journal;
+
--- /dev/null
+From 7a87718d92760fc688628ad6a430643dafa16f1f Mon Sep 17 00:00:00 2001
+From: Tejun Heo <tj@kernel.org>
+Date: Tue, 11 Jun 2013 00:11:36 -0700
+Subject: libata: skip SRST for all SIMG [34]7x port-multipliers
+
+From: Tejun Heo <tj@kernel.org>
+
+commit 7a87718d92760fc688628ad6a430643dafa16f1f upstream.
+
+For some reason, a lot of port-multipliers have issues with softreset.
+SIMG [34]7x series port-multipliers have been quite erratic in this
+regard. I recall that it was better with some firmware revisions and
+the current list of quirks worked fine for a while. I think it got
+worse with later firmwares or maybe my test coverage wasn't good
+enough. Anyways, HPA is reporting that his 3726 setup suffers SRST
+failures and then the PMP gets confused and fails to probe the last
+port.
+
+The hope was that we try to stick to the standard as much as possible
+and soonish the PMPs and their firmwares will improve in quality, so
+the quirk list was kept to minimum. Well, it seems like that's never
+gonna happen.
+
+Let's set NO_SRST for all [34]7x PMPs so that whatever remaining
+userbase of the device suffer the least. Maybe we should do the same
+for 57xx's but unfortunately I don't have any device left to test and
+I'm not even sure 57xx's have ever been made widely available, so
+let's leave those alone for now.
+
+Signed-off-by: Tejun Heo <tj@kernel.org>
+Reported-by: "H. Peter Anvin" <hpa@zytor.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/ata/libata-pmp.c | 33 +++++++++++++++++----------------
+ 1 file changed, 17 insertions(+), 16 deletions(-)
+
+--- a/drivers/ata/libata-pmp.c
++++ b/drivers/ata/libata-pmp.c
+@@ -389,9 +389,13 @@ static void sata_pmp_quirks(struct ata_p
+ /* link reports offline after LPM */
+ link->flags |= ATA_LFLAG_NO_LPM;
+
+- /* Class code report is unreliable. */
++ /*
++ * Class code report is unreliable and SRST times
++ * out under certain configurations.
++ */
+ if (link->pmp < 5)
+- link->flags |= ATA_LFLAG_ASSUME_ATA;
++ link->flags |= ATA_LFLAG_NO_SRST |
++ ATA_LFLAG_ASSUME_ATA;
+
+ /* port 5 is for SEMB device and it doesn't like SRST */
+ if (link->pmp == 5)
+@@ -399,20 +403,17 @@ static void sata_pmp_quirks(struct ata_p
+ ATA_LFLAG_ASSUME_SEMB;
+ }
+ } else if (vendor == 0x1095 && devid == 0x4723) {
+- /* sil4723 quirks */
+- ata_for_each_link(link, ap, EDGE) {
+- /* link reports offline after LPM */
+- link->flags |= ATA_LFLAG_NO_LPM;
+-
+- /* class code report is unreliable */
+- if (link->pmp < 2)
+- link->flags |= ATA_LFLAG_ASSUME_ATA;
+-
+- /* the config device at port 2 locks up on SRST */
+- if (link->pmp == 2)
+- link->flags |= ATA_LFLAG_NO_SRST |
+- ATA_LFLAG_ASSUME_ATA;
+- }
++ /*
++ * sil4723 quirks
++ *
++ * Link reports offline after LPM. Class code report is
++ * unreliable. SIMG PMPs never got SRST reliable and the
++ * config device at port 2 locks up on SRST.
++ */
++ ata_for_each_link(link, ap, EDGE)
++ link->flags |= ATA_LFLAG_NO_LPM |
++ ATA_LFLAG_NO_SRST |
++ ATA_LFLAG_ASSUME_ATA;
+ } else if (vendor == 0x1095 && devid == 0x4726) {
+ /* sil4726 quirks */
+ ata_for_each_link(link, ap, EDGE) {
--- /dev/null
+From 0a6f3a8ebaf13407523c2c7d575b4ca2debd23ba Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Sat, 22 Jun 2013 13:13:25 +0200
+Subject: rt2x00: read 5GHz TX power values from the correct offset
+
+From: Gabor Juhos <juhosg@openwrt.org>
+
+commit 0a6f3a8ebaf13407523c2c7d575b4ca2debd23ba upstream.
+
+The current code uses the same index value both
+for the channel information array and for the TX
+power table. The index starts from 14, however the
+index of the TX power table must start from zero.
+
+Fix it, in order to get the correct TX power value
+for a given channel.
+
+The changes in rt61pci.c and rt73usb.c are compile
+tested only.
+
+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/rt2800lib.c | 4 ++--
+ drivers/net/wireless/rt2x00/rt61pci.c | 3 ++-
+ drivers/net/wireless/rt2x00/rt73usb.c | 3 ++-
+ 3 files changed, 6 insertions(+), 4 deletions(-)
+
+--- a/drivers/net/wireless/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/rt2x00/rt2800lib.c
+@@ -4627,8 +4627,8 @@ int rt2800_probe_hw_mode(struct rt2x00_d
+ default_power2 = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_A2);
+
+ for (i = 14; i < spec->num_channels; i++) {
+- info[i].default_power1 = default_power1[i];
+- info[i].default_power2 = default_power2[i];
++ info[i].default_power1 = default_power1[i - 14];
++ info[i].default_power2 = default_power2[i - 14];
+ }
+ }
+
+--- a/drivers/net/wireless/rt2x00/rt61pci.c
++++ b/drivers/net/wireless/rt2x00/rt61pci.c
+@@ -2822,7 +2822,8 @@ static int rt61pci_probe_hw_mode(struct
+ tx_power = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_A_START);
+ for (i = 14; i < spec->num_channels; i++) {
+ info[i].max_power = MAX_TXPOWER;
+- info[i].default_power1 = TXPOWER_FROM_DEV(tx_power[i]);
++ info[i].default_power1 =
++ TXPOWER_FROM_DEV(tx_power[i - 14]);
+ }
+ }
+
+--- a/drivers/net/wireless/rt2x00/rt73usb.c
++++ b/drivers/net/wireless/rt2x00/rt73usb.c
+@@ -2167,7 +2167,8 @@ static int rt73usb_probe_hw_mode(struct
+ tx_power = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_A_START);
+ for (i = 14; i < spec->num_channels; i++) {
+ info[i].max_power = MAX_TXPOWER;
+- info[i].default_power1 = TXPOWER_FROM_DEV(tx_power[i]);
++ info[i].default_power1 =
++ TXPOWER_FROM_DEV(tx_power[i - 14]);
+ }
+ }
+
--- /dev/null
+ext3-fix-data-journal-fast-mount-umount-hang.patch
+libata-skip-srst-for-all-simg-7x-port-multipliers.patch
+ata_piix-ide-mode-sata-patch-for-intel-coleto-creek-deviceids.patch
+asoc-sglt5000-fix-sgtl5000_pll_frac_div_mask.patch
+tick-prevent-uncontrolled-switch-to-oneshot-mode.patch
+rt2x00-read-5ghz-tx-power-values-from-the-correct-offset.patch
+ath9k-do-not-assign-noise-for-null-caldata.patch
--- /dev/null
+From 1f73a9806bdd07a5106409bbcab3884078bd34fe Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Mon, 1 Jul 2013 22:14:10 +0200
+Subject: tick: Prevent uncontrolled switch to oneshot mode
+
+From: Thomas Gleixner <tglx@linutronix.de>
+
+commit 1f73a9806bdd07a5106409bbcab3884078bd34fe upstream.
+
+When the system switches from periodic to oneshot mode, the broadcast
+logic causes a possibility that a CPU which has not yet switched to
+oneshot mode puts its own clock event device into oneshot mode without
+updating the state and the timer handler.
+
+CPU0 CPU1
+ per cpu tickdev is in periodic mode
+ and switched to broadcast
+
+Switch to oneshot mode
+ tick_broadcast_switch_to_oneshot()
+ cpumask_copy(tick_oneshot_broacast_mask,
+ tick_broadcast_mask);
+
+ broadcast device mode = oneshot
+
+ Timer interrupt
+
+ irq_enter()
+ tick_check_oneshot_broadcast()
+ dev->set_mode(ONESHOT);
+
+ tick_handle_periodic()
+ if (dev->mode == ONESHOT)
+ dev->next_event += period;
+ FAIL.
+
+We fail, because dev->next_event contains KTIME_MAX, if the device was
+in periodic mode before the uncontrolled switch to oneshot happened.
+
+We must copy the broadcast bits over to the oneshot mask, because
+otherwise a CPU which relies on the broadcast would not been woken up
+anymore after the broadcast device switched to oneshot mode.
+
+So we need to verify in tick_check_oneshot_broadcast() whether the CPU
+has already switched to oneshot mode. If not, leave the device
+untouched and let the CPU switch controlled into oneshot mode.
+
+This is a long standing bug, which was never noticed, because the main
+user of the broadcast x86 cannot run into that scenario, AFAICT. The
+nonarchitected timer mess of ARM creates a gazillion of differently
+broken abominations which trigger the shortcomings of that broadcast
+code, which better had never been necessary in the first place.
+
+Reported-and-tested-by: Stehle Vincent-B46079 <B46079@freescale.com>
+Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
+Cc: John Stultz <john.stultz@linaro.org>,
+Cc: Mark Rutland <mark.rutland@arm.com>
+Link: http://lkml.kernel.org/r/alpine.DEB.2.02.1307012153060.4013@ionos.tec.linutronix.de
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ kernel/time/tick-broadcast.c | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+--- a/kernel/time/tick-broadcast.c
++++ b/kernel/time/tick-broadcast.c
+@@ -400,7 +400,15 @@ void tick_check_oneshot_broadcast(int cp
+ if (cpumask_test_cpu(cpu, to_cpumask(tick_broadcast_oneshot_mask))) {
+ struct tick_device *td = &per_cpu(tick_cpu_device, cpu);
+
+- clockevents_set_mode(td->evtdev, CLOCK_EVT_MODE_ONESHOT);
++ /*
++ * We might be in the middle of switching over from
++ * periodic to oneshot. If the CPU has not yet
++ * switched over, leave the device alone.
++ */
++ if (td->mode == TICKDEV_MODE_ONESHOT) {
++ clockevents_set_mode(td->evtdev,
++ CLOCK_EVT_MODE_ONESHOT);
++ }
+ }
+ }
+