]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.7-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 15 Jan 2013 01:18:39 +0000 (17:18 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 15 Jan 2013 01:18:39 +0000 (17:18 -0800)
added patches:
alsa-hda-disable-runtime-d3-for-intel-cpt-co.patch
alsa-pxa27x-fix-ac97-cold-reset.patch
alsa-pxa27x-fix-ac97-warm-reset.patch
asoc-pcm-allow-backend-hardware-to-be-freed-in-pause-state.patch
asoc-sta529-fix-update-register-bits-in-sta529_set_dai_fmt.patch
asoc-wm2000-fix-sense-of-speech-clarity-enable.patch
asoc-wm2200-fix-setting-dai-format-in-wm2200_set_fmt.patch
asoc-wm2200-remove-dsp-b-and-left-justified-aif-modes.patch
asoc-wm5100-remove-dsp-b-and-left-justified-formats.patch
revert-alsa-hda-shut-up-pins-at-power-saving-mode-with-conexnat-codecs.patch
udldrmfb-fix-edid-not-working-with-monitors-with-edid.patch
udldrmfb-udl_get_edid-drop-unneeded-i.patch
udldrmfb-udl_get_edid-usb_control_msg-buffer-must-not-be-on-the-stack.patch
vfs-add-missing-virtual-cache-flush-after-editing-partial-pages.patch

15 files changed:
queue-3.7/alsa-hda-disable-runtime-d3-for-intel-cpt-co.patch [new file with mode: 0644]
queue-3.7/alsa-pxa27x-fix-ac97-cold-reset.patch [new file with mode: 0644]
queue-3.7/alsa-pxa27x-fix-ac97-warm-reset.patch [new file with mode: 0644]
queue-3.7/asoc-pcm-allow-backend-hardware-to-be-freed-in-pause-state.patch [new file with mode: 0644]
queue-3.7/asoc-sta529-fix-update-register-bits-in-sta529_set_dai_fmt.patch [new file with mode: 0644]
queue-3.7/asoc-wm2000-fix-sense-of-speech-clarity-enable.patch [new file with mode: 0644]
queue-3.7/asoc-wm2200-fix-setting-dai-format-in-wm2200_set_fmt.patch [new file with mode: 0644]
queue-3.7/asoc-wm2200-remove-dsp-b-and-left-justified-aif-modes.patch [new file with mode: 0644]
queue-3.7/asoc-wm5100-remove-dsp-b-and-left-justified-formats.patch [new file with mode: 0644]
queue-3.7/revert-alsa-hda-shut-up-pins-at-power-saving-mode-with-conexnat-codecs.patch [new file with mode: 0644]
queue-3.7/series
queue-3.7/udldrmfb-fix-edid-not-working-with-monitors-with-edid.patch [new file with mode: 0644]
queue-3.7/udldrmfb-udl_get_edid-drop-unneeded-i.patch [new file with mode: 0644]
queue-3.7/udldrmfb-udl_get_edid-usb_control_msg-buffer-must-not-be-on-the-stack.patch [new file with mode: 0644]
queue-3.7/vfs-add-missing-virtual-cache-flush-after-editing-partial-pages.patch [new file with mode: 0644]

diff --git a/queue-3.7/alsa-hda-disable-runtime-d3-for-intel-cpt-co.patch b/queue-3.7/alsa-hda-disable-runtime-d3-for-intel-cpt-co.patch
new file mode 100644 (file)
index 0000000..678c86f
--- /dev/null
@@ -0,0 +1,57 @@
+From d7dab4dbbb2d1b0c903378d6bade2e4ae161804e Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Tue, 8 Jan 2013 13:51:30 +0100
+Subject: ALSA: hda - Disable runtime D3 for Intel CPT & co
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit d7dab4dbbb2d1b0c903378d6bade2e4ae161804e upstream.
+
+We've got a few bug reports that the runtime D3 results in the dead
+HD-audio controller.  It seems that the problem is in a deeper level
+than the sound driver itself, so as a temporal solution, disable the
+feature for these controllers again.
+
+Reported-and-tested-by: Vincent Blut <vincent.debian@free.fr>
+Reported-and-tested-by: Maurizio Avogadro <mavoga@gmail.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/hda_intel.c |   13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -559,9 +559,12 @@ enum {
+ #define AZX_DCAPS_PM_RUNTIME  (1 << 26)       /* runtime PM support */
+ /* quirks for Intel PCH */
+-#define AZX_DCAPS_INTEL_PCH \
++#define AZX_DCAPS_INTEL_PCH_NOPM \
+       (AZX_DCAPS_SCH_SNOOP | AZX_DCAPS_BUFSIZE | \
+-       AZX_DCAPS_COUNT_LPIB_DELAY | AZX_DCAPS_PM_RUNTIME)
++       AZX_DCAPS_COUNT_LPIB_DELAY)
++
++#define AZX_DCAPS_INTEL_PCH \
++      (AZX_DCAPS_INTEL_PCH_NOPM | AZX_DCAPS_PM_RUNTIME)
+ /* quirks for ATI SB / AMD Hudson */
+ #define AZX_DCAPS_PRESET_ATI_SB \
+@@ -3448,13 +3451,13 @@ static void __devexit azx_remove(struct
+ static DEFINE_PCI_DEVICE_TABLE(azx_ids) = {
+       /* CPT */
+       { PCI_DEVICE(0x8086, 0x1c20),
+-        .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH },
++        .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH_NOPM },
+       /* PBG */
+       { PCI_DEVICE(0x8086, 0x1d20),
+-        .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH },
++        .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH_NOPM },
+       /* Panther Point */
+       { PCI_DEVICE(0x8086, 0x1e20),
+-        .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH },
++        .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH_NOPM },
+       /* Lynx Point */
+       { PCI_DEVICE(0x8086, 0x8c20),
+         .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH },
diff --git a/queue-3.7/alsa-pxa27x-fix-ac97-cold-reset.patch b/queue-3.7/alsa-pxa27x-fix-ac97-cold-reset.patch
new file mode 100644 (file)
index 0000000..e6d0057
--- /dev/null
@@ -0,0 +1,54 @@
+From 41b645c8624df6ace020a8863ad1449d69140f7d Mon Sep 17 00:00:00 2001
+From: Mike Dunn <mikedunn@newsguy.com>
+Date: Mon, 7 Jan 2013 13:55:12 -0800
+Subject: ALSA: pxa27x: fix ac97 cold reset
+
+From: Mike Dunn <mikedunn@newsguy.com>
+
+commit 41b645c8624df6ace020a8863ad1449d69140f7d upstream.
+
+Cold reset on the pxa27x currently fails and
+
+     pxa2xx_ac97_try_cold_reset: cold reset timeout (GSR=0x44)
+
+appears in the kernel log.  Through trial-and-error (the pxa270 developer's
+manual is mostly incoherent on the topic of ac97 reset), I got cold reset to
+complete by setting the WARM_RST bit in the GCR register (and later noticed that
+pxa3xx does this for cold reset as well).  Also, a timeout loop is needed to
+wait for the reset to complete.
+
+Tested on a palm treo 680 machine.
+
+Signed-off-by: Mike Dunn <mikedunn@newsguy.com>
+Acked-by: Igor Grinberg <grinberg@compulab.co.il>
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/arm/pxa2xx-ac97-lib.c |    8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+--- a/sound/arm/pxa2xx-ac97-lib.c
++++ b/sound/arm/pxa2xx-ac97-lib.c
+@@ -148,6 +148,8 @@ static inline void pxa_ac97_warm_pxa27x(
+ static inline void pxa_ac97_cold_pxa27x(void)
+ {
++      unsigned int timeout;
++
+       GCR &=  GCR_COLD_RST;  /* clear everything but nCRST */
+       GCR &= ~GCR_COLD_RST;  /* then assert nCRST */
+@@ -157,8 +159,10 @@ static inline void pxa_ac97_cold_pxa27x(
+       clk_enable(ac97conf_clk);
+       udelay(5);
+       clk_disable(ac97conf_clk);
+-      GCR = GCR_COLD_RST;
+-      udelay(50);
++      GCR = GCR_COLD_RST | GCR_WARM_RST;
++      timeout = 100;     /* wait for the codec-ready bit to be set */
++      while (!((GSR | gsr_bits) & (GSR_PCR | GSR_SCR)) && timeout--)
++              mdelay(1);
+ }
+ #endif
diff --git a/queue-3.7/alsa-pxa27x-fix-ac97-warm-reset.patch b/queue-3.7/alsa-pxa27x-fix-ac97-warm-reset.patch
new file mode 100644 (file)
index 0000000..8c06d51
--- /dev/null
@@ -0,0 +1,104 @@
+From 3b4bc7bccc7857274705b05cf81a0c72cfd0b0dd Mon Sep 17 00:00:00 2001
+From: Mike Dunn <mikedunn@newsguy.com>
+Date: Mon, 7 Jan 2013 13:55:13 -0800
+Subject: ALSA: pxa27x: fix ac97 warm reset
+
+From: Mike Dunn <mikedunn@newsguy.com>
+
+commit 3b4bc7bccc7857274705b05cf81a0c72cfd0b0dd upstream.
+
+This patch fixes some code that implements a work-around to a hardware bug in
+the ac97 controller on the pxa27x.  A bug in the controller's warm reset
+functionality requires that the mfp used by the controller as the AC97_nRESET
+line be temporarily reconfigured as a generic output gpio (AF0) and manually
+held high for the duration of the warm reset cycle.  This is what was done in
+the original code, but it was broken long ago by commit fb1bf8cd
+    ([ARM] pxa: introduce processor specific pxa27x_assert_ac97reset())
+which changed the mfp to a GPIO input instead of a high output.
+
+The fix requires the ac97 controller to obtain the gpio via gpio_request_one(),
+with arguments that configure the gpio as an output initially driven high.
+
+Tested on a palm treo 680 machine.  Reportedly, this broken code only prevents a
+warm reset on hardware that lacks a pull-up on the line, which appears to be the
+case for me.
+
+Signed-off-by: Mike Dunn <mikedunn@newsguy.com>
+Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/mach-pxa/include/mach/mfp-pxa27x.h |    3 +++
+ arch/arm/mach-pxa/pxa27x.c                  |    4 ++--
+ sound/arm/pxa2xx-ac97-lib.c                 |   18 +++++++++++++++++-
+ 3 files changed, 22 insertions(+), 3 deletions(-)
+
+--- a/arch/arm/mach-pxa/include/mach/mfp-pxa27x.h
++++ b/arch/arm/mach-pxa/include/mach/mfp-pxa27x.h
+@@ -463,6 +463,9 @@
+       GPIO76_LCD_PCLK,        \
+       GPIO77_LCD_BIAS
++/* these enable a work-around for a hw bug in pxa27x during ac97 warm reset */
++#define GPIO113_AC97_nRESET_GPIO_HIGH MFP_CFG_OUT(GPIO113, AF0, DEFAULT)
++#define GPIO95_AC97_nRESET_GPIO_HIGH MFP_CFG_OUT(GPIO95, AF0, DEFAULT)
+ extern int keypad_set_wake(unsigned int on);
+ #endif /* __ASM_ARCH_MFP_PXA27X_H */
+--- a/arch/arm/mach-pxa/pxa27x.c
++++ b/arch/arm/mach-pxa/pxa27x.c
+@@ -47,9 +47,9 @@ void pxa27x_clear_otgph(void)
+ EXPORT_SYMBOL(pxa27x_clear_otgph);
+ static unsigned long ac97_reset_config[] = {
+-      GPIO113_GPIO,
++      GPIO113_AC97_nRESET_GPIO_HIGH,
+       GPIO113_AC97_nRESET,
+-      GPIO95_GPIO,
++      GPIO95_AC97_nRESET_GPIO_HIGH,
+       GPIO95_AC97_nRESET,
+ };
+--- a/sound/arm/pxa2xx-ac97-lib.c
++++ b/sound/arm/pxa2xx-ac97-lib.c
+@@ -18,6 +18,7 @@
+ #include <linux/delay.h>
+ #include <linux/module.h>
+ #include <linux/io.h>
++#include <linux/gpio.h>
+ #include <sound/ac97_codec.h>
+ #include <sound/pxa2xx-lib.h>
+@@ -344,8 +345,21 @@ int __devinit pxa2xx_ac97_hw_probe(struc
+       }
+       if (cpu_is_pxa27x()) {
+-              /* Use GPIO 113 as AC97 Reset on Bulverde */
++              /*
++               * This gpio is needed for a work-around to a bug in the ac97
++               * controller during warm reset.  The direction and level is set
++               * here so that it is an output driven high when switching from
++               * AC97_nRESET alt function to generic gpio.
++               */
++              ret = gpio_request_one(reset_gpio, GPIOF_OUT_INIT_HIGH,
++                                     "pxa27x ac97 reset");
++              if (ret < 0) {
++                      pr_err("%s: gpio_request_one() failed: %d\n",
++                             __func__, ret);
++                      goto err_conf;
++              }
+               pxa27x_assert_ac97reset(reset_gpio, 0);
++
+               ac97conf_clk = clk_get(&dev->dev, "AC97CONFCLK");
+               if (IS_ERR(ac97conf_clk)) {
+                       ret = PTR_ERR(ac97conf_clk);
+@@ -388,6 +402,8 @@ EXPORT_SYMBOL_GPL(pxa2xx_ac97_hw_probe);
+ void pxa2xx_ac97_hw_remove(struct platform_device *dev)
+ {
++      if (cpu_is_pxa27x())
++              gpio_free(reset_gpio);
+       GCR |= GCR_ACLINK_OFF;
+       free_irq(IRQ_AC97, NULL);
+       if (ac97conf_clk) {
diff --git a/queue-3.7/asoc-pcm-allow-backend-hardware-to-be-freed-in-pause-state.patch b/queue-3.7/asoc-pcm-allow-backend-hardware-to-be-freed-in-pause-state.patch
new file mode 100644 (file)
index 0000000..eb2b069
--- /dev/null
@@ -0,0 +1,35 @@
+From 08b27848da620f206a8b6d80f26184485dd7aa40 Mon Sep 17 00:00:00 2001
+From: Patrick Lai <plai@codeaurora.org>
+Date: Wed, 19 Dec 2012 19:36:02 -0800
+Subject: ASoC: pcm: allow backend hardware to be freed in pause state
+
+From: Patrick Lai <plai@codeaurora.org>
+
+commit 08b27848da620f206a8b6d80f26184485dd7aa40 upstream.
+
+When front-end PCM session is in paused state, back-end
+PCM session will be put in paused state as well if given
+front-end PCM session is the only client of given back-end.
+Then, application closes front-end PCM session, DPCM
+framework will not allow back-end enters HW_FREE state
+so back-end will never get shutdown completely.
+
+Signed-off-by: Patrick Lai <plai@codeaurora.org>
+Acked-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-pcm.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/soc/soc-pcm.c
++++ b/sound/soc/soc-pcm.c
+@@ -1240,6 +1240,7 @@ static int dpcm_be_dai_hw_free(struct sn
+               if ((be->dpcm[stream].state != SND_SOC_DPCM_STATE_HW_PARAMS) &&
+                   (be->dpcm[stream].state != SND_SOC_DPCM_STATE_PREPARE) &&
+                   (be->dpcm[stream].state != SND_SOC_DPCM_STATE_HW_FREE) &&
++                  (be->dpcm[stream].state != SND_SOC_DPCM_STATE_PAUSED) &&
+                   (be->dpcm[stream].state != SND_SOC_DPCM_STATE_STOP))
+                       continue;
diff --git a/queue-3.7/asoc-sta529-fix-update-register-bits-in-sta529_set_dai_fmt.patch b/queue-3.7/asoc-sta529-fix-update-register-bits-in-sta529_set_dai_fmt.patch
new file mode 100644 (file)
index 0000000..505128b
--- /dev/null
@@ -0,0 +1,61 @@
+From ad1937cdd59c412097ec2bb8f38c12a5640f1f9a Mon Sep 17 00:00:00 2001
+From: Axel Lin <axel.lin@ingics.com>
+Date: Thu, 20 Dec 2012 16:17:25 +0800
+Subject: ASoC: sta529: Fix update register bits in sta529_set_dai_fmt
+
+From: Axel Lin <axel.lin@ingics.com>
+
+commit ad1937cdd59c412097ec2bb8f38c12a5640f1f9a upstream.
+
+Both the mask and mode settings are wrong in current code.
+
+According to the datasheet:
+
+S2PCFG0 (0x0A)
+BIT[3:1] DATA_FORMAT
+        serial interface protocol format:
+        000: left Justified
+        001: I2S (default)
+        010: right justified
+        100: PCM no delay
+        101: PCM delay
+        111: DSP
+
+Thus fixes the defines for LEFT_J_DATA_FORMAT, I2S_DATA_FORMAT, and
+RIGHT_J_DATA_FORMAT.
+Also adds define for DATA_FORMAT_MSK.
+
+Signed-off-by: Axel Lin <axel.lin@ingics.com>
+Acked-by: Rajeev Kumar <rajeev-dlh.kumar@st.com>
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/codecs/sta529.c |    9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+--- a/sound/soc/codecs/sta529.c
++++ b/sound/soc/codecs/sta529.c
+@@ -74,9 +74,10 @@
+                               SNDRV_PCM_FMTBIT_S32_LE)
+ #define       S2PC_VALUE              0x98
+ #define CLOCK_OUT             0x60
+-#define LEFT_J_DATA_FORMAT    0x10
+-#define I2S_DATA_FORMAT               0x12
+-#define RIGHT_J_DATA_FORMAT   0x14
++#define DATA_FORMAT_MSK               0x0E
++#define LEFT_J_DATA_FORMAT    0x00
++#define I2S_DATA_FORMAT               0x02
++#define RIGHT_J_DATA_FORMAT   0x04
+ #define CODEC_MUTE_VAL                0x80
+ #define POWER_CNTLMSAK                0x40
+@@ -289,7 +290,7 @@ static int sta529_set_dai_fmt(struct snd
+               return -EINVAL;
+       }
+-      snd_soc_update_bits(codec, STA529_S2PCFG0, 0x0D, mode);
++      snd_soc_update_bits(codec, STA529_S2PCFG0, DATA_FORMAT_MSK, mode);
+       return 0;
+ }
diff --git a/queue-3.7/asoc-wm2000-fix-sense-of-speech-clarity-enable.patch b/queue-3.7/asoc-wm2000-fix-sense-of-speech-clarity-enable.patch
new file mode 100644 (file)
index 0000000..68e25f9
--- /dev/null
@@ -0,0 +1,30 @@
+From 267f8fa2e1eef0612b2007e1f1846bcbc35cc1fa Mon Sep 17 00:00:00 2001
+From: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Date: Fri, 4 Jan 2013 21:18:12 +0000
+Subject: ASoC: wm2000: Fix sense of speech clarity enable
+
+From: Mark Brown <broonie@opensource.wolfsonmicro.com>
+
+commit 267f8fa2e1eef0612b2007e1f1846bcbc35cc1fa upstream.
+
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/codecs/wm2000.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/sound/soc/codecs/wm2000.c
++++ b/sound/soc/codecs/wm2000.c
+@@ -209,9 +209,9 @@ static int wm2000_power_up(struct i2c_cl
+       ret = wm2000_read(i2c, WM2000_REG_SPEECH_CLARITY);
+       if (wm2000->speech_clarity)
+-              ret &= ~WM2000_SPEECH_CLARITY;
+-      else
+               ret |= WM2000_SPEECH_CLARITY;
++      else
++              ret &= ~WM2000_SPEECH_CLARITY;
+       wm2000_write(i2c, WM2000_REG_SPEECH_CLARITY, ret);
+       wm2000_write(i2c, WM2000_REG_SYS_START0, 0x33);
diff --git a/queue-3.7/asoc-wm2200-fix-setting-dai-format-in-wm2200_set_fmt.patch b/queue-3.7/asoc-wm2200-fix-setting-dai-format-in-wm2200_set_fmt.patch
new file mode 100644 (file)
index 0000000..4d2fcca
--- /dev/null
@@ -0,0 +1,35 @@
+From 2a5f431592343b78896013b055582f94c12a5049 Mon Sep 17 00:00:00 2001
+From: Axel Lin <axel.lin@ingics.com>
+Date: Fri, 21 Dec 2012 16:28:37 +0800
+Subject: ASoC: wm2200: Fix setting dai format in wm2200_set_fmt
+
+From: Axel Lin <axel.lin@ingics.com>
+
+commit 2a5f431592343b78896013b055582f94c12a5049 upstream.
+
+According to the defines in wm2200.h:
+/*
+ * R1284 (0x504) - Audio IF 1_5
+ */
+
+We should not left shift 1 bit for fmt_val when setting dai format.
+
+Signed-off-by: Axel Lin <axel.lin@ingics.com>
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/codecs/wm2200.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/soc/codecs/wm2200.c
++++ b/sound/soc/codecs/wm2200.c
+@@ -1440,7 +1440,7 @@ static int wm2200_set_fmt(struct snd_soc
+                           WM2200_AIF1TX_LRCLK_MSTR | WM2200_AIF1TX_LRCLK_INV,
+                           lrclk);
+       snd_soc_update_bits(codec, WM2200_AUDIO_IF_1_5,
+-                          WM2200_AIF1_FMT_MASK << 1, fmt_val << 1);
++                          WM2200_AIF1_FMT_MASK, fmt_val);
+       return 0;
+ }
diff --git a/queue-3.7/asoc-wm2200-remove-dsp-b-and-left-justified-aif-modes.patch b/queue-3.7/asoc-wm2200-remove-dsp-b-and-left-justified-aif-modes.patch
new file mode 100644 (file)
index 0000000..2d79b3e
--- /dev/null
@@ -0,0 +1,36 @@
+From 0cc411b934c4317b363d1af993549f391852b980 Mon Sep 17 00:00:00 2001
+From: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Date: Fri, 4 Jan 2013 10:48:10 +0000
+Subject: ASoC: wm2200: Remove DSP B and left justified AIF modes
+
+From: Mark Brown <broonie@opensource.wolfsonmicro.com>
+
+commit 0cc411b934c4317b363d1af993549f391852b980 upstream.
+
+These are not supported.
+
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/codecs/wm2200.c |    6 ------
+ 1 file changed, 6 deletions(-)
+
+--- a/sound/soc/codecs/wm2200.c
++++ b/sound/soc/codecs/wm2200.c
+@@ -1380,15 +1380,9 @@ static int wm2200_set_fmt(struct snd_soc
+       case SND_SOC_DAIFMT_DSP_A:
+               fmt_val = 0;
+               break;
+-      case SND_SOC_DAIFMT_DSP_B:
+-              fmt_val = 1;
+-              break;
+       case SND_SOC_DAIFMT_I2S:
+               fmt_val = 2;
+               break;
+-      case SND_SOC_DAIFMT_LEFT_J:
+-              fmt_val = 3;
+-              break;
+       default:
+               dev_err(codec->dev, "Unsupported DAI format %d\n",
+                       fmt & SND_SOC_DAIFMT_FORMAT_MASK);
diff --git a/queue-3.7/asoc-wm5100-remove-dsp-b-and-left-justified-formats.patch b/queue-3.7/asoc-wm5100-remove-dsp-b-and-left-justified-formats.patch
new file mode 100644 (file)
index 0000000..e685000
--- /dev/null
@@ -0,0 +1,36 @@
+From 5f960294e2031d12f10c8488c3446fecbf59628d Mon Sep 17 00:00:00 2001
+From: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Date: Fri, 4 Jan 2013 21:06:08 +0000
+Subject: ASoC: wm5100: Remove DSP B and left justified formats
+
+From: Mark Brown <broonie@opensource.wolfsonmicro.com>
+
+commit 5f960294e2031d12f10c8488c3446fecbf59628d upstream.
+
+These are not supported
+
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/codecs/wm5100.c |    6 ------
+ 1 file changed, 6 deletions(-)
+
+--- a/sound/soc/codecs/wm5100.c
++++ b/sound/soc/codecs/wm5100.c
+@@ -1279,15 +1279,9 @@ static int wm5100_set_fmt(struct snd_soc
+       case SND_SOC_DAIFMT_DSP_A:
+               mask = 0;
+               break;
+-      case SND_SOC_DAIFMT_DSP_B:
+-              mask = 1;
+-              break;
+       case SND_SOC_DAIFMT_I2S:
+               mask = 2;
+               break;
+-      case SND_SOC_DAIFMT_LEFT_J:
+-              mask = 3;
+-              break;
+       default:
+               dev_err(codec->dev, "Unsupported DAI format %d\n",
+                       fmt & SND_SOC_DAIFMT_FORMAT_MASK);
diff --git a/queue-3.7/revert-alsa-hda-shut-up-pins-at-power-saving-mode-with-conexnat-codecs.patch b/queue-3.7/revert-alsa-hda-shut-up-pins-at-power-saving-mode-with-conexnat-codecs.patch
new file mode 100644 (file)
index 0000000..5f9f1f2
--- /dev/null
@@ -0,0 +1,63 @@
+From 7ed4165e2d01bdbbb4c1086eb73eadf0f64cbbf0 Mon Sep 17 00:00:00 2001
+From: David Henningsson <david.henningsson@canonical.com>
+Date: Wed, 19 Dec 2012 09:44:47 +0100
+Subject: Revert "ALSA: hda - Shut up pins at power-saving mode with Conexnat codecs"
+
+From: David Henningsson <david.henningsson@canonical.com>
+
+commit 7ed4165e2d01bdbbb4c1086eb73eadf0f64cbbf0 upstream.
+
+This reverts commit 697c373e34613609cb5450f98b91fefb6e910588.
+
+The original patch was meant to remove clicking, but in fact caused even
+more clicking instead.
+
+Thanks to c4pp4 for doing most of the work with this bug.
+
+BugLink: https://bugs.launchpad.net/bugs/886975
+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_conexant.c |   16 ----------------
+ 1 file changed, 16 deletions(-)
+
+--- a/sound/pci/hda/patch_conexant.c
++++ b/sound/pci/hda/patch_conexant.c
+@@ -553,24 +553,12 @@ static int conexant_build_controls(struc
+       return 0;
+ }
+-#ifdef CONFIG_PM
+-static int conexant_suspend(struct hda_codec *codec)
+-{
+-      snd_hda_shutup_pins(codec);
+-      return 0;
+-}
+-#endif
+-
+ static const struct hda_codec_ops conexant_patch_ops = {
+       .build_controls = conexant_build_controls,
+       .build_pcms = conexant_build_pcms,
+       .init = conexant_init,
+       .free = conexant_free,
+       .set_power_state = conexant_set_power,
+-#ifdef CONFIG_PM
+-      .suspend = conexant_suspend,
+-#endif
+-      .reboot_notify = snd_hda_shutup_pins,
+ };
+ #ifdef CONFIG_SND_HDA_INPUT_BEEP
+@@ -4393,10 +4381,6 @@ static const struct hda_codec_ops cx_aut
+       .init = cx_auto_init,
+       .free = conexant_free,
+       .unsol_event = snd_hda_jack_unsol_event,
+-#ifdef CONFIG_PM
+-      .suspend = conexant_suspend,
+-#endif
+-      .reboot_notify = snd_hda_shutup_pins,
+ };
+ /*
index ded25ac2ddb5a67c67115a78bf73acea9453c1bd..2ac8ad667c91138636a6be5c5c170c3baedc320a 100644 (file)
@@ -123,3 +123,17 @@ hid-add-quirk-for-freescale-i.mx23-rom-recovery.patch
 asoc-arizona-correct-fll-source-definitions.patch
 asoc-arizona-do-proper-shift-for-setting-aif-rate.patch
 asoc-arizona-remove-dsp-b-and-left-justified-aif-modes.patch
+asoc-wm2000-fix-sense-of-speech-clarity-enable.patch
+asoc-wm2200-fix-setting-dai-format-in-wm2200_set_fmt.patch
+asoc-wm2200-remove-dsp-b-and-left-justified-aif-modes.patch
+asoc-sta529-fix-update-register-bits-in-sta529_set_dai_fmt.patch
+asoc-pcm-allow-backend-hardware-to-be-freed-in-pause-state.patch
+asoc-wm5100-remove-dsp-b-and-left-justified-formats.patch
+udldrmfb-fix-edid-not-working-with-monitors-with-edid.patch
+udldrmfb-udl_get_edid-usb_control_msg-buffer-must-not-be-on-the-stack.patch
+udldrmfb-udl_get_edid-drop-unneeded-i.patch
+vfs-add-missing-virtual-cache-flush-after-editing-partial-pages.patch
+revert-alsa-hda-shut-up-pins-at-power-saving-mode-with-conexnat-codecs.patch
+alsa-hda-disable-runtime-d3-for-intel-cpt-co.patch
+alsa-pxa27x-fix-ac97-cold-reset.patch
+alsa-pxa27x-fix-ac97-warm-reset.patch
diff --git a/queue-3.7/udldrmfb-fix-edid-not-working-with-monitors-with-edid.patch b/queue-3.7/udldrmfb-fix-edid-not-working-with-monitors-with-edid.patch
new file mode 100644 (file)
index 0000000..faa97ad
--- /dev/null
@@ -0,0 +1,45 @@
+From c930812fe5ebe725760422c9c351d1f6fde1502d Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Fri, 11 Jan 2013 12:08:56 +0100
+Subject: udldrmfb: Fix EDID not working with monitors with EDID
+ extension blocks
+
+From: Hans de Goede <hdegoede@redhat.com>
+
+commit c930812fe5ebe725760422c9c351d1f6fde1502d upstream.
+
+udldrmfb only reads the main EDID block, and if that advertises extensions
+the drm_edid code expects them to be present, and starts reading beyond the
+buffer udldrmfb passes it.
+
+Although it may be possible to read more EDID info with the udl we simpy don't
+know how, and even if trial and error gets it working on one device, that is
+no guarantee it will work on other revisions. So this patch does a simple fix
+in the form of patching the EDID info to report 0 extension blocks, this
+fixes udldrmfb only doing 1024x768 on monitors with EDID extension blocks.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Dave Airlie <airlied@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/udl/udl_connector.c |    8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/drivers/gpu/drm/udl/udl_connector.c
++++ b/drivers/gpu/drm/udl/udl_connector.c
+@@ -57,6 +57,14 @@ static int udl_get_modes(struct drm_conn
+       edid = (struct edid *)udl_get_edid(udl);
++      /*
++       * We only read the main block, but if the monitor reports extension
++       * blocks then the drm edid code expects them to be present, so patch
++       * the extension count to 0.
++       */
++      edid->checksum += edid->extensions;
++      edid->extensions = 0;
++
+       drm_mode_connector_update_edid_property(connector, edid);
+       ret = drm_add_edid_modes(connector, edid);
+       kfree(edid);
diff --git a/queue-3.7/udldrmfb-udl_get_edid-drop-unneeded-i.patch b/queue-3.7/udldrmfb-udl_get_edid-drop-unneeded-i.patch
new file mode 100644 (file)
index 0000000..0bc9829
--- /dev/null
@@ -0,0 +1,30 @@
+From 7b4cf994e4c6ba48872bb25253cc393b7fb74c82 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Fri, 11 Jan 2013 12:08:58 +0100
+Subject: udldrmfb: udl_get_edid: drop unneeded i--
+
+From: Hans de Goede <hdegoede@redhat.com>
+
+commit 7b4cf994e4c6ba48872bb25253cc393b7fb74c82 upstream.
+
+This is a left-over from when udl_get_edid returned the amount of bytes
+successfully read, which it no longer does.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Dave Airlie <airlied@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/udl/udl_connector.c |    1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/drivers/gpu/drm/udl/udl_connector.c
++++ b/drivers/gpu/drm/udl/udl_connector.c
+@@ -40,7 +40,6 @@ static u8 *udl_get_edid(struct udl_devic
+                                     HZ);
+               if (ret < 1) {
+                       DRM_ERROR("Read EDID byte %d failed err %x\n", i, ret);
+-                      i--;
+                       goto error;
+               }
+               block[i] = rbuf[1];
diff --git a/queue-3.7/udldrmfb-udl_get_edid-usb_control_msg-buffer-must-not-be-on-the-stack.patch b/queue-3.7/udldrmfb-udl_get_edid-usb_control_msg-buffer-must-not-be-on-the-stack.patch
new file mode 100644 (file)
index 0000000..1a1577a
--- /dev/null
@@ -0,0 +1,55 @@
+From 242187b362555849e8c971dfbbfd55f8bd9fa717 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Fri, 11 Jan 2013 12:08:57 +0100
+Subject: udldrmfb: udl_get_edid: usb_control_msg buffer must not be on the stack
+
+From: Hans de Goede <hdegoede@redhat.com>
+
+commit 242187b362555849e8c971dfbbfd55f8bd9fa717 upstream.
+
+The buffer passed to usb_control_msg may end up in scatter-gather list, and
+may thus not be on the stack. Having it on the stack usually works on x86, but
+not on other archs.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Dave Airlie <airlied@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/udl/udl_connector.c |    8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/udl/udl_connector.c
++++ b/drivers/gpu/drm/udl/udl_connector.c
+@@ -22,13 +22,17 @@
+ static u8 *udl_get_edid(struct udl_device *udl)
+ {
+       u8 *block;
+-      char rbuf[3];
++      char *rbuf;
+       int ret, i;
+       block = kmalloc(EDID_LENGTH, GFP_KERNEL);
+       if (block == NULL)
+               return NULL;
++      rbuf = kmalloc(2, GFP_KERNEL);
++      if (rbuf == NULL)
++              goto error;
++
+       for (i = 0; i < EDID_LENGTH; i++) {
+               ret = usb_control_msg(udl->ddev->usbdev,
+                                     usb_rcvctrlpipe(udl->ddev->usbdev, 0), (0x02),
+@@ -42,10 +46,12 @@ static u8 *udl_get_edid(struct udl_devic
+               block[i] = rbuf[1];
+       }
++      kfree(rbuf);
+       return block;
+ error:
+       kfree(block);
++      kfree(rbuf);
+       return NULL;
+ }
diff --git a/queue-3.7/vfs-add-missing-virtual-cache-flush-after-editing-partial-pages.patch b/queue-3.7/vfs-add-missing-virtual-cache-flush-after-editing-partial-pages.patch
new file mode 100644 (file)
index 0000000..9f929b9
--- /dev/null
@@ -0,0 +1,49 @@
+From 6d283dba3721cc43be014b50a1acc2f35860a65a Mon Sep 17 00:00:00 2001
+From: Linus Torvalds <torvalds@linux-foundation.org>
+Date: Mon, 14 Jan 2013 13:17:50 -0800
+Subject: vfs: add missing virtual cache flush after editing partial pages
+
+From: Linus Torvalds <torvalds@linux-foundation.org>
+
+commit 6d283dba3721cc43be014b50a1acc2f35860a65a upstream.
+
+Andrew Morton pointed this out a month ago, and then I completely forgot
+about it.
+
+If we read a partial last page of a block device, we will zero out the
+end of the page, but since that page can then be mapped into user space,
+we should also make sure to flush the cache on architectures that have
+virtual caches.  We have the flush_dcache_page() function for this, so
+use it.
+
+Now, in practice this really never matters, because nobody sane uses
+virtual caches to begin with, and they largely exist on old broken RISC
+arhitectures.
+
+And even if you did run on one of those obsolete CPU's, the whole "mmap
+and access the last partial page of a block device" behavior probably
+doesn't actually exist.  The normal IO functions (read/write) will never
+see the zeroed-out part of the page that migth not be coherent in the
+cache, because they honor the size of the device.
+
+So I'm marking this for stable (3.7 only), but I'm not sure anybody will
+ever care.
+
+Pointed-out-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/buffer.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/fs/buffer.c
++++ b/fs/buffer.c
+@@ -2939,6 +2939,7 @@ static void guard_bh_eod(int rw, struct
+               void *kaddr = kmap_atomic(bh->b_page);
+               memset(kaddr + bh_offset(bh) + bytes, 0, bh->b_size - bytes);
+               kunmap_atomic(kaddr);
++              flush_dcache_page(bh->b_page);
+       }
+ }