--- /dev/null
+From bbfd8a19b6913f50a362457c34d49bfafe5e456e Mon Sep 17 00:00:00 2001
+From: David Henningsson <david.henningsson@canonical.com>
+Date: Tue, 19 Feb 2013 16:11:22 +0100
+Subject: ALSA: hda - hdmi: ELD shouldn't be valid after unplug
+
+From: David Henningsson <david.henningsson@canonical.com>
+
+commit bbfd8a19b6913f50a362457c34d49bfafe5e456e upstream.
+
+Currently, eld_valid is never set to false, except at kernel module
+load time. This patch makes sure that eld is no longer valid when
+the cable is (hot-)unplugged.
+
+Signed-off-by: David Henningsson <david.henningsson@canonical.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/patch_hdmi.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/pci/hda/patch_hdmi.c
++++ b/sound/pci/hda/patch_hdmi.c
+@@ -993,6 +993,7 @@ static void hdmi_present_sense(struct hd
+ "HDMI status: Codec=%d Pin=%d Presence_Detect=%d ELD_Valid=%d\n",
+ codec->addr, pin_nid, eld->monitor_present, eld_valid);
+
++ eld->eld_valid = false;
+ if (eld_valid) {
+ if (!snd_hdmi_get_eld(eld, codec, pin_nid))
+ snd_hdmi_show_eld(eld);
--- /dev/null
+From 2ad779b7329d6894a80df94e693e72eaa0d56790 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Fri, 1 Feb 2013 14:01:27 +0100
+Subject: ALSA: hda - Release assigned pin/cvt at error path of hdmi_pcm_open()
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit 2ad779b7329d6894a80df94e693e72eaa0d56790 upstream.
+
+If the driver detects and invalid ELD, it gives an open error.
+But it forgot to release the assigned pin, converter and spdif ctls
+before returning.
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/patch_hdmi.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+--- a/sound/pci/hda/patch_hdmi.c
++++ b/sound/pci/hda/patch_hdmi.c
+@@ -924,8 +924,12 @@ static int hdmi_pcm_open(struct hda_pcm_
+ if (!static_hdmi_pcm && eld->eld_valid) {
+ snd_hdmi_eld_update_pcm_info(eld, hinfo);
+ if (hinfo->channels_min > hinfo->channels_max ||
+- !hinfo->rates || !hinfo->formats)
++ !hinfo->rates || !hinfo->formats) {
++ per_cvt->assigned = 0;
++ hinfo->nid = 0;
++ snd_hda_spdif_ctls_unassign(codec, pin_idx);
+ return -ENODEV;
++ }
+ }
+
+ /* Store the updated parameters */
--- /dev/null
+From 12e31a78c70dc12897fda2489113f445c0e94a18 Mon Sep 17 00:00:00 2001
+From: Fernando Luis Vazquez Cao <fernando@oss.ntt.co.jp>
+Date: Tue, 12 Feb 2013 16:47:44 +0900
+Subject: ALSA: hda - Workaround for silent output on Sony Vaio VGC-LN51JGB with ALC889
+
+From: Fernando Luis Vazquez Cao <fernando@oss.ntt.co.jp>
+
+commit 12e31a78c70dc12897fda2489113f445c0e94a18 upstream.
+
+Some Vaio all-in-one desktop PCs (for example VGC-LN51JGB) are affected by
+the same issue that caused Vaio Z laptops to become silent: the speaker pin
+must be connected to the first DAC even though the codec itself advertises
+flexible routing through any of the DACs.
+
+Use the no-primary-hp fixup for choosing the speaker pin as the primary so
+that the right DAC is assigned on this device.
+
+Signed-off-by: Fernando Luis Vazquez Cao <fernando@oss.ntt.co.jp>
+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
+@@ -5440,6 +5440,7 @@ static const struct snd_pci_quirk alc882
+ SND_PCI_QUIRK(0x1043, 0x835f, "Asus Eee 1601", ALC888_FIXUP_EEE1601),
+ SND_PCI_QUIRK(0x104d, 0x9047, "Sony Vaio TT", ALC889_FIXUP_VAIO_TT),
+ SND_PCI_QUIRK(0x104d, 0x905a, "Sony Vaio Z", ALC882_FIXUP_NO_PRIMARY_HP),
++ SND_PCI_QUIRK(0x104d, 0x9043, "Sony Vaio VGC-LN51JGB", ALC882_FIXUP_NO_PRIMARY_HP),
+
+ /* All Apple entries are in codec SSIDs */
+ SND_PCI_QUIRK(0x106b, 0x00a0, "MacBookPro 3,1", ALC889_FIXUP_MBP_VREF),
--- /dev/null
+From 7da58046482fceb17c4a0d4afefd9507ec56de7f Mon Sep 17 00:00:00 2001
+From: Clemens Ladisch <clemens@ladisch.de>
+Date: Thu, 31 Jan 2013 21:14:33 +0100
+Subject: ALSA: usb-audio: fix Roland A-PRO support
+
+From: Clemens Ladisch <clemens@ladisch.de>
+
+commit 7da58046482fceb17c4a0d4afefd9507ec56de7f upstream.
+
+The quirk for the Roland/Cakewalk A-PRO keyboards accidentally used the
+wrong interface number, which prevented the driver from attaching to the
+device.
+
+Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/usb/quirks-table.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/usb/quirks-table.h
++++ b/sound/usb/quirks-table.h
+@@ -1658,7 +1658,7 @@ YAMAHA_DEVICE(0x7010, "UB99"),
+ .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
+ /* .vendor_name = "Roland", */
+ /* .product_name = "A-PRO", */
+- .ifnum = 1,
++ .ifnum = 0,
+ .type = QUIRK_MIDI_FIXED_ENDPOINT,
+ .data = & (const struct snd_usb_midi_endpoint_info) {
+ .out_cables = 0x0003,
--- /dev/null
+From b531f81b0d70ffbe8d70500512483227cc532608 Mon Sep 17 00:00:00 2001
+From: Pawel Moll <mail@pawelmoll.com>
+Date: Thu, 21 Feb 2013 01:55:50 +0000
+Subject: ALSA: usb: Fix Processing Unit Descriptor parsers
+
+From: Pawel Moll <mail@pawelmoll.com>
+
+commit b531f81b0d70ffbe8d70500512483227cc532608 upstream.
+
+Commit 99fc86450c439039d2ef88d06b222fd51a779176 "ALSA: usb-mixer:
+parse descriptors with structs" introduced a set of useful parsers
+for descriptors. Unfortunately the parses for the Processing Unit
+Descriptor came with a very subtle bug...
+
+Functions uac_processing_unit_iProcessing() and
+uac_processing_unit_specific() were indexing the baSourceID array
+forgetting the fields before the iProcessing and process-specific
+descriptors.
+
+The problem was observed with Sound Blaster Extigy mixer,
+where nNrModes in Up/Down-mix Processing Unit Descriptor
+was accessed at offset 10 of the descriptor (value 0)
+instead of offset 15 (value 7). In result the resulting
+control had interesting limit values:
+
+Simple mixer control 'Channel Routing Mode Select',0
+ Capabilities: volume volume-joined penum
+ Playback channels: Mono
+ Capture channels: Mono
+ Limits: 0 - -1
+ Mono: -1 [100%]
+
+Fixed by starting from the bmControls, which was calculated
+correctly, instead of baSourceID.
+
+Now the mentioned control is fine:
+
+Simple mixer control 'Channel Routing Mode Select',0
+ Capabilities: volume volume-joined penum
+ Playback channels: Mono
+ Capture channels: Mono
+ Limits: 0 - 6
+ Mono: 0 [0%]
+
+Signed-off-by: Pawel Moll <mail@pawelmoll.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ include/linux/usb/audio.h | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/include/linux/usb/audio.h
++++ b/include/linux/usb/audio.h
+@@ -384,14 +384,16 @@ static inline __u8 uac_processing_unit_i
+ int protocol)
+ {
+ __u8 control_size = uac_processing_unit_bControlSize(desc, protocol);
+- return desc->baSourceID[desc->bNrInPins + control_size];
++ return *(uac_processing_unit_bmControls(desc, protocol)
++ + control_size);
+ }
+
+ static inline __u8 *uac_processing_unit_specific(struct uac_processing_unit_descriptor *desc,
+ int protocol)
+ {
+ __u8 control_size = uac_processing_unit_bControlSize(desc, protocol);
+- return &desc->baSourceID[desc->bNrInPins + control_size + 1];
++ return uac_processing_unit_bmControls(desc, protocol)
++ + control_size + 1;
+ }
+
+ /* 4.5.2 Class-Specific AS Interface Descriptor */
--- /dev/null
+From 008e33f733ca51acb2dd9d88ea878693b04d1d2a Mon Sep 17 00:00:00 2001
+From: Tomasz Guszkowski <tsg@o2.pl>
+Date: Tue, 5 Feb 2013 22:10:31 +0100
+Subject: p54usb: corrected USB ID for T-Com Sinus 154 data II
+
+From: Tomasz Guszkowski <tsg@o2.pl>
+
+commit 008e33f733ca51acb2dd9d88ea878693b04d1d2a upstream.
+
+Corrected USB ID for T-Com Sinus 154 data II. ISL3887-based. The
+device was tested in managed mode with no security, WEP 128
+bit and WPA-PSK (TKIP) with firmware 2.13.1.0.lm87.arm (md5sum:
+7d676323ac60d6e1a3b6d61e8c528248). It works.
+
+Signed-off-by: Tomasz Guszkowski <tsg@o2.pl>
+Acked-By: Christian Lamparter <chunkeey@googlemail.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/p54/p54usb.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/p54/p54usb.c
++++ b/drivers/net/wireless/p54/p54usb.c
+@@ -84,8 +84,8 @@ static struct usb_device_id p54u_table[]
+ {USB_DEVICE(0x06b9, 0x0121)}, /* Thomson SpeedTouch 121g */
+ {USB_DEVICE(0x0707, 0xee13)}, /* SMC 2862W-G version 2 */
+ {USB_DEVICE(0x0803, 0x4310)}, /* Zoom 4410a */
+- {USB_DEVICE(0x083a, 0x4503)}, /* T-Com Sinus 154 data II */
+ {USB_DEVICE(0x083a, 0x4521)}, /* Siemens Gigaset USB Adapter 54 version 2 */
++ {USB_DEVICE(0x083a, 0x4531)}, /* T-Com Sinus 154 data II */
+ {USB_DEVICE(0x083a, 0xc501)}, /* Zoom Wireless-G 4410 */
+ {USB_DEVICE(0x083a, 0xf503)}, /* Accton FD7050E ver 1010ec */
+ {USB_DEVICE(0x0846, 0x4240)}, /* Netgear WG111 (v2) */
drivercore-fix-ordering-between-deferred_probe-and-exiting-initcalls.patch
umount-oops-when-remove-blocklayoutdriver-first.patch
nlm-ensure-that-we-resend-all-pending-blocking-locks-after-a-reclaim.patch
+p54usb-corrected-usb-id-for-t-com-sinus-154-data-ii.patch
+alsa-usb-audio-fix-roland-a-pro-support.patch
+alsa-usb-fix-processing-unit-descriptor-parsers.patch
+alsa-hda-release-assigned-pin-cvt-at-error-path-of-hdmi_pcm_open.patch
+alsa-hda-workaround-for-silent-output-on-sony-vaio-vgc-ln51jgb-with-alc889.patch
+alsa-hda-hdmi-eld-shouldn-t-be-valid-after-unplug.patch