[oe-commits] org.oe.dev merge of '1fc0d39fdc86680d51d6fec00f6cc3ba43d300f3'

mickeyl commit oe at amethyst.openembedded.net
Mon Sep 1 17:50:38 UTC 2008


merge of '1fc0d39fdc86680d51d6fec00f6cc3ba43d300f3'
     and '23cc848ee4d3462f245c833eadb2b673eb6ab921'

Author: mickeyl at openembedded.org
Branch: org.openembedded.dev
Revision: 6128e85206d625ee5acd908651baae6f4d58c8c3
ViewMTN: http://monotone.openembedded.org/revision/info/6128e85206d625ee5acd908651baae6f4d58c8c3
Files:
1
packages/tangogps/tangogps.inc
packages/flac/flac-1.1.0
packages/flac/flac-1.1.0/disable-xmms-plugin.patch
packages/flac/flac-1.1.0/xmms.m4
packages/flac/flac-1.1.2
packages/flac/files
packages/flac/flac_1.1.2.bb
packages/flac/flac.inc
packages/konqueror/konqueror-embedded-20070212
packages/konqueror/konqueror-embedded-20070316
packages/konqueror/konqueror-embedded_20070212.bb
packages/konqueror/konqueror-embedded_20070316.bb
packages/libmpcdec
packages/libmpcdec/libmpcdec_1.2.6.bb
packages/linux/linux-omap2-git/beagleboard/ASoC-TWL4030-codec-driver.patch
packages/linux/linux-omap2-git/beagleboard/ASoC-machine-driver-for-OMAP3-EVM.patch
packages/linux/linux-omap2-git/beagleboard/ASoC-machine-driver-for_OMAP3-Beagle.patch
conf/machine/beagleboard.conf
packages/espgs/espgs_8.15.3.bb
packages/flac/flac_1.1.0.bb
packages/gpe-plucker/gpe-plucker_0.4.bb
packages/gstreamer/gst-ffmpeg_0.10.4.bb
packages/irssi/irssi_svn.bb
packages/konqueror/konqueror-embedded-20070316/konqe_new_opie.patch
packages/konqueror/konqueror-embedded-20070316/konqueror.desktop
packages/linux/linux-omap2_git.bb
packages/qmake/files/0001-fix-mkspecs.patch
packages/qmake/files/qt-config.patch
packages/qmake/qmake2-native.inc
packages/qmake/qmake2-native_2.10a.bb
packages/qt4/qt_staging.inc
packages/rrdtool/rrdtool_1.0.49.bb
packages/samba/samba.inc
packages/samba/samba_3.0.23c.bb
packages/u-boot/u-boot_git.bb
packages/uclibc/uclibc_0.9.29.bb
packages/uicmoc/uicmoc4-native.inc
packages/uicmoc/uicmoc4-native_4.4.0.bb
Diffs:

#
# mt diff -r1fc0d39fdc86680d51d6fec00f6cc3ba43d300f3 -r6128e85206d625ee5acd908651baae6f4d58c8c3
#
#
#
# patch "packages/tangogps/tangogps.inc"
#  from [de7d80f65e318ef9e683909557fcc644a5db46ab]
#    to [4eec9ca4fc79d22c801894b8a77d9fa9b253554b]
#
============================================================
--- packages/tangogps/tangogps.inc	de7d80f65e318ef9e683909557fcc644a5db46ab
+++ packages/tangogps/tangogps.inc	4eec9ca4fc79d22c801894b8a77d9fa9b253554b
@@ -8,5 +8,6 @@ SRC_URI = "http://www.tangogps.org/downl
 RRECOMMENDS = "gpsd"
 
 SRC_URI = "http://www.tangogps.org/downloads/tangogps-${PV}.tar.gz"
+S = "${WORKDIR}/tangogps-${PV}"
 
 inherit autotools pkgconfig


