]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.6-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Nov 2012 23:51:35 +0000 (15:51 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Nov 2012 23:51:35 +0000 (15:51 -0800)
added patches:
alsa-hda-add-a-missing-quirk-entry-for-imac-9-1.patch
alsa-hda-add-new-codec-alc668-and-alc900-default-name-alc1150.patch
alsa-hda-cirrus-fix-coefficient-index-for-beep-configuration.patch
alsa-hda-fix-digital-microphone-on-cs420x.patch
alsa-hda-fix-empty-dac-filling-in-patch_via.c.patch
alsa-hda-fix-invalid-connections-in-vt1802-codec.patch
alsa-hda-force-to-reset-iec958-status-bits-for-ad-codecs.patch
alsa-hda-improve-hp-depop-when-system-enter-to-s3.patch
asoc-core-double-control-update-err-for-snd_soc_put_volsw_sx.patch
asoc-cs42l52-fix-the-return-value-of-cs42l52_set_fmt.patch
asoc-dapm-use-card_list-during-dapm-shutdown.patch
asoc-wm8978-pll-incorrectly-configured-when-codec-is-master.patch
ptp-update-adjfreq-callback-description.patch
ubifs-fix-mounting-problems-after-power-cuts.patch
ubifs-introduce-categorized-lprops-counter.patch

16 files changed:
queue-3.6/alsa-hda-add-a-missing-quirk-entry-for-imac-9-1.patch [new file with mode: 0644]
queue-3.6/alsa-hda-add-new-codec-alc668-and-alc900-default-name-alc1150.patch [new file with mode: 0644]
queue-3.6/alsa-hda-cirrus-fix-coefficient-index-for-beep-configuration.patch [new file with mode: 0644]
queue-3.6/alsa-hda-fix-digital-microphone-on-cs420x.patch [new file with mode: 0644]
queue-3.6/alsa-hda-fix-empty-dac-filling-in-patch_via.c.patch [new file with mode: 0644]
queue-3.6/alsa-hda-fix-invalid-connections-in-vt1802-codec.patch [new file with mode: 0644]
queue-3.6/alsa-hda-force-to-reset-iec958-status-bits-for-ad-codecs.patch [new file with mode: 0644]
queue-3.6/alsa-hda-improve-hp-depop-when-system-enter-to-s3.patch [new file with mode: 0644]
queue-3.6/asoc-core-double-control-update-err-for-snd_soc_put_volsw_sx.patch [new file with mode: 0644]
queue-3.6/asoc-cs42l52-fix-the-return-value-of-cs42l52_set_fmt.patch [new file with mode: 0644]
queue-3.6/asoc-dapm-use-card_list-during-dapm-shutdown.patch [new file with mode: 0644]
queue-3.6/asoc-wm8978-pll-incorrectly-configured-when-codec-is-master.patch [new file with mode: 0644]
queue-3.6/ptp-update-adjfreq-callback-description.patch [new file with mode: 0644]
queue-3.6/series
queue-3.6/ubifs-fix-mounting-problems-after-power-cuts.patch [new file with mode: 0644]
queue-3.6/ubifs-introduce-categorized-lprops-counter.patch [new file with mode: 0644]

diff --git a/queue-3.6/alsa-hda-add-a-missing-quirk-entry-for-imac-9-1.patch b/queue-3.6/alsa-hda-add-a-missing-quirk-entry-for-imac-9-1.patch
new file mode 100644 (file)
index 0000000..bfd0b3e
--- /dev/null
@@ -0,0 +1,29 @@
+From 05193639ca977cc889668718adb38db6d585045b Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Mon, 12 Nov 2012 10:07:36 +0100
+Subject: ALSA: hda - Add a missing quirk entry for iMac 9,1
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit 05193639ca977cc889668718adb38db6d585045b upstream.
+
+This is another variant of iMac 9,1 with a different codec SSID.
+
+Reported-and-tested-by: Everaldo Canuto <everaldo.canuto@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
+@@ -5434,6 +5434,7 @@ static const struct snd_pci_quirk alc882
+       SND_PCI_QUIRK(0x106b, 0x4000, "MacbookPro 5,1", ALC889_FIXUP_IMAC91_VREF),
+       SND_PCI_QUIRK(0x106b, 0x4100, "Macmini 3,1", ALC889_FIXUP_IMAC91_VREF),
+       SND_PCI_QUIRK(0x106b, 0x4200, "Mac Pro 5,1", ALC885_FIXUP_MACPRO_GPIO),
++      SND_PCI_QUIRK(0x106b, 0x4300, "iMac 9,1", ALC889_FIXUP_IMAC91_VREF),
+       SND_PCI_QUIRK(0x106b, 0x4600, "MacbookPro 5,2", ALC889_FIXUP_IMAC91_VREF),
+       SND_PCI_QUIRK(0x106b, 0x4900, "iMac 9,1 Aluminum", ALC889_FIXUP_IMAC91_VREF),
+       SND_PCI_QUIRK(0x106b, 0x4a00, "Macbook 5,2", ALC889_FIXUP_IMAC91_VREF),
diff --git a/queue-3.6/alsa-hda-add-new-codec-alc668-and-alc900-default-name-alc1150.patch b/queue-3.6/alsa-hda-add-new-codec-alc668-and-alc900-default-name-alc1150.patch
new file mode 100644 (file)
index 0000000..904cb29
--- /dev/null
@@ -0,0 +1,35 @@
+From 19a62823eae453619604636082085812c14ee391 Mon Sep 17 00:00:00 2001
+From: Kailang Yang <kailang@realtek.com>
+Date: Thu, 8 Nov 2012 10:25:37 +0100
+Subject: ALSA: hda - Add new codec ALC668 and ALC900 (default name ALC1150)
+
+From: Kailang Yang <kailang@realtek.com>
+
+commit 19a62823eae453619604636082085812c14ee391 upstream.
+
+Signed-off-by: Kailang Yang <kailang@realtek.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, 2 insertions(+)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -7101,6 +7101,7 @@ static const struct hda_codec_preset snd
+         .patch = patch_alc662 },
+       { .id = 0x10ec0663, .name = "ALC663", .patch = patch_alc662 },
+       { .id = 0x10ec0665, .name = "ALC665", .patch = patch_alc662 },
++      { .id = 0x10ec0668, .name = "ALC668", .patch = patch_alc662 },
+       { .id = 0x10ec0670, .name = "ALC670", .patch = patch_alc662 },
+       { .id = 0x10ec0680, .name = "ALC680", .patch = patch_alc680 },
+       { .id = 0x10ec0880, .name = "ALC880", .patch = patch_alc880 },
+@@ -7118,6 +7119,7 @@ static const struct hda_codec_preset snd
+       { .id = 0x10ec0889, .name = "ALC889", .patch = patch_alc882 },
+       { .id = 0x10ec0892, .name = "ALC892", .patch = patch_alc662 },
+       { .id = 0x10ec0899, .name = "ALC898", .patch = patch_alc882 },
++      { .id = 0x10ec0900, .name = "ALC1150", .patch = patch_alc882 },
+       {} /* terminator */
+ };
diff --git a/queue-3.6/alsa-hda-cirrus-fix-coefficient-index-for-beep-configuration.patch b/queue-3.6/alsa-hda-cirrus-fix-coefficient-index-for-beep-configuration.patch
new file mode 100644 (file)
index 0000000..00df5f5
--- /dev/null
@@ -0,0 +1,28 @@
+From 5a83b4b5a391f07141b157ac9daa51c409e71ab5 Mon Sep 17 00:00:00 2001
+From: Alexander Stein <alexander.stein@systec-electronic.com>
+Date: Thu, 1 Nov 2012 13:42:37 +0100
+Subject: ALSA: hda: Cirrus: Fix coefficient index for beep configuration
+
+From: Alexander Stein <alexander.stein@systec-electronic.com>
+
+commit 5a83b4b5a391f07141b157ac9daa51c409e71ab5 upstream.
+
+Signed-off-by: Alexander Stein <alexander.stein@systec-electronic.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/patch_cirrus.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/pci/hda/patch_cirrus.c
++++ b/sound/pci/hda/patch_cirrus.c
+@@ -1102,7 +1102,7 @@ static const struct hda_verb cs_coef_ini
+         | 0x0400 /* Disable Coefficient Auto increment */
+         )},
+       /* Beep */
+-      {0x11, AC_VERB_SET_COEF_INDEX, IDX_DAC_CFG},
++      {0x11, AC_VERB_SET_COEF_INDEX, IDX_BEEP_CFG},
+       {0x11, AC_VERB_SET_PROC_COEF, 0x0007}, /* Enable Beep thru DAC1/2/3 */
+       {} /* terminator */
diff --git a/queue-3.6/alsa-hda-fix-digital-microphone-on-cs420x.patch b/queue-3.6/alsa-hda-fix-digital-microphone-on-cs420x.patch
new file mode 100644 (file)
index 0000000..193f455
--- /dev/null
@@ -0,0 +1,59 @@
+From 16337e028a6dae9fbdd718c0d42161540a668ff3 Mon Sep 17 00:00:00 2001
+From: Daniel J Blueman <daniel@quora.org>
+Date: Sun, 4 Nov 2012 13:19:03 +0800
+Subject: ALSA: HDA: Fix digital microphone on CS420x
+
+From: Daniel J Blueman <daniel@quora.org>
+
+commit 16337e028a6dae9fbdd718c0d42161540a668ff3 upstream.
+
+Correctly enable the digital microphones with the right bits in the
+right coeffecient registers on Cirrus CS4206/7 codecs. It also
+prevents misconfiguring ADC1/2.
+
+This fixes the digital mic on the Macbook Pro 10,1/Retina.
+
+Based-on-patch-by: Alexander Stein <alexander.stein@systec-electronic.com>
+Signed-off-by: Daniel J Blueman <daniel@quora.org>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/patch_cirrus.c |   14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+--- a/sound/pci/hda/patch_cirrus.c
++++ b/sound/pci/hda/patch_cirrus.c
+@@ -96,8 +96,8 @@ enum {
+ #define CS420X_VENDOR_NID     0x11
+ #define CS_DIG_OUT1_PIN_NID   0x10
+ #define CS_DIG_OUT2_PIN_NID   0x15
+-#define CS_DMIC1_PIN_NID      0x12
+-#define CS_DMIC2_PIN_NID      0x0e
++#define CS_DMIC1_PIN_NID      0x0e
++#define CS_DMIC2_PIN_NID      0x12
+ /* coef indices */
+ #define IDX_SPDIF_STAT                0x0000
+@@ -1074,14 +1074,18 @@ static void init_input(struct hda_codec
+                       cs_automic(codec);
+               coef = 0x000a; /* ADC1/2 - Digital and Analog Soft Ramp */
++              cs_vendor_coef_set(codec, IDX_ADC_CFG, coef);
++
++              coef = cs_vendor_coef_get(codec, IDX_BEEP_CFG);
+               if (is_active_pin(codec, CS_DMIC2_PIN_NID))
+-                      coef |= 0x0500; /* DMIC2 2 chan on, GPIO1 off */
++                      coef |= 1 << 4; /* DMIC2 2 chan on, GPIO1 off */
+               if (is_active_pin(codec, CS_DMIC1_PIN_NID))
+-                      coef |= 0x1800; /* DMIC1 2 chan on, GPIO0 off
++                      coef |= 1 << 3; /* DMIC1 2 chan on, GPIO0 off
+                                        * No effect if SPDIF_OUT2 is
+                                        * selected in IDX_SPDIF_CTL.
+                                       */
+-              cs_vendor_coef_set(codec, IDX_ADC_CFG, coef);
++
++              cs_vendor_coef_set(codec, IDX_BEEP_CFG, coef);
+       } else {
+               if (spec->mic_detect)
+                       cs_automic(codec);
diff --git a/queue-3.6/alsa-hda-fix-empty-dac-filling-in-patch_via.c.patch b/queue-3.6/alsa-hda-fix-empty-dac-filling-in-patch_via.c.patch
new file mode 100644 (file)
index 0000000..432f13b
--- /dev/null
@@ -0,0 +1,61 @@
+From 5b3761954dac2d1393beef8210eb8cee81d16b8d Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Wed, 7 Nov 2012 10:32:47 +0100
+Subject: ALSA: hda - Fix empty DAC filling in patch_via.c
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit 5b3761954dac2d1393beef8210eb8cee81d16b8d upstream.
+
+In via_auto_fill_adc_nids(), the parser tries to fill dac_nids[] at
+the point of the current line-out (i).  When no valid path is found
+for this output, this results in dac = 0, thus it creates a hole in
+dac_nids[].  This confuses is_empty_dac() and trims the detected DAC
+in later reference.
+
+This patch fixes the bug by appending DAC properly to dac_nids[] in
+via_auto_fill_adc_nids().
+
+Reported-by: Massimo Del Fedele <max@veneto.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/patch_via.c |   11 ++++-------
+ 1 file changed, 4 insertions(+), 7 deletions(-)
+
+--- a/sound/pci/hda/patch_via.c
++++ b/sound/pci/hda/patch_via.c
+@@ -1875,11 +1875,11 @@ static int via_auto_fill_dac_nids(struct
+ {
+       struct via_spec *spec = codec->spec;
+       const struct auto_pin_cfg *cfg = &spec->autocfg;
+-      int i, dac_num;
++      int i;
+       hda_nid_t nid;
++      spec->multiout.num_dacs = 0;
+       spec->multiout.dac_nids = spec->private_dac_nids;
+-      dac_num = 0;
+       for (i = 0; i < cfg->line_outs; i++) {
+               hda_nid_t dac = 0;
+               nid = cfg->line_out_pins[i];
+@@ -1890,16 +1890,13 @@ static int via_auto_fill_dac_nids(struct
+               if (!i && parse_output_path(codec, nid, dac, 1,
+                                           &spec->out_mix_path))
+                       dac = spec->out_mix_path.path[0];
+-              if (dac) {
+-                      spec->private_dac_nids[i] = dac;
+-                      dac_num++;
+-              }
++              if (dac)
++                      spec->private_dac_nids[spec->multiout.num_dacs++] = dac;
+       }
+       if (!spec->out_path[0].depth && spec->out_mix_path.depth) {
+               spec->out_path[0] = spec->out_mix_path;
+               spec->out_mix_path.depth = 0;
+       }
+-      spec->multiout.num_dacs = dac_num;
+       return 0;
+ }
diff --git a/queue-3.6/alsa-hda-fix-invalid-connections-in-vt1802-codec.patch b/queue-3.6/alsa-hda-fix-invalid-connections-in-vt1802-codec.patch
new file mode 100644 (file)
index 0000000..8ef9dd7
--- /dev/null
@@ -0,0 +1,52 @@
+From ef4da45828603df57e5e21b8aa21a66ce309f79b Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Wed, 7 Nov 2012 10:37:48 +0100
+Subject: ALSA: hda - Fix invalid connections in VT1802 codec
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit ef4da45828603df57e5e21b8aa21a66ce309f79b upstream.
+
+VT1802 codec provides the invalid connection lists of NID 0x24 and
+0x33 containing the routes to a non-exist widget 0x3e.  This confuses
+the auto-parser.  Fix it up in the driver by overriding these
+connections.
+
+Reported-by: Massimo Del Fedele <max@veneto.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/patch_via.c |   14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+--- a/sound/pci/hda/patch_via.c
++++ b/sound/pci/hda/patch_via.c
+@@ -3697,6 +3697,18 @@ static const struct snd_pci_quirk vt2002
+       {}
+ };
++/* NIDs 0x24 and 0x33 on VT1802 have connections to non-existing NID 0x3e
++ * Replace this with mixer NID 0x1c
++ */
++static void fix_vt1802_connections(struct hda_codec *codec)
++{
++      static hda_nid_t conn_24[] = { 0x14, 0x1c };
++      static hda_nid_t conn_33[] = { 0x1c };
++
++      snd_hda_override_conn_list(codec, 0x24, ARRAY_SIZE(conn_24), conn_24);
++      snd_hda_override_conn_list(codec, 0x33, ARRAY_SIZE(conn_33), conn_33);
++}
++
+ /* patch for vt2002P */
+ static int patch_vt2002P(struct hda_codec *codec)
+ {
+@@ -3711,6 +3723,8 @@ static int patch_vt2002P(struct hda_code
+       spec->aa_mix_nid = 0x21;
+       override_mic_boost(codec, 0x2b, 0, 3, 40);
+       override_mic_boost(codec, 0x29, 0, 3, 40);
++      if (spec->codec_type == VT1802)
++              fix_vt1802_connections(codec);
+       add_secret_dac_path(codec);
+       snd_hda_pick_fixup(codec, NULL, vt2002p_fixups, via_fixups);
diff --git a/queue-3.6/alsa-hda-force-to-reset-iec958-status-bits-for-ad-codecs.patch b/queue-3.6/alsa-hda-force-to-reset-iec958-status-bits-for-ad-codecs.patch
new file mode 100644 (file)
index 0000000..9b8527b
--- /dev/null
@@ -0,0 +1,35 @@
+From ae24c3191ba2ab03ec6b4be323e730e00404b4b6 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Mon, 5 Nov 2012 12:32:46 +0100
+Subject: ALSA: hda - Force to reset IEC958 status bits for AD codecs
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit ae24c3191ba2ab03ec6b4be323e730e00404b4b6 upstream.
+
+Several bug reports suggest that the forcibly resetting IEC958 status
+bits is required for AD codecs to get the SPDIF output working
+properly after changing streams.
+
+Original fix credit to Javeed Shaikh.
+
+BugLink: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/359361
+
+Reported-by: Robin Kreis <r.kreis@uni-bremen.de>
+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
+@@ -545,6 +545,7 @@ static int ad198x_build_pcms(struct hda_
+       if (spec->multiout.dig_out_nid) {
+               info++;
+               codec->num_pcms++;
++              codec->spdif_status_reset = 1;
+               info->name = "AD198x Digital";
+               info->pcm_type = HDA_PCM_TYPE_SPDIF;
+               info->stream[SNDRV_PCM_STREAM_PLAYBACK] = ad198x_pcm_digital_playback;
diff --git a/queue-3.6/alsa-hda-improve-hp-depop-when-system-enter-to-s3.patch b/queue-3.6/alsa-hda-improve-hp-depop-when-system-enter-to-s3.patch
new file mode 100644 (file)
index 0000000..cc13408
--- /dev/null
@@ -0,0 +1,77 @@
+From 1387e2d12799e554df2f60e7ae7fe01384bcb96f Mon Sep 17 00:00:00 2001
+From: Kailang Yang <kailang@realtek.com>
+Date: Thu, 8 Nov 2012 10:23:18 +0100
+Subject: ALSA: hda - Improve HP depop when system enter to S3
+
+From: Kailang Yang <kailang@realtek.com>
+
+commit 1387e2d12799e554df2f60e7ae7fe01384bcb96f upstream.
+
+alc269_toggle_power_output() was only use in ALC269VB.  I rename it to
+alc269vb_toggle_power_output().
+
+Signed-off-by: Kailang Yang <kailang@realtek.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/patch_realtek.c |   24 +++++++++++-------------
+ 1 file changed, 11 insertions(+), 13 deletions(-)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -5867,7 +5867,7 @@ static int alc269_parse_auto_config(stru
+       return alc_parse_auto_config(codec, alc269_ignore, ssids);
+ }
+-static void alc269_toggle_power_output(struct hda_codec *codec, int power_up)
++static void alc269vb_toggle_power_output(struct hda_codec *codec, int power_up)
+ {
+       int val = alc_read_coef_idx(codec, 0x04);
+       if (power_up)
+@@ -5884,10 +5884,10 @@ static void alc269_shutup(struct hda_cod
+       if (spec->codec_variant != ALC269_TYPE_ALC269VB)
+               return;
+-      if ((alc_get_coef0(codec) & 0x00ff) == 0x017)
+-              alc269_toggle_power_output(codec, 0);
+-      if ((alc_get_coef0(codec) & 0x00ff) == 0x018) {
+-              alc269_toggle_power_output(codec, 0);
++      if (spec->codec_variant == ALC269_TYPE_ALC269VB)
++              alc269vb_toggle_power_output(codec, 0);
++      if (spec->codec_variant == ALC269_TYPE_ALC269VB &&
++                      (alc_get_coef0(codec) & 0x00ff) == 0x018) {
+               msleep(150);
+       }
+ }
+@@ -5897,24 +5897,22 @@ static int alc269_resume(struct hda_code
+ {
+       struct alc_spec *spec = codec->spec;
+-      if (spec->codec_variant == ALC269_TYPE_ALC269VB ||
++      if (spec->codec_variant == ALC269_TYPE_ALC269VB)
++              alc269vb_toggle_power_output(codec, 0);
++      if (spec->codec_variant == ALC269_TYPE_ALC269VB &&
+                       (alc_get_coef0(codec) & 0x00ff) == 0x018) {
+-              alc269_toggle_power_output(codec, 0);
+               msleep(150);
+       }
+       codec->patch_ops.init(codec);
+-      if (spec->codec_variant == ALC269_TYPE_ALC269VB ||
++      if (spec->codec_variant == ALC269_TYPE_ALC269VB)
++              alc269vb_toggle_power_output(codec, 1);
++      if (spec->codec_variant == ALC269_TYPE_ALC269VB &&
+                       (alc_get_coef0(codec) & 0x00ff) == 0x017) {
+-              alc269_toggle_power_output(codec, 1);
+               msleep(200);
+       }
+-      if (spec->codec_variant == ALC269_TYPE_ALC269VB ||
+-                      (alc_get_coef0(codec) & 0x00ff) == 0x018)
+-              alc269_toggle_power_output(codec, 1);
+-
+       snd_hda_codec_resume_amp(codec);
+       snd_hda_codec_resume_cache(codec);
+       hda_call_check_power_status(codec, 0x01);
diff --git a/queue-3.6/asoc-core-double-control-update-err-for-snd_soc_put_volsw_sx.patch b/queue-3.6/asoc-core-double-control-update-err-for-snd_soc_put_volsw_sx.patch
new file mode 100644 (file)
index 0000000..002234d
--- /dev/null
@@ -0,0 +1,34 @@
+From d055852ee86703d48b0c571e94bd2eb33aa9b91d Mon Sep 17 00:00:00 2001
+From: Mukund Navada <navada@ti.com>
+Date: Fri, 9 Nov 2012 11:53:40 +0530
+Subject: ASoC: core: Double control update err for snd_soc_put_volsw_sx
+
+From: Mukund Navada <navada@ti.com>
+
+commit d055852ee86703d48b0c571e94bd2eb33aa9b91d upstream.
+
+snd_soc_put_volsw_sx function fails to update second control
+if first control is updated by snd_soc_update_bits_locked.
+
+Signed-off-by: Mukund Navada <navada@ti.com>
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/soc-core.c |    5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/sound/soc/soc-core.c
++++ b/sound/soc/soc-core.c
+@@ -2776,8 +2776,9 @@ int snd_soc_put_volsw_sx(struct snd_kcon
+       val = (ucontrol->value.integer.value[0] + min) & mask;
+       val = val << shift;
+-      if (snd_soc_update_bits_locked(codec, reg, val_mask, val))
+-                      return err;
++      err = snd_soc_update_bits_locked(codec, reg, val_mask, val);
++      if (err < 0)
++              return err;
+       if (snd_soc_volsw_is_stereo(mc)) {
+               val_mask = mask << rshift;
diff --git a/queue-3.6/asoc-cs42l52-fix-the-return-value-of-cs42l52_set_fmt.patch b/queue-3.6/asoc-cs42l52-fix-the-return-value-of-cs42l52_set_fmt.patch
new file mode 100644 (file)
index 0000000..29832b0
--- /dev/null
@@ -0,0 +1,45 @@
+From 5c855c8e2be67f2d5a989ef1190098f924f9f820 Mon Sep 17 00:00:00 2001
+From: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
+Date: Wed, 7 Nov 2012 20:38:35 +0800
+Subject: ASoC: cs42l52: fix the return value of cs42l52_set_fmt()
+
+From: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
+
+commit 5c855c8e2be67f2d5a989ef1190098f924f9f820 upstream.
+
+Fix the return value of cs42l52_set_fmt() when clock inversion is
+not allowed and also remove the useless variable ret.
+
+dpatch engine is used to auto generate this patch.
+(https://github.com/weiyj/dpatch)
+
+[We had been assigning to ret but then ignoring the value we assgined
+-- broonie]
+
+Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/codecs/cs42l52.c |    3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/sound/soc/codecs/cs42l52.c
++++ b/sound/soc/codecs/cs42l52.c
+@@ -774,7 +774,6 @@ static int cs42l52_set_fmt(struct snd_so
+ {
+       struct snd_soc_codec *codec = codec_dai->codec;
+       struct cs42l52_private *cs42l52 = snd_soc_codec_get_drvdata(codec);
+-      int ret = 0;
+       u8 iface = 0;
+       switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
+@@ -823,7 +822,7 @@ static int cs42l52_set_fmt(struct snd_so
+       case SND_SOC_DAIFMT_NB_IF:
+               break;
+       default:
+-              ret = -EINVAL;
++              return -EINVAL;
+       }
+       cs42l52->config.format = iface;
+       snd_soc_write(codec, CS42L52_IFACE_CTL1, cs42l52->config.format);
diff --git a/queue-3.6/asoc-dapm-use-card_list-during-dapm-shutdown.patch b/queue-3.6/asoc-dapm-use-card_list-during-dapm-shutdown.patch
new file mode 100644 (file)
index 0000000..a48cd26
--- /dev/null
@@ -0,0 +1,34 @@
+From 445632ad6dda42f4d3f9df2569a852ca0d4ea608 Mon Sep 17 00:00:00 2001
+From: Misael Lopez Cruz <misael.lopez@ti.com>
+Date: Thu, 8 Nov 2012 12:03:12 -0600
+Subject: ASoC: dapm: Use card_list during DAPM shutdown
+
+From: Misael Lopez Cruz <misael.lopez@ti.com>
+
+commit 445632ad6dda42f4d3f9df2569a852ca0d4ea608 upstream.
+
+DAPM shutdown incorrectly uses "list" field of codec struct while
+iterating over probed components (codec_dev_list). "list" field
+refers to codecs registered in the system, "card_list" field is
+used for probed components.
+
+Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
+Signed-off-by: Liam Girdwood <lrg@ti.com>
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/soc-dapm.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/soc/soc-dapm.c
++++ b/sound/soc/soc-dapm.c
+@@ -3710,7 +3710,7 @@ void snd_soc_dapm_shutdown(struct snd_so
+ {
+       struct snd_soc_codec *codec;
+-      list_for_each_entry(codec, &card->codec_dev_list, list) {
++      list_for_each_entry(codec, &card->codec_dev_list, card_list) {
+               soc_dapm_shutdown_codec(&codec->dapm);
+               if (codec->dapm.bias_level == SND_SOC_BIAS_STANDBY)
+                       snd_soc_dapm_set_bias_level(&codec->dapm,
diff --git a/queue-3.6/asoc-wm8978-pll-incorrectly-configured-when-codec-is-master.patch b/queue-3.6/asoc-wm8978-pll-incorrectly-configured-when-codec-is-master.patch
new file mode 100644 (file)
index 0000000..a2fb3a7
--- /dev/null
@@ -0,0 +1,34 @@
+From 55c6f4cb6ef49afbb86222c6a3ff85329199c729 Mon Sep 17 00:00:00 2001
+From: Eric Millbrandt <emillbrandt@dekaresearch.com>
+Date: Fri, 2 Nov 2012 17:05:44 -0400
+Subject: ASoC: wm8978: pll incorrectly configured when codec is master
+
+From: Eric Millbrandt <emillbrandt@dekaresearch.com>
+
+commit 55c6f4cb6ef49afbb86222c6a3ff85329199c729 upstream.
+
+When MCLK is supplied externally and BCLK and LRC are configured as outputs
+(codec is master), the PLL values are only calculated correctly on the first
+transmission.  On subsequent transmissions, at differenct sample rates, the
+wrong PLL values are used.  Test for f_opclk instead of f_pllout to determine
+if the PLL values are needed.
+
+Signed-off-by: Eric Millbrandt <emillbrandt@dekaresearch.com>
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/codecs/wm8978.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/soc/codecs/wm8978.c
++++ b/sound/soc/codecs/wm8978.c
+@@ -782,7 +782,7 @@ static int wm8978_hw_params(struct snd_p
+               wm8978->mclk_idx = -1;
+               f_sel = wm8978->f_mclk;
+       } else {
+-              if (!wm8978->f_pllout) {
++              if (!wm8978->f_opclk) {
+                       /* We only enter here, if OPCLK is not used */
+                       int ret = wm8978_configure_pll(codec);
+                       if (ret < 0)
diff --git a/queue-3.6/ptp-update-adjfreq-callback-description.patch b/queue-3.6/ptp-update-adjfreq-callback-description.patch
new file mode 100644 (file)
index 0000000..7cde829
--- /dev/null
@@ -0,0 +1,36 @@
+From 87f4d7c1d36f44b0822053b7e5dedc31fdd0ab99 Mon Sep 17 00:00:00 2001
+From: Jacob Keller <jacob.e.keller@intel.com>
+Date: Thu, 1 Nov 2012 12:30:16 +0000
+Subject: ptp: update adjfreq callback description
+
+From: Jacob Keller <jacob.e.keller@intel.com>
+
+commit 87f4d7c1d36f44b0822053b7e5dedc31fdd0ab99 upstream.
+
+This patch updates the adjfreq callback description to include a note that the
+delta in ppb is always relative to the base frequency, and not to the current
+frequency of the hardware clock.
+
+Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
+CC: Richard Cochran <richard.cochran@gmail.com>
+CC: John Stultz <john.stultz@linaro.org>
+Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ include/linux/ptp_clock_kernel.h |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/include/linux/ptp_clock_kernel.h
++++ b/include/linux/ptp_clock_kernel.h
+@@ -50,7 +50,8 @@ struct ptp_clock_request {
+  * clock operations
+  *
+  * @adjfreq:  Adjusts the frequency of the hardware clock.
+- *            parameter delta: Desired period change in parts per billion.
++ *            parameter delta: Desired frequency offset from nominal frequency
++ *            in parts per billion
+  *
+  * @adjtime:  Shifts the time of the hardware clock.
+  *            parameter delta: Desired change in nanoseconds.
index 7d2e724ba8cc12bf1c984ede7369c98ee611a08b..135519fc1c8a92a21b795508878bb712e1def77f 100644 (file)
@@ -14,3 +14,18 @@ cifs-fix-potential-buffer-overrun-in-cifs.idmap-handling-code.patch
 cifs-do-not-lookup-hashed-negative-dentry-in-cifs_atomic_open.patch
 crypto-cryptd-disable-softirqs-in-cryptd_queue_worker-to-prevent-data-corruption.patch
 arm-at91-at91sam9g45-fix-crypto-peripherals-irq-issue-due-to-sparse-irq-support.patch
+ptp-update-adjfreq-callback-description.patch
+alsa-hda-cirrus-fix-coefficient-index-for-beep-configuration.patch
+alsa-hda-fix-digital-microphone-on-cs420x.patch
+alsa-hda-force-to-reset-iec958-status-bits-for-ad-codecs.patch
+alsa-hda-fix-empty-dac-filling-in-patch_via.c.patch
+alsa-hda-fix-invalid-connections-in-vt1802-codec.patch
+alsa-hda-improve-hp-depop-when-system-enter-to-s3.patch
+alsa-hda-add-new-codec-alc668-and-alc900-default-name-alc1150.patch
+alsa-hda-add-a-missing-quirk-entry-for-imac-9-1.patch
+asoc-wm8978-pll-incorrectly-configured-when-codec-is-master.patch
+asoc-cs42l52-fix-the-return-value-of-cs42l52_set_fmt.patch
+asoc-dapm-use-card_list-during-dapm-shutdown.patch
+asoc-core-double-control-update-err-for-snd_soc_put_volsw_sx.patch
+ubifs-fix-mounting-problems-after-power-cuts.patch
+ubifs-introduce-categorized-lprops-counter.patch
diff --git a/queue-3.6/ubifs-fix-mounting-problems-after-power-cuts.patch b/queue-3.6/ubifs-fix-mounting-problems-after-power-cuts.patch
new file mode 100644 (file)
index 0000000..306552a
--- /dev/null
@@ -0,0 +1,60 @@
+From a28ad42a4a0c6f302f488f26488b8b37c9b30024 Mon Sep 17 00:00:00 2001
+From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
+Date: Tue, 9 Oct 2012 16:20:15 +0300
+Subject: UBIFS: fix mounting problems after power cuts
+
+From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
+
+commit a28ad42a4a0c6f302f488f26488b8b37c9b30024 upstream.
+
+This is a bugfix for a problem with the following symptoms:
+
+1. A power cut happens
+2. After reboot, we try to mount UBIFS
+3. Mount fails with "No space left on device" error message
+
+UBIFS complains like this:
+
+UBIFS error (pid 28225): grab_empty_leb: could not find an empty LEB
+
+The root cause of this problem is that when we mount, not all LEBs are
+categorized. Only those which were read are. However, the
+'ubifs_find_free_leb_for_idx()' function assumes that all LEBs were
+categorized and 'c->freeable_cnt' is valid, which is a false assumption.
+
+This patch fixes the problem by teaching 'ubifs_find_free_leb_for_idx()'
+to always fall back to LPT scanning if no freeable LEBs were found.
+
+This problem was reported by few people in the past, but Brent Taylor
+was able to reproduce it and send me a flash image which cannot be mounted,
+which made it easy to hunt the bug. Kudos to Brent.
+
+Reported-by: Brent Taylor <motobud@gmail.com>
+Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/ubifs/find.c |   12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+--- a/fs/ubifs/find.c
++++ b/fs/ubifs/find.c
+@@ -681,8 +681,16 @@ int ubifs_find_free_leb_for_idx(struct u
+       if (!lprops) {
+               lprops = ubifs_fast_find_freeable(c);
+               if (!lprops) {
+-                      ubifs_assert(c->freeable_cnt == 0);
+-                      if (c->lst.empty_lebs - c->lst.taken_empty_lebs > 0) {
++                      /*
++                       * The first condition means the following: go scan the
++                       * LPT if there are uncategorized lprops, which means
++                       * there may be freeable LEBs there (UBIFS does not
++                       * store the information about freeable LEBs in the
++                       * master node).
++                       */
++                      if (c->in_a_category_cnt != c->main_lebs ||
++                          c->lst.empty_lebs - c->lst.taken_empty_lebs > 0) {
++                              ubifs_assert(c->freeable_cnt == 0);
+                               lprops = scan_for_leb_for_idx(c);
+                               if (IS_ERR(lprops)) {
+                                       err = PTR_ERR(lprops);
diff --git a/queue-3.6/ubifs-introduce-categorized-lprops-counter.patch b/queue-3.6/ubifs-introduce-categorized-lprops-counter.patch
new file mode 100644 (file)
index 0000000..8b1ad67
--- /dev/null
@@ -0,0 +1,63 @@
+From 98a1eebda3cb2a84ecf1f219bb3a95769033d1bf Mon Sep 17 00:00:00 2001
+From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
+Date: Wed, 10 Oct 2012 10:55:28 +0300
+Subject: UBIFS: introduce categorized lprops counter
+
+From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
+
+commit 98a1eebda3cb2a84ecf1f219bb3a95769033d1bf upstream.
+
+This commit is a preparation for a subsequent bugfix. We introduce a
+counter for categorized lprops.
+
+Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/ubifs/lprops.c |    6 ++++++
+ fs/ubifs/ubifs.h  |    3 +++
+ 2 files changed, 9 insertions(+)
+
+--- a/fs/ubifs/lprops.c
++++ b/fs/ubifs/lprops.c
+@@ -300,8 +300,11 @@ void ubifs_add_to_cat(struct ubifs_info
+       default:
+               ubifs_assert(0);
+       }
++
+       lprops->flags &= ~LPROPS_CAT_MASK;
+       lprops->flags |= cat;
++      c->in_a_category_cnt += 1;
++      ubifs_assert(c->in_a_category_cnt <= c->main_lebs);
+ }
+ /**
+@@ -334,6 +337,9 @@ static void ubifs_remove_from_cat(struct
+       default:
+               ubifs_assert(0);
+       }
++
++      c->in_a_category_cnt -= 1;
++      ubifs_assert(c->in_a_category_cnt >= 0);
+ }
+ /**
+--- a/fs/ubifs/ubifs.h
++++ b/fs/ubifs/ubifs.h
+@@ -1184,6 +1184,8 @@ struct ubifs_debug_info;
+  * @freeable_list: list of freeable non-index LEBs (free + dirty == @leb_size)
+  * @frdi_idx_list: list of freeable index LEBs (free + dirty == @leb_size)
+  * @freeable_cnt: number of freeable LEBs in @freeable_list
++ * @in_a_category_cnt: count of lprops which are in a certain category, which
++ *                     basically meants that they were loaded from the flash
+  *
+  * @ltab_lnum: LEB number of LPT's own lprops table
+  * @ltab_offs: offset of LPT's own lprops table
+@@ -1413,6 +1415,7 @@ struct ubifs_info {
+       struct list_head freeable_list;
+       struct list_head frdi_idx_list;
+       int freeable_cnt;
++      int in_a_category_cnt;
+       int ltab_lnum;
+       int ltab_offs;