From: Greg Kroah-Hartman Date: Mon, 25 Feb 2013 18:58:37 +0000 (-0800) Subject: 3.7-stable patches X-Git-Tag: v3.7.10~34 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fe2507cf4722af399e0a5224447ebf5679793991;p=thirdparty%2Fkernel%2Fstable-queue.git 3.7-stable patches added patches: alsa-hda-fix-default-multichannel-hdmi-mapping-regression.patch 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 gfs2-get-a-block-reservation-before-resizing-a-file.patch p54usb-corrected-usb-id-for-t-com-sinus-154-data-ii.patch --- diff --git a/queue-3.7/alsa-hda-fix-default-multichannel-hdmi-mapping-regression.patch b/queue-3.7/alsa-hda-fix-default-multichannel-hdmi-mapping-regression.patch new file mode 100644 index 00000000000..833baed7749 --- /dev/null +++ b/queue-3.7/alsa-hda-fix-default-multichannel-hdmi-mapping-regression.patch @@ -0,0 +1,64 @@ +From 20608731f479d48be6bcb88e727f360ddf98ddaf Mon Sep 17 00:00:00 2001 +From: Anssi Hannula +Date: Sun, 3 Feb 2013 17:55:45 +0200 +Subject: ALSA: hda - Fix default multichannel HDMI mapping regression + +From: Anssi Hannula + +commit 20608731f479d48be6bcb88e727f360ddf98ddaf upstream. + +Commit d45e6889ee69456a4d5b1bbb32252f460cd48fa9 ("ALSA: hda - Provide +the proper channel mapping for generic HDMI driver") added support for +custom channel maps in the HDA HDMI driver. Due to a mistake in an +'if' condition the custom map is always used even when no such map has +been set. This causes incorrect channel mapping for multichannel audio +by default. + +Pass per_pin->chmap_set to hdmi_setup_channel_mapping() as a parameter +so that it can use it for detecting if a custom map has been set instead +of checking if map is NULL (which is never the case). + +Reported-by: Staffan Lindberg +Signed-off-by: Anssi Hannula +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/patch_hdmi.c | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +--- a/sound/pci/hda/patch_hdmi.c ++++ b/sound/pci/hda/patch_hdmi.c +@@ -714,9 +714,10 @@ static void hdmi_setup_fake_chmap(unsign + + static void hdmi_setup_channel_mapping(struct hda_codec *codec, + hda_nid_t pin_nid, bool non_pcm, int ca, +- int channels, unsigned char *map) ++ int channels, unsigned char *map, ++ bool chmap_set) + { +- if (!non_pcm && map) { ++ if (!non_pcm && chmap_set) { + hdmi_manual_setup_channel_mapping(codec, pin_nid, + channels, map); + } else { +@@ -905,7 +906,8 @@ static void hdmi_setup_audio_infoframe(s + pin_nid, + channels); + hdmi_setup_channel_mapping(codec, pin_nid, non_pcm, ca, +- channels, per_pin->chmap); ++ channels, per_pin->chmap, ++ per_pin->chmap_set); + hdmi_stop_infoframe_trans(codec, pin_nid); + hdmi_fill_audio_infoframe(codec, pin_nid, + ai.bytes, sizeof(ai)); +@@ -915,7 +917,8 @@ static void hdmi_setup_audio_infoframe(s + * accordingly */ + if (per_pin->non_pcm != non_pcm) + hdmi_setup_channel_mapping(codec, pin_nid, non_pcm, ca, +- channels, per_pin->chmap); ++ channels, per_pin->chmap, ++ per_pin->chmap_set); + } + + per_pin->non_pcm = non_pcm; diff --git a/queue-3.7/alsa-hda-hdmi-eld-shouldn-t-be-valid-after-unplug.patch b/queue-3.7/alsa-hda-hdmi-eld-shouldn-t-be-valid-after-unplug.patch new file mode 100644 index 00000000000..c0e88530cce --- /dev/null +++ b/queue-3.7/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 +@@ -1172,6 +1172,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.7/alsa-hda-release-assigned-pin-cvt-at-error-path-of-hdmi_pcm_open.patch b/queue-3.7/alsa-hda-release-assigned-pin-cvt-at-error-path-of-hdmi_pcm_open.patch new file mode 100644 index 00000000000..97ae1d27bc9 --- /dev/null +++ b/queue-3.7/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 +@@ -1100,8 +1100,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.7/alsa-hda-workaround-for-silent-output-on-sony-vaio-vgc-ln51jgb-with-alc889.patch b/queue-3.7/alsa-hda-workaround-for-silent-output-on-sony-vaio-vgc-ln51jgb-with-alc889.patch new file mode 100644 index 00000000000..aab35e494bf --- /dev/null +++ b/queue-3.7/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 +@@ -5388,6 +5388,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.7/alsa-usb-audio-fix-roland-a-pro-support.patch b/queue-3.7/alsa-usb-audio-fix-roland-a-pro-support.patch new file mode 100644 index 00000000000..16c498cee88 --- /dev/null +++ b/queue-3.7/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.7/alsa-usb-fix-processing-unit-descriptor-parsers.patch b/queue-3.7/alsa-usb-fix-processing-unit-descriptor-parsers.patch new file mode 100644 index 00000000000..080d1a118ba --- /dev/null +++ b/queue-3.7/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/uapi/linux/usb/audio.h | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/include/uapi/linux/usb/audio.h ++++ b/include/uapi/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.7/gfs2-get-a-block-reservation-before-resizing-a-file.patch b/queue-3.7/gfs2-get-a-block-reservation-before-resizing-a-file.patch new file mode 100644 index 00000000000..e1bed1bdfd3 --- /dev/null +++ b/queue-3.7/gfs2-get-a-block-reservation-before-resizing-a-file.patch @@ -0,0 +1,34 @@ +From d2b47cfb26fe06002b8011707baac71a9ae8166f Mon Sep 17 00:00:00 2001 +From: Bob Peterson +Date: Fri, 1 Feb 2013 12:03:02 -0500 +Subject: GFS2: Get a block reservation before resizing a file + +From: Bob Peterson + +commit d2b47cfb26fe06002b8011707baac71a9ae8166f upstream. + +This patch allocates a block reservation structure before growing +or shrinking a file. Without this structure, the grow or shink code +can reference the bad pointer. + +Signed-off-by: Bob Peterson +Signed-off-by: Steven Whitehouse +Signed-off-by: Greg Kroah-Hartman + +--- + fs/gfs2/bmap.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/fs/gfs2/bmap.c ++++ b/fs/gfs2/bmap.c +@@ -1240,6 +1240,10 @@ int gfs2_setattr_size(struct inode *inod + + inode_dio_wait(inode); + ++ ret = gfs2_rs_alloc(GFS2_I(inode)); ++ if (ret) ++ return ret; ++ + oldsize = inode->i_size; + if (newsize >= oldsize) + return do_grow(inode, newsize); diff --git a/queue-3.7/p54usb-corrected-usb-id-for-t-com-sinus-154-data-ii.patch b/queue-3.7/p54usb-corrected-usb-id-for-t-com-sinus-154-data-ii.patch new file mode 100644 index 00000000000..1c4619e64dd --- /dev/null +++ b/queue-3.7/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.7/series b/queue-3.7/series index ab0681d8d1a..55c5ed7cc39 100644 --- a/queue-3.7/series +++ b/queue-3.7/series @@ -41,3 +41,11 @@ 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 nfsv4.1-don-t-decode-skipped-layoutgets.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-fix-default-multichannel-hdmi-mapping-regression.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 +gfs2-get-a-block-reservation-before-resizing-a-file.patch