#
# mt diff -r23cc848ee4d3462f245c833eadb2b673eb6ab921 -r6128e85206d625ee5acd908651baae6f4d58c8c3
#
#
#
# delete "packages/flac/flac-1.1.0"
# 
# delete "packages/flac/flac-1.1.0/disable-xmms-plugin.patch"
# 
# delete "packages/flac/flac-1.1.0/xmms.m4"
# 
# rename "packages/flac/flac-1.1.2"
#     to "packages/flac/files"
# 
# rename "packages/flac/flac_1.1.2.bb"
#     to "packages/flac/flac.inc"
# 
# rename "packages/konqueror/konqueror-embedded-20070212"
#     to "packages/konqueror/konqueror-embedded-20070316"
# 
# rename "packages/konqueror/konqueror-embedded_20070212.bb"
#     to "packages/konqueror/konqueror-embedded_20070316.bb"
# 
# add_dir "packages/libmpcdec"
# 
# add_file "packages/flac/flac_1.1.2.bb"
#  content [245d992e59fe51ef048af8a26f63b8a3697553a9]
# 
# add_file "packages/libmpcdec/libmpcdec_1.2.6.bb"
#  content [9c69edeb0894a1db998e9308c6998fb119adc363]
# 
# add_file "packages/linux/linux-omap2-git/beagleboard/ASoC-TWL4030-codec-driver.patch"
#  content [1d32b53f651efb037fd71d6e63601637b518db64]
# 
# add_file "packages/linux/linux-omap2-git/beagleboard/ASoC-machine-driver-for-OMAP3-EVM.patch"
#  content [be840b1d944029d69f758b44231f74a9f427351d]
# 
# add_file "packages/linux/linux-omap2-git/beagleboard/ASoC-machine-driver-for_OMAP3-Beagle.patch"
#  content [5147e55ffa8735e5c53630e39d263ec3ce9872d9]
# 
# patch "conf/machine/beagleboard.conf"
#  from [4d63e2381f81386e82dd68c70bb759af28ed230a]
#    to [d9ead88ad9a6d2f71fd898e1f6d3e15ccdda9ade]
# 
# patch "packages/espgs/espgs_8.15.3.bb"
#  from [15c8fbb3bb09a6f58519c29dcb6c06b9a5bad084]
#    to [d05b9354e4bf056b14a558f78714e226e99eea4c]
# 
# patch "packages/flac/flac.inc"
#  from [96f2861b917ed2fbcaa9526091bbe8c89b7a7a80]
#    to [3debbf0cbf93e4c1cd7d9cf2fced5a6b7ed588a4]
# 
# patch "packages/flac/flac_1.1.0.bb"
#  from [71e75385e9a1c43fb8889177f8f7eee410a1ce49]
#    to [06994a9dfe206b7f2228ed1848818e4da01eb833]
# 
# patch "packages/gpe-plucker/gpe-plucker_0.4.bb"
#  from [adf0fa33fb851c9fdeb0b8b2313097029d82f283]
#    to [2240d7e1e85c79cc49ffbc8476d86a3cf45056b9]
# 
# patch "packages/gstreamer/gst-ffmpeg_0.10.4.bb"
#  from [1c660c4f80e966feea0af702608757bff5bd56b2]
#    to [958dd6e5f9260d8a94ec1bf54bc961fcb7260b99]
# 
# patch "packages/irssi/irssi_svn.bb"
#  from [eb181fc01e38d297697f8b2d23161c658fc6f6e2]
#    to [e279cd9ee0322b171fa7f7e05cf0894f4b700a88]
# 
# patch "packages/konqueror/konqueror-embedded-20070316/konqe_new_opie.patch"
#  from [97449995738e923ea33949a405e6f928e11bdf83]
#    to [fa173691844ffa2b26adf010b3d5b2e3080a1282]
# 
# patch "packages/konqueror/konqueror-embedded-20070316/konqueror.desktop"
#  from [f61654c86352e52a354a25c38006bfde302806ed]
#    to [a1a145baa691f7f01386d8342a96cdd226cabfa5]
# 
# patch "packages/konqueror/konqueror-embedded_20070316.bb"
#  from [6e24fc121d123e76770ab74b853705ff5b790e98]
#    to [86f01914d98db2ca4443578b2001273781984d3e]
# 
# patch "packages/linux/linux-omap2_git.bb"
#  from [8152324919d576b2c9511c66c908fa44391f2123]
#    to [d7faf64ed286bb2b6ea8ac5f1771dbd8907fda61]
# 
# patch "packages/qmake/files/0001-fix-mkspecs.patch"
#  from [ad389a1d1a14923dffb662fdf22cbac4ca302054]
#    to [e0202ec32ac08327d4432d53f000d1500072e47a]
# 
# patch "packages/qmake/files/qt-config.patch"
#  from [ffca4aa5d3ae8c6e3e9c1d699382d3079a770c7c]
#    to [76828b211bac18264a930155a9eb923630b47bc8]
# 
# patch "packages/qmake/qmake2-native.inc"
#  from [f5000ca45c6fa48ac244de67f96888ef38d5d7b1]
#    to [0d4edd63b2856cec8bc27b186e3bee225df4b181]
# 
# patch "packages/qmake/qmake2-native_2.10a.bb"
#  from [c50778fcd7cdf33c89fe6a0ea1bd651b90adb62a]
#    to [d7d1a36a86c43e4b96e41f8437f910ef8d601ac9]
# 
# patch "packages/qt4/qt_staging.inc"
#  from [47a145dc6e238d6fffdbd1cfa27edaa0e623d3ef]
#    to [f35c509913b9b43e11838625fb843e06d4ea182e]
# 
# patch "packages/rrdtool/rrdtool_1.0.49.bb"
#  from [a39c7f89e3e1279eadc45341674681d20077b0d5]
#    to [a364d6c23ab74530732b748ae5ffa3e7df3c3e57]
# 
# patch "packages/samba/samba.inc"
#  from [77999b13a6dc8e6af6540bfe9a51f2ac9c11d3b9]
#    to [2733fe1160140df3eac405b0a2d0ef3abcfde776]
# 
# patch "packages/samba/samba_3.0.23c.bb"
#  from [cbb50ee71590ebe4810837194adc5397eb68d774]
#    to [0445d1c01df2f38163f4f8df96337c75a306fe62]
# 
# patch "packages/u-boot/u-boot_git.bb"
#  from [31fb63a05a8da360701b7882d27b11f6f196a7c8]
#    to [d6f57b875760d8fdc4c425c893e466af16f398cf]
# 
# patch "packages/uclibc/uclibc_0.9.29.bb"
#  from [e355b83dfb3404619c5918177caab9fec0b976b4]
#    to [20484e607048882b6c6824d43715499bc4fdf917]
# 
# patch "packages/uicmoc/uicmoc4-native.inc"
#  from [043e25c5533489d6bcfe95d8ae39f63961957071]
#    to [53db81cdd6b3ced8145fb586be6e547a7c4e2cf1]
# 
# patch "packages/uicmoc/uicmoc4-native_4.4.0.bb"
#  from [3279313c21ce4a2e7869d37eb6ad6781132a9f42]
#    to [8de9348a7d46bc1d8677391748b092f9aeacada1]
#
============================================================
--- packages/flac/flac_1.1.2.bb	245d992e59fe51ef048af8a26f63b8a3697553a9
+++ packages/flac/flac_1.1.2.bb	245d992e59fe51ef048af8a26f63b8a3697553a9
@@ -0,0 +1,13 @@
+require flac.inc
+
+PR = "r6"
+
+do_configure_append () {
+	# removes '-read-only-relocs' which is enabled for PowerPC builds.
+	# It makes the build fail, other archs are not affected. Fixes #1775.
+	sed -i 's/-Wl,-read_only_relocs,warning//g' src/libFLAC/Makefile
+}
+
+do_stage_append () {
+	install -m 0644 ${S}/include/FLAC/callback.h ${STAGING_INCDIR}/FLAC/callback.h
+}
============================================================
--- packages/libmpcdec/libmpcdec_1.2.6.bb	9c69edeb0894a1db998e9308c6998fb119adc363
+++ packages/libmpcdec/libmpcdec_1.2.6.bb	9c69edeb0894a1db998e9308c6998fb119adc363
@@ -0,0 +1,20 @@
+DESCRIPTION = "Portable Musepack decoder library"
+AUTHOR = "Meni Berman <musepack at gmail.com>"
+HOMEPAGE = "http://www.musepack.net"
+SECTION = "libs"
+LICENSE = "BSD GPL"
+PR = "r0"
+
+SRC_URI = "http://files.musepack.net/source/libmpcdec-${PV}.tar.bz2"
+
+inherit autotools
+
+EXTRA_OECONF += "ac_cv_func_memcmp_working=yes"
+
+do_configure () {
+        oe_runconf
+}
+
+do_stage () {
+        autotools_stage_all
+}
============================================================
--- packages/linux/linux-omap2-git/beagleboard/ASoC-TWL4030-codec-driver.patch	1d32b53f651efb037fd71d6e63601637b518db64
+++ packages/linux/linux-omap2-git/beagleboard/ASoC-TWL4030-codec-driver.patch	1d32b53f651efb037fd71d6e63601637b518db64
@@ -0,0 +1,831 @@
+From: Steve Sakoman <steve at sakoman.com>
+Date: Fri, 18 Jul 2008 16:41:27 +0000 (-0700)
+Subject: ASoC TWL4030 codec driver
+X-Git-Url: http://www.sakoman.net/cgi-bin/gitweb.cgi?p=linux-omap-2.6.git;a=commitdiff_plain;h=67b73de03016cc31b1f91af93c57b8e749c13520;hp=d3b3ae0fe6c71641da19c8de466ec366d39847e3
+
+ASoC TWL4030 codec driver
+
+Basic audio support for the TWL4030
+
+Signed-off-by: Steve Sakoman <steve at sakoman.com>
+---
+
+diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
+index 3903ab7..468536d 100644
+--- a/sound/soc/codecs/Kconfig
++++ b/sound/soc/codecs/Kconfig
+@@ -44,3 +44,7 @@ config SND_SOC_CS4270_VD33_ERRATA
+ config SND_SOC_TLV320AIC3X
+ 	tristate
+ 	depends on SND_SOC && I2C
++
++config SND_SOC_TWL4030
++	tristate
++	depends on SND_SOC && I2C
+diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile
+index 4e1314c..d2c0b12 100644
+--- a/sound/soc/codecs/Makefile
++++ b/sound/soc/codecs/Makefile
+@@ -6,6 +6,7 @@ snd-soc-wm9712-objs := wm9712.o
+ snd-soc-wm9713-objs := wm9713.o
+ snd-soc-cs4270-objs := cs4270.o
+ snd-soc-tlv320aic3x-objs := tlv320aic3x.o
++snd-soc-twl4030-objs := twl4030.o
+ 
+ obj-$(CONFIG_SND_SOC_AC97_CODEC)	+= snd-soc-ac97.o
+ obj-$(CONFIG_SND_SOC_WM8731)	+= snd-soc-wm8731.o
+@@ -15,3 +16,4 @@ obj-$(CONFIG_SND_SOC_WM9712)	+= snd-soc-wm9712.o
+ obj-$(CONFIG_SND_SOC_WM9713)	+= snd-soc-wm9713.o
+ obj-$(CONFIG_SND_SOC_CS4270)	+= snd-soc-cs4270.o
+ obj-$(CONFIG_SND_SOC_TLV320AIC3X)	+= snd-soc-tlv320aic3x.o
++obj-$(CONFIG_SND_SOC_TWL4030)	+= snd-soc-twl4030.o
+diff --git a/sound/soc/codecs/twl4030.c b/sound/soc/codecs/twl4030.c
+new file mode 100644
+index 0000000..25a154c
+--- /dev/null
++++ b/sound/soc/codecs/twl4030.c
+@@ -0,0 +1,626 @@
++/*
++ * ALSA SoC TWL4030 codec driver
++ *
++ * Author:      Steve Sakoman, <steve at sakoman.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/init.h>
++#include <linux/delay.h>
++#include <linux/pm.h>
++#include <linux/i2c.h>
++#include <linux/platform_device.h>
++#include <linux/i2c/twl4030.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/pcm_params.h>
++#include <sound/soc.h>
++#include <sound/soc-dapm.h>
++#include <sound/initval.h>
++
++#include "twl4030.h"
++
++/*
++ * twl4030 register cache & default register settings
++ */
++static const u8 twl4030_reg[TWL4030_CACHEREGNUM] = {
++	0x00, /* this register not used		*/
++	0x93, /* REG_CODEC_MODE		(0x1)	*/
++	0xc3, /* REG_OPTION		(0x2)	*/
++	0x00, /* REG_UNKNOWN		(0x3)	*/
++	0x00, /* REG_MICBIAS_CTL	(0x4)	*/
++	0x34, /* REG_ANAMICL		(0x5)	*/
++	0x14, /* REG_ANAMICR		(0x6)	*/
++	0x0a, /* REG_AVADC_CTL		(0x7)	*/
++	0x00, /* REG_ADCMICSEL		(0x8)	*/
++	0x00, /* REG_DIGMIXING		(0x9)	*/
++	0x0c, /* REG_ATXL1PGA		(0xA)	*/
++	0x0c, /* REG_ATXR1PGA		(0xB)	*/
++	0x00, /* REG_AVTXL2PGA		(0xC)	*/
++	0x00, /* REG_AVTXR2PGA		(0xD)	*/
++	0x01, /* REG_AUDIO_IF		(0xE)	*/
++	0x00, /* REG_VOICE_IF		(0xF)	*/
++	0x00, /* REG_ARXR1PGA		(0x10)	*/
++	0x00, /* REG_ARXL1PGA		(0x11)	*/
++	0x6c, /* REG_ARXR2PGA		(0x12)	*/
++	0x6c, /* REG_ARXL2PGA		(0x13)	*/
++	0x00, /* REG_VRXPGA		(0x14)	*/
++	0x00, /* REG_VSTPGA		(0x15)	*/
++	0x00, /* REG_VRX2ARXPGA		(0x16)	*/
++	0x0c, /* REG_AVDAC_CTL		(0x17)	*/
++	0x00, /* REG_ARX2VTXPGA		(0x18)	*/
++	0x00, /* REG_ARXL1_APGA_CTL	(0x19)	*/
++	0x00, /* REG_ARXR1_APGA_CTL	(0x1A)	*/
++	0x4b, /* REG_ARXL2_APGA_CTL	(0x1B)	*/
++	0x4b, /* REG_ARXR2_APGA_CTL	(0x1C)	*/
++	0x00, /* REG_ATX2ARXPGA		(0x1D)	*/
++	0x00, /* REG_BT_IF		(0x1E)	*/
++	0x00, /* REG_BTPGA		(0x1F)	*/
++	0x00, /* REG_BTSTPGA		(0x20)	*/
++	0x00, /* REG_EAR_CTL		(0x21)	*/
++	0x24, /* REG_HS_SEL		(0x22)	*/
++	0x0a, /* REG_HS_GAIN_SET	(0x23)	*/
++	0x00, /* REG_HS_POPN_SET	(0x24)	*/
++	0x00, /* REG_PREDL_CTL		(0x25)	*/
++	0x00, /* REG_PREDR_CTL		(0x26)	*/
++	0x00, /* REG_PRECKL_CTL		(0x27)	*/
++	0x00, /* REG_PRECKR_CTL		(0x28)	*/
++	0x00, /* REG_HFL_CTL		(0x29)	*/
++	0x00, /* REG_HFR_CTL		(0x2A)	*/
++	0x00, /* REG_ALC_CTL		(0x2B)	*/
++	0x00, /* REG_ALC_SET1		(0x2C)	*/
++	0x00, /* REG_ALC_SET2		(0x2D)	*/
++	0x00, /* REG_BOOST_CTL		(0x2E)	*/
++	0x01, /* REG_SOFTVOL_CTL	(0x2F)	*/
++	0x00, /* REG_DTMF_FREQSEL	(0x30)	*/
++	0x00, /* REG_DTMF_TONEXT1H	(0x31)	*/
++	0x00, /* REG_DTMF_TONEXT1L	(0x32)	*/
++	0x00, /* REG_DTMF_TONEXT2H	(0x33)	*/
++	0x00, /* REG_DTMF_TONEXT2L	(0x34)	*/
++	0x00, /* REG_DTMF_TONOFF	(0x35)	*/
++	0x00, /* REG_DTMF_WANONOFF	(0x36)	*/
++	0x00, /* REG_I2S_RX_SCRAMBLE_H	(0x37)	*/
++	0x00, /* REG_I2S_RX_SCRAMBLE_M	(0x38)	*/
++	0x00, /* REG_I2S_RX_SCRAMBLE_L	(0x39)	*/
++	0x16, /* REG_APLL_CTL		(0x3A)	*/
++	0x00, /* REG_DTMF_CTL		(0x3B)	*/
++	0x00, /* REG_DTMF_PGA_CTL2	(0x3C)	*/
++	0x00, /* REG_DTMF_PGA_CTL1	(0x3D)	*/
++	0x00, /* REG_MISC_SET_1		(0x3E)	*/
++	0x00, /* REG_PCMBTMUX		(0x3F)	*/
++	0x00, /* not used		(0x40)	*/
++	0x00, /* not used		(0x41)	*/
++	0x00, /* not used		(0x42)	*/
++	0x00, /* REG_RX_PATH_SEL	(0x43)	*/
++	0x00, /* REG_VDL_APGA_CTL	(0x44)	*/
++	0x00, /* REG_VIBRA_CTL		(0x45)	*/
++	0x00, /* REG_VIBRA_SET		(0x46)	*/
++	0x00, /* REG_VIBRA_PWM_SET	(0x47)	*/
++	0x00, /* REG_ANAMIC_GAIN	(0x48)	*/
++	0x00, /* REG_MISC_SET_2		(0x49)	*/
++};
++
++static void twl4030_dump_registers(void)
++{
++	int i = 0;
++	u8 data;
++
++	printk(KERN_INFO "TWL 4030 Register dump for Audio Module\n");
++
++	for (i = REG_CODEC_MODE; i <= REG_MISC_SET_2; i++) {
++		twl4030_i2c_read_u8(TWL4030_MODULE_AUDIO_VOICE, &data, i);
++		printk(KERN_INFO "Register[0x%02x]=0x%02x\n", i, data);
++	}
++}
++
++struct twl4030_priv {
++	unsigned int dummy;
++};
++
++/*
++ * read twl4030 register cache
++ */
++static inline unsigned int twl4030_read_reg_cache(struct snd_soc_codec *codec,
++	unsigned int reg)
++{
++	u8 *cache = codec->reg_cache;
++
++	return cache[reg];
++}
++
++/*
++ * write twl4030 register cache
++ */
++static inline void twl4030_write_reg_cache(struct snd_soc_codec *codec,
++						u8 reg, u8 value)
++{
++	u8 *cache = codec->reg_cache;
++
++	if (reg >= TWL4030_CACHEREGNUM)
++		return;
++	cache[reg] = value;
++}
++
++/*
++ * write to the twl4030 register space
++ */
++static int twl4030_write(struct snd_soc_codec *codec,
++			unsigned int reg, unsigned int value)
++{
++	twl4030_write_reg_cache(codec, reg, value);
++	return twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE, value, reg);
++}
++
++static void twl4030_init_chip(void)
++{
++	unsigned char byte;
++	int i;
++
++	twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE,
++		twl4030_reg[REG_CODEC_MODE] & 0xfd, REG_CODEC_MODE);
++
++	udelay(10); /* delay for power settling */
++
++	for (i = REG_OPTION; i <= REG_MISC_SET_2; i++)
++		twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE,
++					twl4030_reg[i], i);
++
++	twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE,
++		twl4030_reg[REG_CODEC_MODE], REG_CODEC_MODE);
++
++	udelay(10); /* delay for power settling */
++
++	/* initiate offset cancellation */
++	twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE,
++		twl4030_reg[REG_ANAMICL] | 0x80, REG_ANAMICL);
++
++	/* wait for offset cancellation to complete */
++	twl4030_i2c_read_u8(TWL4030_MODULE_AUDIO_VOICE, &byte, REG_ANAMICL);
++	while ((byte & 0x80) == 0x80)
++		twl4030_i2c_read_u8(TWL4030_MODULE_AUDIO_VOICE,
++					&byte, REG_ANAMICL);
++
++	twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE,
++		twl4030_reg[REG_MISC_SET_1] | 0x02, REG_MISC_SET_1);
++
++}
++
++static const struct snd_kcontrol_new twl4030_snd_controls[] = {
++	SOC_DOUBLE_R("Master Playback Volume",
++		 REG_ARXL2PGA, REG_ARXR2PGA,
++		0, 127, 0),
++	SOC_DOUBLE_R("Capture Volume",
++		 REG_ATXL1PGA, REG_ATXR1PGA,
++		0, 127, 0),
++};
++
++/* add non dapm controls */
++static int twl4030_add_controls(struct snd_soc_codec *codec)
++{
++	int err, i;
++
++	for (i = 0; i < ARRAY_SIZE(twl4030_snd_controls); i++) {
++		err = snd_ctl_add(codec->card,
++				  snd_soc_cnew(&twl4030_snd_controls[i],
++						codec, NULL));
++		if (err < 0)
++			return err;
++	}
++
++	return 0;
++}
++
++static const struct snd_soc_dapm_widget twl4030_dapm_widgets[] = {
++	SND_SOC_DAPM_INPUT("INL"),
++	SND_SOC_DAPM_INPUT("INR"),
++
++	SND_SOC_DAPM_OUTPUT("OUTL"),
++	SND_SOC_DAPM_OUTPUT("OUTR"),
++
++	SND_SOC_DAPM_DAC("DACL", "Left Playback", SND_SOC_NOPM, 0, 0),
++	SND_SOC_DAPM_DAC("DACR", "Right Playback", SND_SOC_NOPM, 0, 0),
++
++	SND_SOC_DAPM_ADC("ADCL", "Left Capture", SND_SOC_NOPM, 0, 0),
++	SND_SOC_DAPM_ADC("ADCR", "Right Capture", SND_SOC_NOPM, 0, 0),
++};
++
++static const char *intercon[][3] = {
++	/* outputs */
++	{"OUTL", NULL, "DACL"},
++	{"OUTR", NULL, "DACR"},
++
++	/* inputs */
++	{"ADCL", NULL, "INL"},
++	{"ADCR", NULL, "INR"},
++
++	/* terminator */
++	{NULL, NULL, NULL},
++};
++
++static int twl4030_add_widgets(struct snd_soc_codec *codec)
++{
++	int i;
++
++	for (i = 0; i < ARRAY_SIZE(twl4030_dapm_widgets); i++)
++		snd_soc_dapm_new_control(codec, &twl4030_dapm_widgets[i]);
++
++	/* set up audio path interconnects */
++	for (i = 0; intercon[i][0] != NULL; i++)
++		snd_soc_dapm_connect_input(codec, intercon[i][0],
++			intercon[i][1], intercon[i][2]);
++
++	snd_soc_dapm_new_widgets(codec);
++	return 0;
++}
++
++static int twl4030_dapm_event(struct snd_soc_codec *codec, int event)
++{
++
++	printk(KERN_INFO "TWL4030 Audio Codec dapm event\n");
++	switch (event) {
++	case SNDRV_CTL_POWER_D0: /* full On */
++		break;
++	case SNDRV_CTL_POWER_D1: /* partial On */
++	case SNDRV_CTL_POWER_D2: /* partial On */
++		break;
++	case SNDRV_CTL_POWER_D3hot: /* off, with power */
++		break;
++	case SNDRV_CTL_POWER_D3cold: /* off, without power */
++		break;
++	}
++	codec->dapm_state = event;
++
++	return 0;
++}
++
++static void twl4030_power_up(struct snd_soc_codec *codec, u8 mode)
++{
++	u8 popn, hsgain;
++
++	twl4030_write(codec, REG_CODEC_MODE, mode & ~CODECPDZ);
++	twl4030_write(codec, REG_CODEC_MODE, mode | CODECPDZ);
++	udelay(10);
++
++	popn = twl4030_read_reg_cache(codec, REG_HS_POPN_SET);
++	popn &= RAMP_DELAY;
++	popn |=	VMID%s
>>> DIFF TRUNCATED @ 16K






More information about the Openembedded-commits mailing list