Author: nick
Date: 2012-04-20 10:28:18 +0100 (Fri, 20 Apr 2012)
New Revision: 1860
Added:
balloon/branches/menuconfig2/package/kernel/patches/2.6.39.4/wm8960.patch
Modified:
balloon/branches/menuconfig2/package/kernel/patches/2.6.39.4/balloon3-i2s.patch
balloon/branches/menuconfig2/package/kernel/patches/2.6.39.4/series-balloon3-bubble-tt
Log:
fix wm8960 codec brokenness with recording
Modified: balloon/branches/menuconfig2/package/kernel/patches/2.6.39.4/balloon3-i2s.patch
===================================================================
--- balloon/branches/menuconfig2/package/kernel/patches/2.6.39.4/balloon3-i2s.patch 2012-04-20 09:27:26 UTC (rev 1859)
+++ balloon/branches/menuconfig2/package/kernel/patches/2.6.39.4/balloon3-i2s.patch 2012-04-20 09:28:18 UTC (rev 1860)
@@ -1,7 +1,7 @@
Index: linux-2.6.39.4/sound/soc/codecs/Kconfig
===================================================================
---- linux-2.6.39.4.orig/sound/soc/codecs/Kconfig 2012-01-06 13:48:04.000000000 +0000
-+++ linux-2.6.39.4/sound/soc/codecs/Kconfig 2012-01-06 13:48:08.000000000 +0000
+--- linux-2.6.39.4.orig/sound/soc/codecs/Kconfig 2012-04-17 13:41:37.000000000 +0100
++++ linux-2.6.39.4/sound/soc/codecs/Kconfig 2012-04-17 13:41:41.000000000 +0100
@@ -92,6 +92,8 @@
select SND_SOC_WM9705 if SND_SOC_AC97_BUS
select SND_SOC_WM9712 if SND_SOC_AC97_BUS
@@ -23,8 +23,8 @@
+ tristate
Index: linux-2.6.39.4/sound/soc/pxa/Makefile
===================================================================
---- linux-2.6.39.4.orig/sound/soc/pxa/Makefile 2012-01-06 13:48:04.000000000 +0000
-+++ linux-2.6.39.4/sound/soc/pxa/Makefile 2012-01-06 13:48:08.000000000 +0000
+--- linux-2.6.39.4.orig/sound/soc/pxa/Makefile 2012-04-17 13:41:37.000000000 +0100
++++ linux-2.6.39.4/sound/soc/pxa/Makefile 2012-04-17 13:41:41.000000000 +0100
@@ -27,6 +27,8 @@
snd-soc-z2-objs := z2.o
snd-soc-imote2-objs := imote2.o
@@ -43,7 +43,7 @@
Index: linux-2.6.39.4/sound/soc/pxa/balloon3-sl90.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.39.4/sound/soc/pxa/balloon3-sl90.c 2012-01-06 13:48:08.000000000 +0000
++++ linux-2.6.39.4/sound/soc/pxa/balloon3-sl90.c 2012-04-17 13:41:41.000000000 +0100
@@ -0,0 +1,208 @@
+/*
+ * balloon3_sl90.c -- SoC audio for Balloon 3 in SL90
@@ -256,7 +256,7 @@
Index: linux-2.6.39.4/sound/soc/codecs/sl90dsp.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.39.4/sound/soc/codecs/sl90dsp.c 2012-01-06 13:48:08.000000000 +0000
++++ linux-2.6.39.4/sound/soc/codecs/sl90dsp.c 2012-04-17 13:41:41.000000000 +0100
@@ -0,0 +1,610 @@
+/*
+ * sl90dsp.c -- SL90 DSP ALSA SoC Audio driver
@@ -871,7 +871,7 @@
Index: linux-2.6.39.4/sound/soc/codecs/sl90dsp.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.39.4/sound/soc/codecs/sl90dsp.h 2012-01-06 13:48:08.000000000 +0000
++++ linux-2.6.39.4/sound/soc/codecs/sl90dsp.h 2012-04-17 13:41:41.000000000 +0100
@@ -0,0 +1,37 @@
+/*
+ * sl90dsp.h -- SL90 DSP Soc Audio driver
@@ -912,8 +912,8 @@
+#endif
Index: linux-2.6.39.4/sound/soc/pxa/Kconfig
===================================================================
---- linux-2.6.39.4.orig/sound/soc/pxa/Kconfig 2012-01-06 13:48:08.000000000 +0000
-+++ linux-2.6.39.4/sound/soc/pxa/Kconfig 2012-01-06 13:48:08.000000000 +0000
+--- linux-2.6.39.4.orig/sound/soc/pxa/Kconfig 2012-04-17 13:41:41.000000000 +0100
++++ linux-2.6.39.4/sound/soc/pxa/Kconfig 2012-04-17 13:41:41.000000000 +0100
@@ -34,6 +34,44 @@
Say Y if you want to add support for SoC audio
on the Balloon 3 board
@@ -962,8 +962,8 @@
Index: linux-2.6.39.4/sound/soc/pxa/balloon3-tt.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.39.4/sound/soc/pxa/balloon3-tt.c 2012-01-07 10:13:41.000000000 +0000
-@@ -0,0 +1,303 @@
++++ linux-2.6.39.4/sound/soc/pxa/balloon3-tt.c 2012-04-20 10:21:57.000000000 +0100
+@@ -0,0 +1,327 @@
+/*
+ * balloon3_tt.c -- SoC audio for Balloon 3 in TT
+ *
@@ -1010,7 +1010,10 @@
+
+#include "pxa2xx-i2s.h"
+
++// remove comment to assert new widgets and paths - seems not to be needed
++//#define UPDATE_DAPM_DATA
+
++
+static int balloon3_tt_startup(struct snd_pcm_substream *substream)
+{
+ struct snd_soc_pcm_runtime *rtd = substream->private_data;
@@ -1111,10 +1114,14 @@
+ .shutdown = balloon3_tt_shutdown,
+};
+
++#ifdef UPDATE_DAPM_DATA
+/* balloon3_tt machine dapm widgets */
+static const struct snd_soc_dapm_widget ttdsp_dapm_widgets[] = {
+SND_SOC_DAPM_HP("Headphone Output", NULL),
+SND_SOC_DAPM_SPK("Speaker Output", NULL),
++// add NCB
++SND_SOC_DAPM_LINE("Line Input", NULL),
++//SND_SOC_DAPM_ADC("ADC Input", NULL),
+};
+
+/* balloon3_tt audio map (connections to the codec pins) */
@@ -1125,8 +1132,14 @@
+ {"Speaker Output", NULL, "SPK_LN"},
+ {"Speaker Output", NULL, "SPK_RP"},
+ {"Speaker Output", NULL, "SPK_RN"},
++// added NCB
++ {"Line Input", NULL, "LINPUT3"},
++ {"Line Input", NULL, "RINPUT3"},
++// {"Line Input", NULL, "Left ADC"},
++// {"Line Input", NULL, "Right ADC"},
+
+};
++#endif
+
+/*
+ * Logic for a ttdsp
@@ -1143,8 +1156,9 @@
+ snd_soc_dapm_nc_pin(dapm, "RINPUT1");
+ snd_soc_dapm_nc_pin(dapm, "LINPUT2");
+ snd_soc_dapm_nc_pin(dapm, "RINPUT2");
-+ snd_soc_dapm_nc_pin(dapm, "LINPUT3");
-+ snd_soc_dapm_nc_pin(dapm, "RINPUT3");
++// remove NCB
++// snd_soc_dapm_nc_pin(dapm, "LINPUT3");
++// snd_soc_dapm_nc_pin(dapm, "RINPUT3");
+ snd_soc_dapm_nc_pin(dapm, "OUT3");
+ pr_info("setting used endpoints\n");
+ snd_soc_dapm_enable_pin(dapm, "HP_L");
@@ -1153,6 +1167,9 @@
+ snd_soc_dapm_enable_pin(dapm, "SPK_LN");
+ snd_soc_dapm_enable_pin(dapm, "SPK_RP");
+ snd_soc_dapm_enable_pin(dapm, "SPK_RN");
++// add NCB
++ snd_soc_dapm_enable_pin(dapm, "LINPUT3");
++ snd_soc_dapm_enable_pin(dapm, "RINPUT3");
+
+ // this following code won't work because the WM8960 init() has already been
+ // called by the time we get here. I don't know where the right place to call
@@ -1167,20 +1184,27 @@
+ }
+*/
+// pr_info("setting up new controls...");
++
+ /* Add balloon3_tt specific widgets */
++#ifdef UPDATE_DAPM_DATA
+ i = snd_soc_dapm_new_controls(dapm, ttdsp_dapm_widgets,
+ ARRAY_SIZE(ttdsp_dapm_widgets));
+// if(i)
+// pr_info("failed\n");
+// else
+// pr_info("OK\n");
-+// pr_info("adding routes...");
++#endif
++
++ pr_info("adding routes...");
+ /* Set up balloon3_tt specific audio path audio_map */
++
++#ifdef UPDATE_DAPM_DATA
+ i = snd_soc_dapm_add_routes(dapm, audio_map, ARRAY_SIZE(audio_map));
+// if(i)
+// pr_info("failed\n");
+// else
+// pr_info("OK\n");
++#endif
+
+// pr_info("DAPM sync...");
+ i = snd_soc_dapm_sync(dapm);
@@ -1269,8 +1293,8 @@
+MODULE_LICENSE("GPL");
Index: linux-2.6.39.4/sound/soc/codecs/Makefile
===================================================================
---- linux-2.6.39.4.orig/sound/soc/codecs/Makefile 2012-01-06 13:48:04.000000000 +0000
-+++ linux-2.6.39.4/sound/soc/codecs/Makefile 2012-01-06 13:48:08.000000000 +0000
+--- linux-2.6.39.4.orig/sound/soc/codecs/Makefile 2012-04-17 13:41:37.000000000 +0100
++++ linux-2.6.39.4/sound/soc/codecs/Makefile 2012-04-17 13:41:41.000000000 +0100
@@ -76,6 +76,8 @@
snd-soc-wm9712-objs := wm9712.o
snd-soc-wm9713-objs := wm9713.o
@@ -1292,7 +1316,7 @@
Index: linux-2.6.39.4/sound/soc/codecs/ttdsp.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.39.4/sound/soc/codecs/ttdsp.c 2012-01-06 13:48:08.000000000 +0000
++++ linux-2.6.39.4/sound/soc/codecs/ttdsp.c 2012-04-17 13:41:41.000000000 +0100
@@ -0,0 +1,781 @@
+/*
+ * ttdsp.c -- TT DSP ALSA SoC Audio driver
@@ -2078,7 +2102,7 @@
Index: linux-2.6.39.4/sound/soc/codecs/ttdsp.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.39.4/sound/soc/codecs/ttdsp.h 2012-01-06 13:48:08.000000000 +0000
++++ linux-2.6.39.4/sound/soc/codecs/ttdsp.h 2012-04-17 13:41:41.000000000 +0100
@@ -0,0 +1,31 @@
+/*
+ * ttdsp.h -- TT DSP Soc Audio driver
Modified: balloon/branches/menuconfig2/package/kernel/patches/2.6.39.4/series-balloon3-bubble-tt
===================================================================
--- balloon/branches/menuconfig2/package/kernel/patches/2.6.39.4/series-balloon3-bubble-tt 2012-04-20 09:27:26 UTC (rev 1859)
+++ balloon/branches/menuconfig2/package/kernel/patches/2.6.39.4/series-balloon3-bubble-tt 2012-04-20 09:28:18 UTC (rev 1860)
@@ -24,3 +24,4 @@
pxafb_internal_ram.patch
spi_tt.patch
usb_gadget_vbus.patch
+wm8960.patch
Added: balloon/branches/menuconfig2/package/kernel/patches/2.6.39.4/wm8960.patch
===================================================================
--- balloon/branches/menuconfig2/package/kernel/patches/2.6.39.4/wm8960.patch (rev 0)
+++ balloon/branches/menuconfig2/package/kernel/patches/2.6.39.4/wm8960.patch 2012-04-20 09:28:18 UTC (rev 1860)
@@ -0,0 +1,34 @@
+Index: linux-2.6.39.4/sound/soc/codecs/wm8960.c
+===================================================================
+--- linux-2.6.39.4.orig/sound/soc/codecs/wm8960.c 2012-04-20 10:16:03.000000000 +0100
++++ linux-2.6.39.4/sound/soc/codecs/wm8960.c 2012-04-20 10:15:25.000000000 +0100
+@@ -159,6 +159,7 @@
+ static const DECLARE_TLV_DB_SCALE(dac_tlv, -12700, 50, 1);
+ static const DECLARE_TLV_DB_SCALE(bypass_tlv, -2100, 300, 0);
+ static const DECLARE_TLV_DB_SCALE(out_tlv, -12100, 100, 1);
++static const DECLARE_TLV_DB_SCALE(boost_tlv, -1200, 300, 1);
+
+ static const struct snd_kcontrol_new wm8960_snd_controls[] = {
+ SOC_DOUBLE_R_TLV("Capture Volume", WM8960_LINVOL, WM8960_RINVOL,
+@@ -219,6 +220,10 @@
+ WM8960_BYPASS2, 4, 7, 1, bypass_tlv),
+ SOC_SINGLE_TLV("Right Output Mixer RINPUT3 Volume",
+ WM8960_ROUTMIX, 4, 7, 1, bypass_tlv),
++SOC_SINGLE_TLV("Left Input Boost Mixer LINPUT3 Volume",
++ WM8960_INBMIX1, 4, 7, 0, boost_tlv),
++SOC_SINGLE_TLV("Right Input Boost Mixer RINPUT3 Volume",
++ WM8960_INBMIX2, 4, 7, 0, boost_tlv),
+ };
+
+ static const struct snd_kcontrol_new wm8960_lin_boost[] = {
+@@ -278,8 +283,8 @@
+ SND_SOC_DAPM_MIXER("Right Input Mixer", WM8960_POWER3, 4, 0,
+ wm8960_rin, ARRAY_SIZE(wm8960_rin)),
+
+-SND_SOC_DAPM_ADC("Left ADC", "Capture", WM8960_POWER2, 3, 0),
+-SND_SOC_DAPM_ADC("Right ADC", "Capture", WM8960_POWER2, 2, 0),
++SND_SOC_DAPM_ADC("Left ADC", "Capture", WM8960_POWER1, 3, 0),
++SND_SOC_DAPM_ADC("Right ADC", "Capture", WM8960_POWER1, 2, 0),
+
+ SND_SOC_DAPM_DAC("Left DAC", "Playback", WM8960_POWER2, 8, 0),
+ SND_SOC_DAPM_DAC("Right DAC", "Playback", WM8960_POWER2, 7, 0),