--- /dev/null
+From 3b4467522630b7ea0d65a691007ef0a93d471f8f Mon Sep 17 00:00:00 2001
+From: Hui Wang <hui.wang@canonical.com>
+Date: Tue, 4 Mar 2014 16:20:18 +0800
+Subject: ALSA: hda - add automute fix for another dell AIO model
+
+From: Hui Wang <hui.wang@canonical.com>
+
+commit 3b4467522630b7ea0d65a691007ef0a93d471f8f upstream.
+
+When plugging a headphone or headset, lots of noise is heard from
+internal speaker, after changing the automute via amp instead of
+pinctl, the noise disappears.
+
+BugLink: https://bugs.launchpad.net/bugs/1268468
+Cc: David Henningsson <david.henningsson@canonical.com>
+Signed-off-by: Hui Wang <hui.wang@canonical.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/patch_realtek.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -5103,7 +5103,7 @@ static const struct snd_pci_quirk alc662
+ SND_PCI_QUIRK(0x1028, 0x0625, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
+ SND_PCI_QUIRK(0x1028, 0x0626, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
+ SND_PCI_QUIRK(0x1028, 0x0628, "Dell", ALC668_FIXUP_AUTO_MUTE),
+- SND_PCI_QUIRK(0x1028, 0x064e, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
++ SND_PCI_QUIRK(0x1028, 0x064e, "Dell", ALC668_FIXUP_AUTO_MUTE),
+ SND_PCI_QUIRK(0x103c, 0x1632, "HP RP5800", ALC662_FIXUP_HP_RP5800),
+ SND_PCI_QUIRK(0x1043, 0x11cd, "Asus N550", ALC662_FIXUP_BASS_1A_CHMAP),
+ SND_PCI_QUIRK(0x1043, 0x1477, "ASUS N56VZ", ALC662_FIXUP_BASS_CHMAP),
--- /dev/null
+From c5eda4c1bf6214332c46fb2f4e7c42a85e5e5643 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Wed, 5 Mar 2014 11:52:24 +0100
+Subject: ALSA: hda - Add missing loopback merge path for AD1884/1984 codecs
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit c5eda4c1bf6214332c46fb2f4e7c42a85e5e5643 upstream.
+
+The mixer widget (NID 0x20) of AD1884 and AD1984 codecs isn't
+connected directly to the actual I/O paths but only via another mixer
+widget (NID 0x21). We need a similar fix as we did for AD1882.
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/patch_analog.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/pci/hda/patch_analog.c
++++ b/sound/pci/hda/patch_analog.c
+@@ -1091,6 +1091,7 @@ static int patch_ad1884(struct hda_codec
+ spec = codec->spec;
+
+ spec->gen.mixer_nid = 0x20;
++ spec->gen.mixer_merge_nid = 0x21;
+ spec->gen.beep_nid = 0x10;
+ set_beep_amp(spec, 0x10, 0, HDA_OUTPUT);
+
--- /dev/null
+From a6b92b6650d010d58b6e6fe42c6271266e0b1134 Mon Sep 17 00:00:00 2001
+From: Marius Knaust <marius.knaust@gmail.com>
+Date: Mon, 3 Mar 2014 01:48:58 +0100
+Subject: ALSA: hda - Added inverted digital-mic handling for Acer TravelMate 8371
+
+From: Marius Knaust <marius.knaust@gmail.com>
+
+commit a6b92b6650d010d58b6e6fe42c6271266e0b1134 upstream.
+
+Signed-off-by: Marius Knaust <marius.knaust@gmail.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/patch_realtek.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -4242,6 +4242,7 @@ static const struct hda_fixup alc269_fix
+ };
+
+ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
++ SND_PCI_QUIRK(0x1025, 0x0283, "Acer TravelMate 8371", ALC269_FIXUP_INV_DMIC),
+ SND_PCI_QUIRK(0x1025, 0x029b, "Acer 1810TZ", ALC269_FIXUP_INV_DMIC),
+ SND_PCI_QUIRK(0x1025, 0x0349, "Acer AOD260", ALC269_FIXUP_INV_DMIC),
+ SND_PCI_QUIRK(0x1025, 0x047c, "Acer AC700", ALC269_FIXUP_ACER_AC700),
--- /dev/null
+From 9b745ab897199c2af9f21ca9681ef86d5b971002 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Fri, 7 Mar 2014 08:37:19 +0100
+Subject: ALSA: hda - Fix loud click noise with IdeaPad 410Y
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit 9b745ab897199c2af9f21ca9681ef86d5b971002 upstream.
+
+Lenovo IdeaPad 410Y with ALC282 codec makes loud click noises at boot
+and shutdown. Also, it wrongly misdetects the acpi_thinkpad hook.
+This patch adds a device-specific fixup for disabling the shutup
+callback that is the cause of the click noise and also avoiding the
+thinpad_helper calls.
+
+Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=71511
+Reported-and-tested-by: Guilherme Amadio <guilherme.amadio@gmail.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/patch_realtek.c | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -3559,6 +3559,19 @@ static void alc_fixup_auto_mute_via_amp(
+ }
+ }
+
++static void alc_no_shutup(struct hda_codec *codec)
++{
++}
++
++static void alc_fixup_no_shutup(struct hda_codec *codec,
++ const struct hda_fixup *fix, int action)
++{
++ if (action == HDA_FIXUP_ACT_PRE_PROBE) {
++ struct alc_spec *spec = codec->spec;
++ spec->shutup = alc_no_shutup;
++ }
++}
++
+ static void alc_fixup_headset_mode_alc668(struct hda_codec *codec,
+ const struct hda_fixup *fix, int action)
+ {
+@@ -3870,6 +3883,7 @@ enum {
+ ALC269_FIXUP_HP_GPIO_LED,
+ ALC269_FIXUP_INV_DMIC,
+ ALC269_FIXUP_LENOVO_DOCK,
++ ALC269_FIXUP_NO_SHUTUP,
+ ALC286_FIXUP_SONY_MIC_NO_PRESENCE,
+ ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT,
+ ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
+@@ -4042,6 +4056,10 @@ static const struct hda_fixup alc269_fix
+ .type = HDA_FIXUP_FUNC,
+ .v.func = alc_fixup_inv_dmic_0x12,
+ },
++ [ALC269_FIXUP_NO_SHUTUP] = {
++ .type = HDA_FIXUP_FUNC,
++ .v.func = alc_fixup_no_shutup,
++ },
+ [ALC269_FIXUP_LENOVO_DOCK] = {
+ .type = HDA_FIXUP_PINS,
+ .v.pins = (const struct hda_pintbl[]) {
+@@ -4344,6 +4362,7 @@ static const struct snd_pci_quirk alc269
+ SND_PCI_QUIRK(0x17aa, 0x2212, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
+ SND_PCI_QUIRK(0x17aa, 0x2214, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
+ SND_PCI_QUIRK(0x17aa, 0x2215, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
++ SND_PCI_QUIRK(0x17aa, 0x3978, "IdeaPad Y410P", ALC269_FIXUP_NO_SHUTUP),
+ SND_PCI_QUIRK(0x17aa, 0x5013, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
+ SND_PCI_QUIRK(0x17aa, 0x501a, "Thinkpad", ALC283_FIXUP_INT_MIC),
+ SND_PCI_QUIRK(0x17aa, 0x5026, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
--- /dev/null
+From f3e9b59cb948e2328bc06635ad39572d5b7b4791 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Wed, 5 Mar 2014 12:00:29 +0100
+Subject: ALSA: hda - Use analog beep for Thinkpads with AD1984 codecs
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit f3e9b59cb948e2328bc06635ad39572d5b7b4791 upstream.
+
+For making the driver behavior compatible with the earlier kernels,
+use the analog beep in the loopback path instead of the digital beep.
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/patch_analog.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/sound/pci/hda/patch_analog.c
++++ b/sound/pci/hda/patch_analog.c
+@@ -1025,6 +1025,9 @@ static void ad1884_fixup_thinkpad(struct
+ spec->gen.keep_eapd_on = 1;
+ spec->gen.vmaster_mute.hook = ad_vmaster_eapd_hook;
+ spec->eapd_nid = 0x12;
++ /* Analog PC Beeper - allow firmware/ACPI beeps */
++ spec->beep_amp = HDA_COMPOSE_AMP_VAL(0x20, 3, 3, HDA_INPUT);
++ spec->gen.beep_nid = 0; /* no digital beep */
+ }
+ }
+
--- /dev/null
+From 3dd77654fb1d7f68b9739f3039bad8dbbc0739f8 Mon Sep 17 00:00:00 2001
+From: Roman Volkov <v1ron@mail.ru>
+Date: Fri, 24 Jan 2014 16:18:14 +0400
+Subject: ALSA: oxygen: Xonar DG(X): capture from I2S channel 1, not 2
+
+From: Roman Volkov <v1ron@mail.ru>
+
+commit 3dd77654fb1d7f68b9739f3039bad8dbbc0739f8 upstream.
+
+Actually CS4245 connected to the I2S channel 1 for
+capture, not channel 2. Otherwise capturing and
+playback does not work for CS4245.
+
+Signed-off-by: Roman Volkov <v1ron@mail.ru>
+Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/oxygen/xonar_dg.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/pci/oxygen/xonar_dg.c
++++ b/sound/pci/oxygen/xonar_dg.c
+@@ -596,7 +596,7 @@ struct oxygen_model model_xonar_dg = {
+ .model_data_size = sizeof(struct dg),
+ .device_config = PLAYBACK_0_TO_I2S |
+ PLAYBACK_1_TO_SPDIF |
+- CAPTURE_0_FROM_I2S_2 |
++ CAPTURE_0_FROM_I2S_1 |
+ CAPTURE_1_FROM_SPDIF,
+ .dac_channels_pcm = 6,
+ .dac_channels_mixer = 0,
--- /dev/null
+From e805ca8b0a9b6c91099c0eaa4b160a1196a4ae25 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Wed, 5 Mar 2014 12:34:39 +0100
+Subject: ALSA: usb-audio: Add quirk for Logitech Webcam C500
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit e805ca8b0a9b6c91099c0eaa4b160a1196a4ae25 upstream.
+
+Logitech C500 (046d:0807) needs the same workaround like other
+Logitech Webcams.
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/usb/mixer.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/usb/mixer.c
++++ b/sound/usb/mixer.c
+@@ -883,6 +883,7 @@ static void volume_control_quirks(struct
+ }
+ break;
+
++ case USB_ID(0x046d, 0x0807): /* Logitech Webcam C500 */
+ case USB_ID(0x046d, 0x0808):
+ case USB_ID(0x046d, 0x0809):
+ case USB_ID(0x046d, 0x081b): /* HD Webcam c310 */
--- /dev/null
+From 905a5117e79367b7e58ae046d12ca9961f048c89 Mon Sep 17 00:00:00 2001
+From: Chen-Yu Tsai <wens@csie.org>
+Date: Tue, 11 Feb 2014 00:22:37 +0800
+Subject: pinctrl: sunxi: use chained_irq_{enter, exit} for GIC compatibility
+
+From: Chen-Yu Tsai <wens@csie.org>
+
+commit 905a5117e79367b7e58ae046d12ca9961f048c89 upstream.
+
+On tha Allwinner A20 SoC, the external interrupts on the pin controller
+device are connected to the GIC. Without chained_irq_{enter, exit},
+external GPIO interrupts, such as used by mmc core card detect, cause
+the system to hang.
+
+This issue was first encountered during my attempt to get out-of-band
+interrupts for WiFi on the Cubietruck working. With David's new series
+of sunci-mci using mmc slot-gpio for (GPIO interrupt based) card
+detection, removing the SD card also causes my Cubietruck to hang. This
+problem should extend to all Allwinner A20 based boards.
+
+With this fix, the system no longer hangs when I remove or insert the
+SD card. /proc/interrupts show that the interrupt has correctly fired.
+However the system still does not detect card removal/insertion. I
+believe this is another unrelated issue.
+
+Signed-off-by: Chen-Yu Tsai <wens@csie.org>
+Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/pinctrl/pinctrl-sunxi.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/pinctrl/pinctrl-sunxi.c
++++ b/drivers/pinctrl/pinctrl-sunxi.c
+@@ -14,6 +14,7 @@
+ #include <linux/clk.h>
+ #include <linux/gpio.h>
+ #include <linux/irqdomain.h>
++#include <linux/irqchip/chained_irq.h>
+ #include <linux/module.h>
+ #include <linux/of.h>
+ #include <linux/of_address.h>
+@@ -665,6 +666,7 @@ static struct irq_chip sunxi_pinctrl_irq
+
+ static void sunxi_pinctrl_irq_handler(unsigned irq, struct irq_desc *desc)
+ {
++ struct irq_chip *chip = irq_get_chip(irq);
+ struct sunxi_pinctrl *pctl = irq_get_handler_data(irq);
+ const unsigned long reg = readl(pctl->membase + IRQ_STATUS_REG);
+
+@@ -674,10 +676,12 @@ static void sunxi_pinctrl_irq_handler(un
+ if (reg) {
+ int irqoffset;
+
++ chained_irq_enter(chip, desc);
+ for_each_set_bit(irqoffset, ®, SUNXI_IRQ_NUMBER) {
+ int pin_irq = irq_find_mapping(pctl->domain, irqoffset);
+ generic_handle_irq(pin_irq);
+ }
++ chained_irq_exit(chip, desc);
+ }
+ }
+
--- /dev/null
+From a5b2cf5b1af424ee3dd9e3ce6d5cea18cb927e67 Mon Sep 17 00:00:00 2001
+From: Anton Blanchard <anton@samba.org>
+Date: Tue, 4 Mar 2014 08:31:24 +1100
+Subject: powerpc: Align p_dyn, p_rela and p_st symbols
+
+From: Anton Blanchard <anton@samba.org>
+
+commit a5b2cf5b1af424ee3dd9e3ce6d5cea18cb927e67 upstream.
+
+The 64bit relocation code places a few symbols in the text segment.
+These symbols are only 4 byte aligned where they need to be 8 byte
+aligned. Add an explicit alignment.
+
+Signed-off-by: Anton Blanchard <anton@samba.org>
+Tested-by: Laurent Dufour <ldufour@linux.vnet.ibm.com>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/powerpc/kernel/reloc_64.S | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/powerpc/kernel/reloc_64.S
++++ b/arch/powerpc/kernel/reloc_64.S
+@@ -81,6 +81,7 @@ _GLOBAL(relocate)
+
+ 6: blr
+
++.balign 8
+ p_dyn: .llong __dynamic_start - 0b
+ p_rela: .llong __rela_dyn_start - 0b
+ p_st: .llong _stext - 0b
--- /dev/null
+From 621b5060e823301d0cba4cb52a7ee3491922d291 Mon Sep 17 00:00:00 2001
+From: Michael Neuling <mikey@neuling.org>
+Date: Mon, 3 Mar 2014 14:21:40 +1100
+Subject: powerpc/tm: Fix crash when forking inside a transaction
+
+From: Michael Neuling <mikey@neuling.org>
+
+commit 621b5060e823301d0cba4cb52a7ee3491922d291 upstream.
+
+When we fork/clone we currently don't copy any of the TM state to the new
+thread. This results in a TM bad thing (program check) when the new process is
+switched in as the kernel does a tmrechkpt with TEXASR FS not set. Also, since
+R1 is from userspace, we trigger the bad kernel stack pointer detection. So we
+end up with something like this:
+
+ Bad kernel stack pointer 0 at c0000000000404fc
+ cpu 0x2: Vector: 700 (Program Check) at [c00000003ffefd40]
+ pc: c0000000000404fc: restore_gprs+0xc0/0x148
+ lr: 0000000000000000
+ sp: 0
+ msr: 9000000100201030
+ current = 0xc000001dd1417c30
+ paca = 0xc00000000fe00800 softe: 0 irq_happened: 0x01
+ pid = 0, comm = swapper/2
+ WARNING: exception is not recoverable, can't continue
+
+The below fixes this by flushing the TM state before we copy the task_struct to
+the clone. To do this we go through the tmreclaim patch, which removes the
+checkpointed registers from the CPU and transitions the CPU out of TM suspend
+mode. Hence we need to call tmrechkpt after to restore the checkpointed state
+and the TM mode for the current task.
+
+To make this fail from userspace is simply:
+ tbegin
+ li r0, 2
+ sc
+ <boom>
+
+Kudos to Adhemerval Zanella Neto for finding this.
+
+Signed-off-by: Michael Neuling <mikey@neuling.org>
+cc: Adhemerval Zanella Neto <azanella@br.ibm.com>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/powerpc/kernel/process.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+--- a/arch/powerpc/kernel/process.c
++++ b/arch/powerpc/kernel/process.c
+@@ -927,6 +927,15 @@ int arch_dup_task_struct(struct task_str
+ flush_altivec_to_thread(src);
+ flush_vsx_to_thread(src);
+ flush_spe_to_thread(src);
++ /*
++ * Flush TM state out so we can copy it. __switch_to_tm() does this
++ * flush but it removes the checkpointed state from the current CPU and
++ * transitions the CPU out of TM mode. Hence we need to call
++ * tm_recheckpoint_new_task() (on the same task) to restore the
++ * checkpointed state back and the TM mode.
++ */
++ __switch_to_tm(src);
++ tm_recheckpoint_new_task(src);
+
+ *dst = *src;
+
perf-trace-decode-architecture-specific-signal-numbers.patch
drm-radeon-ttm-must-be-init-with-cpu-visible-vram-v2.patch
drm-ttm-don-t-oops-if-no-invalidate_caches.patch
+alsa-oxygen-xonar-dg-x-capture-from-i2s-channel-1-not-2.patch
+alsa-usb-audio-add-quirk-for-logitech-webcam-c500.patch
+alsa-hda-added-inverted-digital-mic-handling-for-acer-travelmate-8371.patch
+alsa-hda-add-automute-fix-for-another-dell-aio-model.patch
+alsa-hda-add-missing-loopback-merge-path-for-ad1884-1984-codecs.patch
+alsa-hda-use-analog-beep-for-thinkpads-with-ad1984-codecs.patch
+alsa-hda-fix-loud-click-noise-with-ideapad-410y.patch
+pinctrl-sunxi-use-chained_irq_-enter-exit-for-gic-compatibility.patch
+powerpc-tm-fix-crash-when-forking-inside-a-transaction.patch
+powerpc-align-p_dyn-p_rela-and-p_st-symbols.patch