From 47537e8f42c0b54f18c0e418c06ef87a7981d42c Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 25 Feb 2013 10:58:17 -0800 Subject: [PATCH] 3.4-stable patches added patches: alsa-hda-hdmi-eld-shouldn-t-be-valid-after-unplug.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-usb-audio-fix-roland-a-pro-support.patch alsa-usb-fix-processing-unit-descriptor-parsers.patch p54usb-corrected-usb-id-for-t-com-sinus-154-data-ii.patch --- ...-eld-shouldn-t-be-valid-after-unplug.patch | 31 ++++++++ ...n-cvt-at-error-path-of-hdmi_pcm_open.patch | 36 +++++++++ ...on-sony-vaio-vgc-ln51jgb-with-alc889.patch | 35 +++++++++ ...a-usb-audio-fix-roland-a-pro-support.patch | 31 ++++++++ ...x-processing-unit-descriptor-parsers.patch | 73 +++++++++++++++++++ ...d-usb-id-for-t-com-sinus-154-data-ii.patch | 35 +++++++++ queue-3.4/series | 6 ++ 7 files changed, 247 insertions(+) create mode 100644 queue-3.4/alsa-hda-hdmi-eld-shouldn-t-be-valid-after-unplug.patch create mode 100644 queue-3.4/alsa-hda-release-assigned-pin-cvt-at-error-path-of-hdmi_pcm_open.patch create mode 100644 queue-3.4/alsa-hda-workaround-for-silent-output-on-sony-vaio-vgc-ln51jgb-with-alc889.patch create mode 100644 queue-3.4/alsa-usb-audio-fix-roland-a-pro-support.patch create mode 100644 queue-3.4/alsa-usb-fix-processing-unit-descriptor-parsers.patch create mode 100644 queue-3.4/p54usb-corrected-usb-id-for-t-com-sinus-154-data-ii.patch diff --git a/queue-3.4/alsa-hda-hdmi-eld-shouldn-t-be-valid-after-unplug.patch b/queue-3.4/alsa-hda-hdmi-eld-shouldn-t-be-valid-after-unplug.patch new file mode 100644 index 00000000000..89730efaa78 --- /dev/null +++ b/queue-3.4/alsa-hda-hdmi-eld-shouldn-t-be-valid-after-unplug.patch @@ -0,0 +1,31 @@ +From bbfd8a19b6913f50a362457c34d49bfafe5e456e Mon Sep 17 00:00:00 2001 +From: David Henningsson +Date: Tue, 19 Feb 2013 16:11:22 +0100 +Subject: ALSA: hda - hdmi: ELD shouldn't be valid after unplug + +From: David Henningsson + +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 +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + 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); diff --git a/queue-3.4/alsa-hda-release-assigned-pin-cvt-at-error-path-of-hdmi_pcm_open.patch b/queue-3.4/alsa-hda-release-assigned-pin-cvt-at-error-path-of-hdmi_pcm_open.patch new file mode 100644 index 00000000000..df056224b70 --- /dev/null +++ b/queue-3.4/alsa-hda-release-assigned-pin-cvt-at-error-path-of-hdmi_pcm_open.patch @@ -0,0 +1,36 @@ +From 2ad779b7329d6894a80df94e693e72eaa0d56790 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +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 + +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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 */ diff --git a/queue-3.4/alsa-hda-workaround-for-silent-output-on-sony-vaio-vgc-ln51jgb-with-alc889.patch b/queue-3.4/alsa-hda-workaround-for-silent-output-on-sony-vaio-vgc-ln51jgb-with-alc889.patch new file mode 100644 index 00000000000..a6c7ef84f29 --- /dev/null +++ b/queue-3.4/alsa-hda-workaround-for-silent-output-on-sony-vaio-vgc-ln51jgb-with-alc889.patch @@ -0,0 +1,35 @@ +From 12e31a78c70dc12897fda2489113f445c0e94a18 Mon Sep 17 00:00:00 2001 +From: Fernando Luis Vazquez Cao +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 + +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 +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + 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), diff --git a/queue-3.4/alsa-usb-audio-fix-roland-a-pro-support.patch b/queue-3.4/alsa-usb-audio-fix-roland-a-pro-support.patch new file mode 100644 index 00000000000..16c498cee88 --- /dev/null +++ b/queue-3.4/alsa-usb-audio-fix-roland-a-pro-support.patch @@ -0,0 +1,31 @@ +From 7da58046482fceb17c4a0d4afefd9507ec56de7f Mon Sep 17 00:00:00 2001 +From: Clemens Ladisch +Date: Thu, 31 Jan 2013 21:14:33 +0100 +Subject: ALSA: usb-audio: fix Roland A-PRO support + +From: Clemens Ladisch + +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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, diff --git a/queue-3.4/alsa-usb-fix-processing-unit-descriptor-parsers.patch b/queue-3.4/alsa-usb-fix-processing-unit-descriptor-parsers.patch new file mode 100644 index 00000000000..b47fa6355cd --- /dev/null +++ b/queue-3.4/alsa-usb-fix-processing-unit-descriptor-parsers.patch @@ -0,0 +1,73 @@ +From b531f81b0d70ffbe8d70500512483227cc532608 Mon Sep 17 00:00:00 2001 +From: Pawel Moll +Date: Thu, 21 Feb 2013 01:55:50 +0000 +Subject: ALSA: usb: Fix Processing Unit Descriptor parsers + +From: Pawel Moll + +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 +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + 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 */ diff --git a/queue-3.4/p54usb-corrected-usb-id-for-t-com-sinus-154-data-ii.patch b/queue-3.4/p54usb-corrected-usb-id-for-t-com-sinus-154-data-ii.patch new file mode 100644 index 00000000000..1c4619e64dd --- /dev/null +++ b/queue-3.4/p54usb-corrected-usb-id-for-t-com-sinus-154-data-ii.patch @@ -0,0 +1,35 @@ +From 008e33f733ca51acb2dd9d88ea878693b04d1d2a Mon Sep 17 00:00:00 2001 +From: Tomasz Guszkowski +Date: Tue, 5 Feb 2013 22:10:31 +0100 +Subject: p54usb: corrected USB ID for T-Com Sinus 154 data II + +From: Tomasz Guszkowski + +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 +Acked-By: Christian Lamparter +Signed-off-by: John W. Linville +Signed-off-by: Greg Kroah-Hartman + +--- + 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) */ diff --git a/queue-3.4/series b/queue-3.4/series index 45225d41fb5..972eaa7e5b5 100644 --- a/queue-3.4/series +++ b/queue-3.4/series @@ -33,3 +33,9 @@ mm-fadvise.c-drain-all-pagevecs-if-posix_fadv_dontneed-fails-to-discard-all-page 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 -- 2.47.3