summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Spaeth <Sebastian@SSpaeth.de>2009-11-30 16:54:34 +0100
committerSebastian Spaeth <Sebastian@SSpaeth.de>2009-11-30 16:54:34 +0100
commitfe590bc4751a54a09e59c32bb196808edd736844 (patch)
treeb4552417c16247c4a28ed9669c91de43de7bce65
parent441d3dbb3ffba920fdf97aeb0d4afeba36b6de82 (diff)
parentc9a57f1c9353a67e0f067a621f56356b5d462ce0 (diff)
downloadopenembedded-fe590bc4751a54a09e59c32bb196808edd736844.tar.gz
merge latest shr/merge
*also get rid of SHR-THEMES variable Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
-rw-r--r--conf/checksums.ini32
-rw-r--r--conf/distro/angstrom-2008.1.conf2
-rw-r--r--conf/distro/include/preferred-shr-versions.inc5
-rw-r--r--conf/distro/include/sane-srcrevs.inc24
-rw-r--r--conf/distro/nylon.conf10
-rw-r--r--conf/machine/include/davinci.inc4
-rw-r--r--conf/machine/include/kirkwood.inc2
-rw-r--r--recipes/apache2/apache2-2.2.14/apr-sockets-patch10
-rw-r--r--recipes/apache2/apache2-2.2.14/apr.h.in.patch13
-rw-r--r--recipes/apache2/apache2-2.2.14/configure-patch71
-rw-r--r--recipes/apache2/apache2-2.2.14/configure.in.patch27
-rw-r--r--recipes/apache2/apache2-2.2.14/dftables-makefile-patch10
-rw-r--r--recipes/apache2/apache2-2.2.14/server-makefile-patch11
-rw-r--r--recipes/apache2/apache2-native_2.2.14.bb40
-rw-r--r--recipes/apache2/apache2_2.2.14.bb114
-rw-r--r--recipes/e2fsprogs-libs/e2fsprogs-libs.inc9
-rw-r--r--recipes/efl1/eina/gnu_source.patch12
-rw-r--r--recipes/efl1/eina_svn.bb4
-rw-r--r--recipes/gcc/gcc-configure-common.inc1
-rw-r--r--recipes/gnome/gconfmm_2.28.0.bb5
-rw-r--r--recipes/gnome/gnome-games_2.24.0.bb11
-rw-r--r--recipes/gphoto2/gphoto2_2.4.7.bb15
-rw-r--r--recipes/gphoto2/libgphoto2_2.4.7.bb25
-rw-r--r--recipes/guile/guile-native.inc120
-rw-r--r--recipes/libogg/libogg.inc11
-rw-r--r--recipes/libogg/libogg_1.0.bb18
-rw-r--r--recipes/libogg/libogg_1.1.3.bb17
-rw-r--r--recipes/libogg/libogg_1.1.4.bb4
-rw-r--r--recipes/libogg/libogg_1.1.bb19
-rw-r--r--recipes/libogg/libtheora_1.0.bb23
-rw-r--r--recipes/libsdl/libsdl-mixer_1.2.10.bb2
-rw-r--r--recipes/libtheora/libtheora-1.0/libtheora-1.0-no-docs.patch (renamed from recipes/libogg/libtheora-1.0/libtheora-1.0-no-docs.patch)0
-rw-r--r--recipes/libtheora/libtheora-1.1.1/no-docs.patch13
-rw-r--r--recipes/libtheora/libtheora.inc17
-rw-r--r--recipes/libtheora/libtheora_0.9+1.0alpha7.bb (renamed from recipes/libogg/libtheora_0.9+1.0alpha7.bb)0
-rw-r--r--recipes/libtheora/libtheora_1.0.bb6
-rw-r--r--recipes/libtheora/libtheora_1.1.1.bb6
-rw-r--r--recipes/libvorbis/libvorbis-1.2.3/configure_powerpc-no-fixed-cpu.patch15
-rw-r--r--recipes/libvorbis/libvorbis.inc19
-rw-r--r--recipes/libvorbis/libvorbis_1.0.1.bb32
-rw-r--r--recipes/libvorbis/libvorbis_1.2.0.bb32
-rw-r--r--recipes/libvorbis/libvorbis_1.2.3.bb11
-rw-r--r--recipes/linux/linux-davinci/dm355-evm/defconfig181
-rw-r--r--recipes/linux/linux-davinci/dm365-evm/defconfig178
-rw-r--r--recipes/linux/linux-davinci/dm6446-evm/defconfig264
-rw-r--r--recipes/linux/linux-davinci/dm6467-evm/defconfig371
-rw-r--r--recipes/linux/linux-davinci/dm6467t-evm/defconfig366
-rw-r--r--recipes/linux/linux-davinci_git.bb53
-rw-r--r--recipes/linux/linux-kirkwood/0003-ARM-Kirkwood-Sound-Sound-driver-added.patch3514
-rw-r--r--recipes/linux/linux-kirkwood_2.6.32-rc4.bb2
-rw-r--r--recipes/linux/linux-mtx-1-2.4.27/49-bash4-configure.patch11
-rw-r--r--recipes/linux/linux-mtx-1_2.4.27.bb1
-rw-r--r--recipes/linux/linux-mtx-2-2.4.27/49-bash4-configure.patch11
-rw-r--r--recipes/linux/linux-mtx-2_2.4.27.bb1
-rw-r--r--recipes/mplayer/mplayer-common.bb10
-rw-r--r--recipes/mplayer/mplayer_0.0+1.0rc2.bb5
-rw-r--r--recipes/mtd/mtd-utils.inc8
-rw-r--r--recipes/opkg/opkg-native_svn.bb2
-rw-r--r--recipes/opkg/opkg-nogpg_svn.bb3
-rw-r--r--recipes/opkg/opkg.inc3
-rw-r--r--recipes/opkg/opkg_svn.bb2
-rw-r--r--recipes/php/php_5.2.6.bb5
-rw-r--r--recipes/proxy-libintl/proxy-libintl_20080418.bb14
-rw-r--r--recipes/pulseaudio/paprefs_0.9.9.bb9
-rw-r--r--recipes/pulseaudio/pulseaudio-0.9.19/fixbluezbuild.patch13
-rw-r--r--recipes/pulseaudio/pulseaudio-0.9.19/gettext.patch127
-rw-r--r--recipes/pulseaudio/pulseaudio_0.9.19.bb4
-rw-r--r--recipes/totem/totem_2.28.1.bb2
-rw-r--r--recipes/u-boot/u-boot_git.bb52
-rw-r--r--recipes/uclibc/uclibc-0.9.30.1/o_cloexec.patch272
-rw-r--r--recipes/uclibc/uclibc_0.9.30.1.bb3
71 files changed, 5421 insertions, 888 deletions
diff --git a/conf/checksums.ini b/conf/checksums.ini
index ca1166a926..6b5a1b467b 100644
--- a/conf/checksums.ini
+++ b/conf/checksums.ini
@@ -8290,6 +8290,10 @@ sha256=666ba1186b2697c3a99ee943775fbc7a7aa18f3c8cc3d335a2581dea62f812bf
md5=2dc76415b22d805cfacfcd5fb98f185c
sha256=2801ff7d595039292850d4f7d87b3f7c950e92dbcb39facfe62c6fb184640e1f
+[http://ftp.gnome.org/pub/GNOME/sources/gconfmm/2.28/gconfmm-2.28.0.tar.bz2]
+md5=dad2999d8bbf88cf581fa512041d735e
+sha256=3daa3719f773cfc9fcee84766f60eab4579209978425221997120662bd621a52
+
[http://www.boutell.com/gd/http/gd-2.0.21.tar.gz]
md5=3134158635f5048dba99281c6b712a54
sha256=c3b8b7b57019927dad40870c379eecfa6389443f7e2096aa0157a0224d400da1
@@ -10682,6 +10686,10 @@ sha256=c9ef8c2f61bbe9978b38341ca2bf09786416ddd82d4708066a26a0483341ca72
md5=bcc5621e09802e114c7f72a6f6172230
sha256=68cd94664882fdab5fa781b4b8fabe1ac49db7d97bdf3aa917563439afa9b9b6
+[http://downloads.sourceforge.net/gphoto/gphoto2-2.4.7.tar.bz2]
+md5=a0bd7629040735f16e510b63edf386dd
+sha256=16e21ab5387220ad885e1d27f936f3add4081d15a1039577002682be521b2c03
+
[http://downloads.sourceforge.net/lxde/gpicview-0.1.5.tar.gz]
md5=5c484ea089f5a6455265e1e1f472240e
sha256=7663e1849f3b1f2225a3310f907f86068d7ac5c8957d68fc4a684059b49211ca
@@ -15242,6 +15250,10 @@ sha256=f319655b272186ad76ab73317b7e8c5e3b87d51c1265ce676f02e8c312745226
md5=8aff5ac4ca72cba17de633078cf1612e
sha256=2582362ae318b62c31832edfcaf401397fcc98fd307347ee15babff94770784d
+[http://downloads.sourceforge.net/gphoto/libgphoto2-2.4.7.tar.bz2]
+md5=3c1f1b1e56214e83b97e2bc7aadba4c5
+sha256=9e7613f21ac3dd7cf1decbab5c47c1e9a16d39c32062d7f8632adb4fc8d0271f
+
[http://kent.dl.sourceforge.net/sourceforge/gtkpod/libgpod-0.6.0.tar.gz]
md5=b44d8aee3f6610370b6faf61770c5f3c
sha256=a2c8c998588361d8aaa4c662a38f50db164b8b4fce4e7bc49ac445a9ac87f80f
@@ -15766,6 +15778,10 @@ sha256=920fa2a0924d66884825d36a2e843de069cfdf1af01945d05da25999bbd6396c
md5=eaf7dc6ebbff30975de7527a80831585
sha256=bae29e79fbc50bbedf1235852094b71c8c910a1ef0cd42fe4163b7b545630b65
+[http://downloads.xiph.org/releases/ogg/libogg-1.1.4.tar.gz]
+md5=10200ec22543841d9d1c23e0aed4e5e9
+sha256=9354c183fd88417c2860778b60b7896c9487d8f6e58b9fec3fdbf971142ce103
+
[http://www.vorbis.com/files/1.0.1/unix/libogg-1.1.tar.gz]
md5=461d7097bf47864b872085a94ff94e10
sha256=01453d561255b5fcb361997904752860e4f8c6b9742f290578a44615fcc94356
@@ -16410,6 +16426,10 @@ sha256=3ae9df56e8fc75ffe26e63a13cae2ce79d079416175fb0baffe0e2de8dc91a6d
md5=55ee3c6db3e0927e7918309891a8f52b
sha256=f5c7730ded0273a8615b12b46a32b800bbcb9e861e3a18aa92b1c062981a2fef
+[http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.bz2]
+md5=292ab65cedd5021d6b7ddd117e07cd8e
+sha256=b6ae1ee2fa3d42ac489287d3ec34c5885730b1296f0801ae577a35193d3affbc
+
[http://downloads.sourceforge.net/tilp/libticables-3.9.2.tar.gz]
md5=354675bfbd881082a9447efde9935226
sha256=1c091859f09d5a38c76f0d64a93db46aa2b5d637c8a7370d348f21e7be324c37
@@ -16666,9 +16686,13 @@ sha256=20b3cbdb4b05322d470404a7d2e8cdae1e0ce5372113218ae3cada3b29da70f7
md5=478646358c49f34aedcce58948793619
sha256=6eb7040048e35448fe224fa3fd993eb4e49a905c57893886082f1674d43b0e73
+[http://downloads.xiph.org/releases/vorbis/libvorbis-1.2.3.tar.gz]
+md5=5aa77f55c0e0aab8eb8ed982335daac8
+sha256=c679d1e5e45a3ec8aceb5e71de8e3712630b7a6dec6952886c17435a65955947
+
[http://downloads.sourceforge.net/libwbxml/libwbxml-0.10.7.tar.gz]
-md5=ef3e66df3c4223ce5ce0a70ded5c5221
-sha256=24112231e70c21f90348cefeea362de36aa7bace4088355efcbf4efe0dd242d0
+md5=5aa77f55c0e0aab8eb8ed982335daac8
+sha256=c679d1e5e45a3ec8aceb5e71de8e3712630b7a6dec6952886c17435a65955947
[http://downloads.sourceforge.net/libwiimote/libwiimote-0.4.tgz]
md5=0d8d61dc989d8ad83e1005a26136d388
@@ -20810,6 +20834,10 @@ sha256=bf26ebe42c12c81e5c32ceca80ff226a01c8d80d4db2a4cc3463d5bf241b095e
md5=129f8623dc4f70188a015e3cbd7eae82
sha256=74188aff5f2e5b77515a8cf3979199a598d58da8e4f573462b59cbf94cf1c99d
+[http://0pointer.de/lennart/projects/paprefs/paprefs-0.9.9.tar.gz]
+md5=0592ccb28c8f601a8fe3607b64e9f5bc
+sha256=1237939f0cea478ecd51452e817e08877e914c919239fcb63aa2471a389769a9
+
[ftp://ftp.gnu.org/gnu/parted/parted-1.6.23.tar.gz]
md5=7e46a32def60ea355c193d9225691742
sha256=5144f413dcce1a0b94263ebf3730f2a2afe6a9557bf261f9d6f48c890423f4c8
diff --git a/conf/distro/angstrom-2008.1.conf b/conf/distro/angstrom-2008.1.conf
index 0e1f39a7a6..c9fc16365b 100644
--- a/conf/distro/angstrom-2008.1.conf
+++ b/conf/distro/angstrom-2008.1.conf
@@ -23,7 +23,7 @@
#DISTRO_VERSION = "2009.X"
DISTRO_VERSION = "2009.X-test-${DATE}"
DISTRO_REVISION = "3"
-DISTRO_PR = ".4"
+DISTRO_PR = ".5"
OLDEST_KERNEL ?= "2.6.16"
diff --git a/conf/distro/include/preferred-shr-versions.inc b/conf/distro/include/preferred-shr-versions.inc
index b1948e8c02..f4ddf2fa25 100644
--- a/conf/distro/include/preferred-shr-versions.inc
+++ b/conf/distro/include/preferred-shr-versions.inc
@@ -20,6 +20,11 @@ PREFERRED_VERSION_linux-libc-headers = "2.6.31"
# now is EFL_SRCREV newer in sane-srcrevs.inc
# EFL_SRCREV ?= "43898"
+# specifically set an openssh version
+# NOTE: whenever changing the version here make sure
+# to check we won't loose our specific config !!!
+PREFERRED_VERSION_openssh = "5.2p1"
+
# upgrades used in Angstrom
PREFERRED_VERSION_gtk+ = "2.18.3"
PREFERRED_VERSION_hal = "0.5.13"
diff --git a/conf/distro/include/sane-srcrevs.inc b/conf/distro/include/sane-srcrevs.inc
index d572cfdebf..7e277257eb 100644
--- a/conf/distro/include/sane-srcrevs.inc
+++ b/conf/distro/include/sane-srcrevs.inc
@@ -5,8 +5,6 @@
# This will miss recipes that have skippackage set (e.g. uclibc)
-SHR-THEMES="9d7ca1cecb93022e5b890cd87756ac6f072710ca"
-
# this is alphabetical!
# yes, really!
@@ -16,7 +14,7 @@ SHR-THEMES="9d7ca1cecb93022e5b890cd87756ac6f072710ca"
SRCREV_pn-accelges ?= "206"
SRCREV_pn-advancedcaching ?= "9c3661f5573d2dd712437f1590070153d12e4c02"
SRCREV_pn-aircrack-ng ?= "802"
-SRCREV_pn-alsa-scenarii-shr ?= $SHR{THEMES}
+SRCREV_pn-alsa-scenarii-shr ?= "9d7ca1cecb93022e5b890cd87756ac6f072710ca"
SRCREV_pn-alsa-scenario ?= "8bd7f83d847424eb44704cf1649974b2fda8d8f1"
SRCREV_pn-app-restarter ?= "4552"
SRCREV_pn-assassin ?= "268"
@@ -261,9 +259,9 @@ SRCREV_pn-openmoocow ?= "39648419825cddfea1cb1321e552a12b71fede14"
SRCREV_pn-openocd ?= "517"
SRCREV_pn-openocd-native ?= "517"
SRCREV_pn-opimd-utils ?= "9c1283ec03748a2fa541a16730904ea7f2bb59fc"
-SRCREV_pn-opkg ?= "363"
-SRCREV_pn-opkg-native ?= "240"
-SRCREV_pn-opkg-sdk ?= "363"
+SRCREV_pn-opkg ?= "402"
+SRCREV_pn-opkg-native ?= "402"
+SRCREV_pn-opkg-sdk ?= "402"
SRCREV_pn-opkg-utils ?= "4578"
SRCREV_pn-opkg-utils-native ?= "4595"
SRCREV_pn-oprofileui ?= "173"
@@ -309,13 +307,13 @@ SRCREV_pn-shr-launcher ?= "87"
SRCREV_pn-shr-messages ?= "9d7ca1cecb93022e5b890cd87756ac6f072710ca"
SRCREV_pn-shr-settings ?= "324c5419655e1c4d9a778f3b76780e940f84c817"
SRCREV_pn-shr-specs ?= "a881cd133439737708d4d4d150500246ceff7c7d"
-SRCREV_pn-shr-splash ?= ${SHR-THEMES}
-SRCREV_pn-shr-splash-theme-dontpanic ?= ${SHR-THEMES}
-SRCREV_pn-shr-splash-theme-handy ?= ${SHR-THEMES}
-SRCREV_pn-shr-splash-theme-logo ?= ${SHR-THEMES}
-SRCREV_pn-shr-splash-theme-niebiee ?= ${SHR-THEMES}
-SRCREV_pn-shr-splash-theme-simple ?= ${SHR-THEMES}
-SRCREV_pn-shr-splash-theme-tux ?= ${SHR-THEMES}
+SRCREV_pn-shr-splash ?= "9d7ca1cecb93022e5b890cd87756ac6f072710ca"
+SRCREV_pn-shr-splash-theme-dontpanic ?= "9d7ca1cecb93022e5b890cd87756ac6f072710ca"
+SRCREV_pn-shr-splash-theme-handy ?= "9d7ca1cecb93022e5b890cd87756ac6f072710ca"
+SRCREV_pn-shr-splash-theme-logo ?= "9d7ca1cecb93022e5b890cd87756ac6f072710ca"
+SRCREV_pn-shr-splash-theme-niebiee ?= "9d7ca1cecb93022e5b890cd87756ac6f072710ca"
+SRCREV_pn-shr-splash-theme-simple ?= "9d7ca1cecb93022e5b890cd87756ac6f072710ca"
+SRCREV_pn-shr-splash-theme-tux ?= "9d7ca1cecb93022e5b890cd87756ac6f072710ca"
SRCREV_pn-shr-theme ?= "9d7ca1cecb93022e5b890cd87756ac6f072710ca"
SRCREV_pn-shr-theme-gtk-e17lookalike ?= "1cc80e26a4558dfc2268b349d9a1f468e515bcfb"
SRCREV_pn-shr-today ?= "7b69649a9df0e85f0c0f7985fd1d93543c3b11e2"
diff --git a/conf/distro/nylon.conf b/conf/distro/nylon.conf
index 99cab2bcbb..7ab7b35d20 100644
--- a/conf/distro/nylon.conf
+++ b/conf/distro/nylon.conf
@@ -62,12 +62,11 @@ PREFERRED_VERSION_glibc = "2.3.3"
PREFERRED_VERSION_glibc-initial = "2.3.2"
PREFERRED_VERSION_shorewall = "2.0.9-monolithic"
PREFERRED_VERSION_ppp-dsl = "0.1-monolithic"
-PREFERRED_VERSION_mtd-utils = "1.0.0+git"
+PREFERRED_VERSION_mtd-utils = "1.1.0"
PREFERRED_VERSION_kismet = "2005-01-R1"
-PREFERRED_VERSION_automake-native = "1.10"
+PREFERRED_VERSION_automake-native = "1.10.2"
PREFERRED_VERSION_pkgconfig-native = "0.23"
PREFERRED_VERSION_netperf = "2.3"
-PREFERRED_PROVIDER_hotplug = "linux-hotplug"
PREFERRED_VERSION_gcc-cross-initial = "3.3.4"
PREFERRED_VERSION_gcc-cross-intermediate = "3.3.4"
@@ -83,3 +82,8 @@ PREFERRED_VERSION_prism54-firmware = "1.0.3.0"
PREFERRED_VERSION_udev = "100"
PREFERRED_VERSION_madwifi-modules = "0.9.3"
PREFERRED_VERSION_madwifi-tools = "0.9.3"
+PREFERRED_VERSION_e2fsprogs-libs = "1.41.8"
+PREFERRED_VERSION_dbus = "1.2.1"
+
+PREFERRED_PROVIDER_hotplug = "linux-hotplug"
+PREFERRED_PROVIDER_opkg = "opkg-nogpg"
diff --git a/conf/machine/include/davinci.inc b/conf/machine/include/davinci.inc
index baae3ff327..ceafa800b2 100644
--- a/conf/machine/include/davinci.inc
+++ b/conf/machine/include/davinci.inc
@@ -1,7 +1,7 @@
require conf/machine/include/tune-arm926ejs.inc
# Increase this everytime you change something in the kernel
-MACHINE_KERNEL_PR = "r11"
+MACHINE_KERNEL_PR = "r12"
TARGET_ARCH = "arm"
@@ -15,7 +15,7 @@ UBOOT_MACHINE = "davinci_dvevm_config"
UBOOT_ENTRYPOINT = "0x80008000"
UBOOT_LOADADDRESS = "0x80008000"
-#EXTRA_IMAGEDEPENDS += "u-boot ubl"
+EXTRA_IMAGEDEPENDS += "u-boot"
SERIAL_CONSOLE ?= "115200 ttyS0"
EXTRA_IMAGECMD_jffs2 = "--pad --little-endian --eraseblock=0x20000 -n"
diff --git a/conf/machine/include/kirkwood.inc b/conf/machine/include/kirkwood.inc
index f91607cf76..2d48c8b7d6 100644
--- a/conf/machine/include/kirkwood.inc
+++ b/conf/machine/include/kirkwood.inc
@@ -11,7 +11,7 @@ USE_DEVFS = "0"
PREFERRED_PROVIDER_virtual/bootloader = ""
PREFERRED_PROVIDER_virtual/kernel = "linux-kirkwood"
-MACHINE_KERNEL_PR = "r12"
+MACHINE_KERNEL_PR = "r13"
IMAGE_FSTYPES += "tar.gz ubi"
SERIAL_CONSOLE = "ttyS0 115200"
diff --git a/recipes/apache2/apache2-2.2.14/apr-sockets-patch b/recipes/apache2/apache2-2.2.14/apr-sockets-patch
new file mode 100644
index 0000000000..5e974820b3
--- /dev/null
+++ b/recipes/apache2/apache2-2.2.14/apr-sockets-patch
@@ -0,0 +1,10 @@
+--- httpd-2.2.3/srclib/apr/network_io/unix/sockets.c.orig
++++ httpd-2.2.3/srclib/apr/network_io/unix/sockets.c
+@@ -231,6 +231,7 @@
+ #if APR_O_NONBLOCK_INHERITED
+ if (apr_is_option_set(sock, APR_SO_NONBLOCK) == 1) {
+ apr_set_option(*new, APR_SO_NONBLOCK, 1);
++ apr_socket_opt_set(*new, APR_SO_NONBLOCK, 0);
+ }
+ #endif /* APR_O_NONBLOCK_INHERITED */
+
diff --git a/recipes/apache2/apache2-2.2.14/apr.h.in.patch b/recipes/apache2/apache2-2.2.14/apr.h.in.patch
new file mode 100644
index 0000000000..97554c9f74
--- /dev/null
+++ b/recipes/apache2/apache2-2.2.14/apr.h.in.patch
@@ -0,0 +1,13 @@
+Index: httpd-2.2.14/srclib/apr/include/apr.h.in
+===================================================================
+--- httpd-2.2.14.orig/srclib/apr/include/apr.h.in
++++ httpd-2.2.14/srclib/apr/include/apr.h.in
+@@ -224,7 +224,7 @@ extern "C" {
+ #define APR_HAVE_STRUCT_RLIMIT @struct_rlimit@
+ #define APR_HAVE_UNION_SEMUN @have_union_semun@
+ #define APR_HAVE_SCTP @have_sctp@
+-#define APR_HAVE_IOVEC @have_iovec@
++#define APR_HAVE_IOVEC 1
+
+ /* APR Feature Macros */
+ #define APR_HAS_SHARED_MEMORY @sharedmem@
diff --git a/recipes/apache2/apache2-2.2.14/configure-patch b/recipes/apache2/apache2-2.2.14/configure-patch
new file mode 100644
index 0000000000..50f7420a8d
--- /dev/null
+++ b/recipes/apache2/apache2-2.2.14/configure-patch
@@ -0,0 +1,71 @@
+Index: httpd-2.2.14/configure
+===================================================================
+--- httpd-2.2.14.orig/configure
++++ httpd-2.2.14/configure
+@@ -3795,26 +3795,6 @@ if test "${with_apr+set}" = set; then :
+
+ else
+
+- if test -n "1" && test "1" = "1"; then
+- for apr_temp_apr_config_file in $apr_temp_acceptable_apr_config
+- do
+- if $apr_temp_apr_config_file --help > /dev/null 2>&1 ; then
+- apr_config="$apr_temp_apr_config_file"
+-
+- apr_found="yes"
+- break
+- else
+- for lookdir in /usr /usr/local /usr/local/apr /opt/apr; do
+- if $TEST_X "$lookdir/bin/$apr_temp_apr_config_file"; then
+- apr_config="$lookdir/bin/$apr_temp_apr_config_file"
+-
+- apr_found="yes"
+- break 2
+- fi
+- done
+- fi
+- done
+- fi
+ if test "$apr_found" = "no" && test -d ""$srcdir/srclib/apr""; then
+ apr_temp_abs_srcdir="`cd "$srcdir/srclib/apr" && pwd`"
+ apr_found="reconfig"
+@@ -4147,26 +4127,6 @@ if test "${with_apr_util+set}" = set; th
+
+ else
+
+- if test -n "1" && test "1" = "1"; then
+- for apu_temp_apu_config_file in $apu_temp_acceptable_apu_config
+- do
+- if $apu_temp_apu_config_file --help > /dev/null 2>&1 ; then
+- apu_config="$apu_temp_apu_config_file"
+-
+- apu_found="yes"
+- break
+- else
+- for lookdir in /usr /usr/local /usr/local/apr /opt/apr; do
+- if $TEST_X "$lookdir/bin/$apu_temp_apu_config_file"; then
+- apu_config="$lookdir/bin/$apu_temp_apu_config_file"
+-
+- apu_found="yes"
+- break 2
+- fi
+- done
+- fi
+- done
+- fi
+ if test "$apu_found" = "no" && test -d ""$srcdir/srclib/apr-util""; then
+ apu_temp_abs_srcdir="`cd "$srcdir/srclib/apr-util" && pwd`"
+ apu_found="reconfig"
+@@ -7045,7 +7005,11 @@ if test "${ap_cv_void_ptr_lt_long+set}"
+ $as_echo_n "(cached) " >&6
+ else
+ if test "$cross_compiling" = yes; then :
+- ap_cv_void_ptr_lt_long=yes
++ if test "$ac_cv_sizeof_long_p" = "$ac_cv_sizeof_void_p"; then
++ ap_void_ptr_lt_long=no
++ else
++ ap_void_ptr_lt_long=yes
++ fi
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
diff --git a/recipes/apache2/apache2-2.2.14/configure.in.patch b/recipes/apache2/apache2-2.2.14/configure.in.patch
new file mode 100644
index 0000000000..2ca098dc86
--- /dev/null
+++ b/recipes/apache2/apache2-2.2.14/configure.in.patch
@@ -0,0 +1,27 @@
+Index: httpd-2.2.14/srclib/apr/configure.in
+===================================================================
+--- httpd-2.2.14.orig/srclib/apr/configure.in
++++ httpd-2.2.14/srclib/apr/configure.in
+@@ -923,7 +923,7 @@ AC_CHECK_FUNCS([mmap munmap shm_open shm
+ create_area])
+
+ APR_CHECK_DEFINE(MAP_ANON, sys/mman.h)
+-AC_CHECK_FILE(/dev/zero)
++APR_CHECK_FILE(/dev/zero)
+
+ # Not all systems can mmap /dev/zero (such as HP-UX). Check for that.
+ if test "$ac_cv_func_mmap" = "yes" &&
+Index: httpd-2.2.14/configure.in
+===================================================================
+--- httpd-2.2.14.orig/configure.in
++++ httpd-2.2.14/configure.in
+@@ -61,6 +61,9 @@ APR_MKDIR_P_CHECK($top_srcdir/build/mkdi
+
+ dnl ## Run configure for packages Apache uses
+
++dnl first configure subdirs
++AC_CONFIG_SUBDIRS(srclib/apr srclib/apr-util srclib/prce)
++
+ dnl shared library support for these packages doesn't currently
+ dnl work on some platforms
+
diff --git a/recipes/apache2/apache2-2.2.14/dftables-makefile-patch b/recipes/apache2/apache2-2.2.14/dftables-makefile-patch
new file mode 100644
index 0000000000..ac966db282
--- /dev/null
+++ b/recipes/apache2/apache2-2.2.14/dftables-makefile-patch
@@ -0,0 +1,10 @@
+--- http-2.2.3/srclib/pcre/Makefile.in-orig
++++ http-2.2.3/srclib/pcre/Makefile.in 2005-12-20 13:12:03.000000000 -0500
+@@ -15,6 +15,6 @@
+ $(LINK) $(EXTRA_LDFLAGS) dftables.lo $(EXTRA_LIBS)
+
+ $(srcdir)/chartables.c: dftables
+- ./dftables $@
++ dftables $@
+
+ pcre.lo: $(srcdir)/chartables.c
diff --git a/recipes/apache2/apache2-2.2.14/server-makefile-patch b/recipes/apache2/apache2-2.2.14/server-makefile-patch
new file mode 100644
index 0000000000..f1349cb6a4
--- /dev/null
+++ b/recipes/apache2/apache2-2.2.14/server-makefile-patch
@@ -0,0 +1,11 @@
+--- http-2.0.54/server/Makefile.in-old 2005-12-20 13:26:56.000000000 -0500
++++ http-2.0.54/server/Makefile.in 2005-12-20 13:27:22.000000000 -0500
+@@ -27,7 +27,7 @@
+ $(LINK) $(EXTRA_LDFLAGS) $(gen_test_char_OBJECTS) $(EXTRA_LIBS)
+
+ test_char.h: gen_test_char
+- ./gen_test_char > test_char.h
++ gen_test_char > test_char.h
+
+ util.lo: test_char.h
+
diff --git a/recipes/apache2/apache2-native_2.2.14.bb b/recipes/apache2/apache2-native_2.2.14.bb
new file mode 100644
index 0000000000..460c3fdf9d
--- /dev/null
+++ b/recipes/apache2/apache2-native_2.2.14.bb
@@ -0,0 +1,40 @@
+SECTION = "net"
+DEPENDS = "expat pcre"
+
+inherit native
+
+PR ="r0"
+SRC_URI = "http://www.apache.org/dist/httpd/httpd-${PV}.tar.bz2"
+
+S = "${WORKDIR}/httpd-${PV}"
+
+do_configure () {
+ ./configure --with-included-apr --prefix=${prefix}
+}
+
+do_stage () {
+ install -d ${STAGING_BINDIR_NATIVE}
+ cp srclib/pcre/dftables ${STAGING_BINDIR_NATIVE}
+ cp server/gen_test_char ${STAGING_BINDIR_NATIVE}
+ cp srclib/apr/apr-1-config ${STAGING_BINDIR_NATIVE}
+ cp srclib/apr-util/apu-1-config ${STAGING_BINDIR_NATIVE}
+ cp support/apxs ${STAGING_BINDIR_NATIVE}
+ chmod 755 ${STAGING_BINDIR_NATIVE}/apxs
+ mkdir -p ${STAGING_DIR_NATIVE}//usr/build
+ cp build/*.mk ${STAGING_DIR_NATIVE}/usr/build
+ cp build/instdso.sh ${STAGING_DIR_NATIVE}/usr/build
+ cp .libs/httpd ${STAGING_BINDIR_NATIVE}
+
+ (cd srclib/apr/.libs; tar -cf - libapr-*.so* ) |
+ (cd ${STAGING_LIBDIR_NATIVE}; tar -xf - )
+ (cd srclib/apr-util/.libs; tar -cf - libaprutil-*.so* ) |
+ (cd ${STAGING_LIBDIR_NATIVE}; tar -xf - )
+
+ mkdir -p ${STAGING_INCDIR_NATIVE}/apache2
+ cp include/* ${STAGING_INCDIR_NATIVE}/apache2
+ cp os/unix/os.h ${STAGING_INCDIR_NATIVE}/apache2
+ cp os/unix/unixd.h ${STAGING_INCDIR_NATIVE}/apache2
+
+ cp support/envvars-std ${STAGING_BINDIR_NATIVE}/envvars
+ chmod 755 ${STAGING_BINDIR_NATIVE}/envvars
+}
diff --git a/recipes/apache2/apache2_2.2.14.bb b/recipes/apache2/apache2_2.2.14.bb
new file mode 100644
index 0000000000..8990d53050
--- /dev/null
+++ b/recipes/apache2/apache2_2.2.14.bb
@@ -0,0 +1,114 @@
+SECTION = "net"
+DESCRIPTION = "The apache v2 web server"
+DEPENDS = "apache2-native openssl expat pcre"
+RDEPENDS += "openssl"
+
+PR = "r0"
+
+SRC_URI = "http://apache.mirrors.tds.net/httpd/httpd-${PV}.tar.bz2 \
+ file://dftables-makefile-patch;patch=1 \
+ file://apr-sockets-patch;patch=1 \
+ file://configure-patch;patch=1 \
+ file://server-makefile-patch;patch=1 \
+ file://configure.in.patch;patch=1 \
+ file://apr.h.in.patch;patch=1 \
+ file://init"
+
+#
+# over-ride needed since apache unpacks into httpd
+#
+S = "${WORKDIR}/httpd-${PV}"
+
+#
+# implications - autotools defines suitable do_configure, do_install, etc.
+# update-rc.d adds hooks for rc-update.
+#
+#
+inherit autotools update-rc.d
+
+#
+# implications - used by update-rc.d scripts
+#
+INITSCRIPT_NAME = "apache2"
+INITSCRIPT_PARAMS = "defaults 91 20"
+LEAD_SONAME = "libapr-1.so.0"
+
+CONFFILES_${PN} = "${sysconfdir}/${PN}/httpd.conf \
+ ${sysconfdir}/${PN}/magic \
+ ${sysconfdir}/${PN}/mime.types \
+ ${sysconfdir}/init.d/${PN} "
+
+#
+PACKAGES = "${PN}-doc ${PN}-dev ${PN}-dbg ${PN}"
+
+# we override here rather than append so that .so links are
+# included in the runtime package rather than here (-dev)
+# and to get build, icons, error into the -dev package
+FILES_${PN}-dev = "${datadir}/${PN}/build \
+ ${datadir}/${PN}/icons \
+ ${datadir}/${PN}/error \
+ ${bindir}/apr-config ${bindir}/apu-config \
+ ${libdir}/apr*.exp \
+ ${includedir}/${PN} \
+ ${libdir}/*.la \
+ ${libdir}/*.a"
+
+# manual to manual
+FILES_${PN}-doc += " ${datadir}/${PN}/manual"
+
+#
+# override this too - here is the default, less datadir
+#
+FILES_${PN} = "${bindir} ${sbindir} ${libexecdir} ${libdir}/lib*.so.* ${sysconfdir} \
+ ${sharedstatedir} ${localstatedir} /bin /sbin /lib/*.so* \
+ ${libdir}/${PN}"
+
+# we want htdocs and cgi-bin to go with the binary
+FILES_${PN} += "${datadir}/${PN}/htdocs ${datadir}/${PN}/cgi-bin"
+
+#make sure the lone .so links also get wrapped in the base package
+FILES_${PN} += " ${libdir}/lib*.so ${libdir}/pkgconfig/*"
+
+CFLAGS_append = " -DPATH_MAX=4096"
+CFLAGS_prepend = "-I${STAGING_INCDIR}/openssl "
+EXTRA_OECONF = "--enable-ssl \
+ --with-ssl=${STAGING_LIBDIR}/.. \
+ --with-expat=${STAGING_LIBDIR}/.. \
+ --enable-info \
+ --enable-rewrite \
+ --with-dbm=sdbm \
+ --with-berkeley-db=no \
+ --localstatedir=/var/${PN} \
+ --with-gdbm=no \
+ --with-ndbm=no \
+ --includedir=${includedir}/${PN} \
+ --datadir=${datadir}/${PN} \
+ --sysconfdir=${sysconfdir}/${PN} \
+ "
+
+#
+# here we over-ride the autotools provided do_configure.
+#
+do_configure() {
+ ( cd srclib/apr; ./buildconf )
+ oe_runconf
+}
+
+do_compile_prepend() {
+ ln -sf ${S}/srclib/apr/${TARGET_PREFIX}libtool ${S}/srclib/apr/libtool
+}
+
+do_install_append() {
+ install -d ${D}/${sysconfdir}/init.d
+ cat ${WORKDIR}/init | \
+ sed -e 's,/usr/sbin/,${sbindir}/,g' \
+ -e 's,/usr/bin/,${bindir}/,g' \
+ -e 's,/usr/lib,${libdir}/,g' \
+ -e 's,/etc/,${sysconfdir}/,g' \
+ -e 's,/usr/,${prefix}/,g' > ${D}/${sysconfdir}/init.d/${PN}
+ chmod 755 ${D}/${sysconfdir}/init.d/${PN}
+# remove the goofy original files...
+ rm -rf ${D}/${sysconfdir}/${PN}/original
+# Expat should be found in the staging area via DEPENDS...
+ rm -f ${D}/${libdir}/libexpat.*
+}
diff --git a/recipes/e2fsprogs-libs/e2fsprogs-libs.inc b/recipes/e2fsprogs-libs/e2fsprogs-libs.inc
index 45618b008c..f5e974b8aa 100644
--- a/recipes/e2fsprogs-libs/e2fsprogs-libs.inc
+++ b/recipes/e2fsprogs-libs/e2fsprogs-libs.inc
@@ -35,3 +35,12 @@ do_stage () {
install -m 0644 lib/ss/ss.h ${STAGING_INCDIR}/ss/
install -m 0644 lib/ss/ss_err.h ${STAGING_INCDIR}/ss/
}
+
+# avoid requiring unsupported util-linux-ng for nylon, provide uuid for others...
+DEPENDS_nylon = ""
+EXTRA_OECONF_nylon = ""
+do_stage_append_nylon() {
+ install -d ${STAGING_INCDIR}/uuid
+ install -m 0644 lib/uuid/uuid.h ${STAGING_INCDIR}/uuid/
+ install -m 0644 lib/uuid/libuuid.a ${STAGING_LIBDIR}/
+}
diff --git a/recipes/efl1/eina/gnu_source.patch b/recipes/efl1/eina/gnu_source.patch
new file mode 100644
index 0000000000..8af08ebb82
--- /dev/null
+++ b/recipes/efl1/eina/gnu_source.patch
@@ -0,0 +1,12 @@
+Index: eina/configure.ac
+===================================================================
+--- eina.orig/configure.ac 2009-11-26 15:58:28.784112802 +0100
++++ eina/configure.ac 2009-11-26 15:59:34.524939842 +0100
+@@ -273,6 +273,7 @@
+ AC_C_INLINE
+ AC_C___ATTRIBUTE__
+ AC_PROG_CC_STDC
++AC_GNU_SOURCE
+
+ EINA_CPPFLAGS=""
+ case "$host_os" in
diff --git a/recipes/efl1/eina_svn.bb b/recipes/efl1/eina_svn.bb
index 4871cd3ce9..a871721e7c 100644
--- a/recipes/efl1/eina_svn.bb
+++ b/recipes/efl1/eina_svn.bb
@@ -1,10 +1,12 @@
DESCRIPTION = "Eina is the Enlightenment data library"
LICENSE = "LGPL"
PV = "0.0.2.060+svnr${SRCPV}"
-PR = "r0"
+PR = "r1"
inherit efl
+SRC_URI += "file://gnu_source.patch;patch=1"
+
# Some upgrade path tweaking
AUTO_LIBNAME_PKGS = ""
diff --git a/recipes/gcc/gcc-configure-common.inc b/recipes/gcc/gcc-configure-common.inc
index efe8ee8787..8a96326b7d 100644
--- a/recipes/gcc/gcc-configure-common.inc
+++ b/recipes/gcc/gcc-configure-common.inc
@@ -12,6 +12,7 @@ JAVA_sh3 ?= ""
OBJC_linux-uclibceabi ?= ""
OBJC_linux-uclibc ?= ""
OBJC_avr ?= ""
+OBJC_nylon ?= ""
OBJC ?= ",objc"
# gcc 3.x expects 'f77', 4.0 expects 'f95', 4.1 and 4.2 expect 'fortran'
diff --git a/recipes/gnome/gconfmm_2.28.0.bb b/recipes/gnome/gconfmm_2.28.0.bb
new file mode 100644
index 0000000000..b7e57d2e59
--- /dev/null
+++ b/recipes/gnome/gconfmm_2.28.0.bb
@@ -0,0 +1,5 @@
+DESCRIPTION = "C++ bindings for GConf"
+LICENSE = "LGPLv2"
+DEPENDS = "glibmm gconf gtkmm"
+
+inherit gnome
diff --git a/recipes/gnome/gnome-games_2.24.0.bb b/recipes/gnome/gnome-games_2.24.0.bb
index b4e7cf43c9..20221bd410 100644
--- a/recipes/gnome/gnome-games_2.24.0.bb
+++ b/recipes/gnome/gnome-games_2.24.0.bb
@@ -16,21 +16,14 @@ EXTRA_OECONF = "--with-libggz-includes=${STAGING_INCDIR} \
INTLTOOL_PERL=${STAGING_BINDIR_NATIVE}/perl \
"
+# disable help dir and crappy old sdl-macro
do_configure_prepend() {
+ rm m4/sdl.m4
for i in $(find ${S} -name "Makefile.am") ; do
sed -i -e s:help::g $i
done
}
-do_configure_append() {
- for i in $(find ${S} -name "Makefile") ; do
- sed -i \
- -e s:'-I/usr/include/SDL':'-I${STAGING_INCDIR}/SDL':g \
- -e s:'-I/usr/local/include/SDL':'-I${STAGING_INCDIR}/SDL':g \
- $i
- done
-}
-
# copy matchbox icons
do_install_append() {
install -m 0644 ${D}/${datadir}/icons/hicolor/48x48/apps/* ${D}/${datadir}/pixmaps
diff --git a/recipes/gphoto2/gphoto2_2.4.7.bb b/recipes/gphoto2/gphoto2_2.4.7.bb
new file mode 100644
index 0000000000..8af31d15dc
--- /dev/null
+++ b/recipes/gphoto2/gphoto2_2.4.7.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "gphoto2 is a command-line utility to fetch pictures from digital cameras"
+SECTION = "console/utils"
+LICENSE = "GPL"
+DEPENDS = "libtool libgphoto2 popt"
+PR = "r0"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/gphoto/gphoto2-${PV}.tar.bz2\
+ file://gphoto-popt-fixup.patch;patch=1"
+
+inherit autotools
+
+do_configure_append() {
+ find ${S} -name Makefile | xargs sed -i 's:/usr/include:${STAGING_INCDIR}:'
+}
+
diff --git a/recipes/gphoto2/libgphoto2_2.4.7.bb b/recipes/gphoto2/libgphoto2_2.4.7.bb
new file mode 100644
index 0000000000..45d42c398c
--- /dev/null
+++ b/recipes/gphoto2/libgphoto2_2.4.7.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "libgphoto2 allows you to access digital cameras"
+SECTION = "libs"
+LICENSE = "GPL"
+DEPENDS = "libtool jpeg virtual/libusb0 libexif"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/gphoto/libgphoto2-${PV}.tar.bz2"
+
+inherit autotools pkgconfig lib_package
+
+OE_LT_RPATH_ALLOW=":${libdir}:"
+OE_LT_RPATH_ALLOW[export]="1"
+
+EXTRA_OECONF = " --with-drivers=all ac_cv_lib_ltdl_lt_dlcaller_register=yes"
+
+PACKAGES =+ "libgphotoport libgphoto2-camlibs"
+FILES_libgphoto2-camlibs = "${libdir}/libgphoto2*/*/*.so*"
+RDEPENDS_${PN} = "libgphoto2-camlibs"
+
+FILES_libgphotoport = "${libdir}/libgphoto2_port.so.*"
+
+FILES_${PN} += "${libdir}/udev/*"
+FILES_${PN}-dbg += "${libdir}/*/*/.debug"
+
+
+
diff --git a/recipes/guile/guile-native.inc b/recipes/guile/guile-native.inc
index 28cb2e0f15..831e088134 100644
--- a/recipes/guile/guile-native.inc
+++ b/recipes/guile/guile-native.inc
@@ -6,126 +6,6 @@ inherit autotools native
S="${WORKDIR}/guile-${PV}"
-OE_LT_RPATH_ALLOW = "any"
-LDFLAGS += " -L${STAGING_LIBDIR} "
-
-LIBGUILE_HEADERS = "\
-__scm.h \
-alist.h \
-arbiters.h \
-async.h \
-backtrace.h \
-boolean.h \
-chars.h \
-continuations.h \
-debug-malloc.h \
-debug.h \
-deprecation.h \
-dynl.h \
-dynwind.h \
-environments.h \
-eq.h \
-error.h \
-eval.h \
-evalext.h \
-extensions.h \
-feature.h \
-filesys.h \
-fluids.h \
-fports.h \
-gc.h \
-gdb_interface.h \
-gdbint.h \
-goops.h \
-gsubr.h \
-guardians.h \
-hash.h \
-hashtab.h \
-hooks.h \
-init.h \
-ioext.h \
-iselect.h \
-keywords.h \
-lang.h \
-list.h \
-load.h \
-macros.h \
-mallocs.h \
-modules.h \
-net_db.h \
-numbers.h \
-objects.h \
-objprop.h \
-options.h \
-pairs.h \
-ports.h \
-posix.h \
-print.h \
-procprop.h \
-procs.h \
-properties.h \
-ramap.h \
-random.h \
-rdelim.h \
-read.h \
-regex-posix.h \
-root.h \
-rw.h \
-scmconfig.h \
-scmsigs.h \
-script.h \
-simpos.h \
-smob.h \
-snarf.h \
-socket.h \
-sort.h \
-srcprop.h \
-stackchk.h \
-stacks.h \
-stime.h \
-strings.h \
-strorder.h \
-strports.h \
-struct.h \
-symbols.h \
-tags.h \
-threads.h \
-throw.h \
-unif.h \
-validate.h \
-values.h \
-variable.h \
-vectors.h \
-version.h \
-vports.h \
-weaks.h \
-"
-
-do_stage() {
- install -d ${STAGING_INCDIR}/libguile
- for i in ${LIBGUILE_HEADERS}; do
- install -m 0644 libguile/$i ${STAGING_INCDIR}/libguile/$i
- done
-
- install -d ${STAGING_BINDIR_NATIVE}
- install -m 0755 ${S}/libguile/.libs/guile ${STAGING_BINDIR_NATIVE}/
-
- install -m 0644 libguile.h ${STAGING_INCDIR}/libguile.h
- install -d ${STAGING_INCDIR}/guile
- install -m 0644 libguile/gh.h ${STAGING_INCDIR}/guile/
- install -d ${STAGING_INCDIR}/guile/srfi
- install -d ${STAGING_INCDIR}/guile-readline
- install -m 0644 guile-readline/readline.h ${STAGING_INCDIR}/guile-readline/
- install -d ${STAGING_DATADIR}/aclocal
- install -m 0644 guile-config/guile.m4 ${STAGING_DATADIR}/aclocal
-
- install -d ${STAGING_DATADIR}/guile/1.8
- cp -pPr ${S}/ice-9 ${STAGING_DATADIR}/guile/1.8/
-
- oe_libinstall -C guile-readline -so -a libguilereadline-v-17 ${STAGING_LIBDIR}
- oe_libinstall -C libguile -so -a libguile ${STAGING_LIBDIR}
-}
-
do_configure_append() {
find ${S} -name Makefile | xargs sed -i s:'-Werror':'':g
}
diff --git a/recipes/libogg/libogg.inc b/recipes/libogg/libogg.inc
new file mode 100644
index 0000000000..f8eed60fef
--- /dev/null
+++ b/recipes/libogg/libogg.inc
@@ -0,0 +1,11 @@
+SECTION = "libs"
+DESCRIPTION = "libogg is the bitstream and framing library \
+for the Ogg project. It provides functions which are \
+necessary to codec libraries like libvorbis."
+LICENSE = "BSD"
+
+INC_PR = "r4"
+
+inherit autotools
+
+SRC_URI = "http://downloads.xiph.org/releases/ogg/libogg-${PV}.tar.gz"
diff --git a/recipes/libogg/libogg_1.0.bb b/recipes/libogg/libogg_1.0.bb
index 7af1468004..d5bad18a0a 100644
--- a/recipes/libogg/libogg_1.0.bb
+++ b/recipes/libogg/libogg_1.0.bb
@@ -1,18 +1,4 @@
-SECTION = "libs"
-DESCRIPTION = "libogg is the bitstream and framing library \
-for the Ogg project. It provides functions which are \
-necessary to codec libraries like libvorbis."
-LICENSE = "BSD"
-PR = "r1"
+require libogg.inc
-SRC_URI = "http://www.vorbis.com/files/${PV}/unix/libogg-${PV}.tar.gz"
+PR = "${INC_PR}.0"
-inherit autotools pkgconfig
-
-do_stage () {
- oe_libinstall -a -so -C src libogg ${STAGING_LIBDIR}
-
- install -d ${STAGING_INCDIR}/ogg
- (cd ${S}/include/ogg; cp config_types.h ogg.h os_types.h ${STAGING_INCDIR}/ogg/)
- install -m 0644 ${S}/ogg.m4 ${STAGING_DATADIR}/aclocal/
-}
diff --git a/recipes/libogg/libogg_1.1.3.bb b/recipes/libogg/libogg_1.1.3.bb
index 0a6e827ff1..d5bad18a0a 100644
--- a/recipes/libogg/libogg_1.1.3.bb
+++ b/recipes/libogg/libogg_1.1.3.bb
@@ -1,17 +1,4 @@
-SECTION = "libs"
-DESCRIPTION = "libogg is the bitstream and framing library \
-for the Ogg project. It provides functions which are \
-necessary to codec libraries like libvorbis."
-LICENSE = "BSD"
+require libogg.inc
-SRC_URI = "http://downloads.xiph.org/releases/ogg/libogg-${PV}.tar.gz"
+PR = "${INC_PR}.0"
-inherit autotools pkgconfig
-
-do_stage () {
- oe_libinstall -a -so -C src libogg ${STAGING_LIBDIR}
-
- install -d ${STAGING_INCDIR}/ogg
- (cd ${S}/include/ogg; cp config_types.h ogg.h os_types.h ${STAGING_INCDIR}/ogg/)
- install -m 0644 ${S}/ogg.m4 ${STAGING_DATADIR}/aclocal/
-}
diff --git a/recipes/libogg/libogg_1.1.4.bb b/recipes/libogg/libogg_1.1.4.bb
new file mode 100644
index 0000000000..d5bad18a0a
--- /dev/null
+++ b/recipes/libogg/libogg_1.1.4.bb
@@ -0,0 +1,4 @@
+require libogg.inc
+
+PR = "${INC_PR}.0"
+
diff --git a/recipes/libogg/libogg_1.1.bb b/recipes/libogg/libogg_1.1.bb
index 687b4decec..0baec126e3 100644
--- a/recipes/libogg/libogg_1.1.bb
+++ b/recipes/libogg/libogg_1.1.bb
@@ -1,19 +1,6 @@
-SECTION = "libs"
-DESCRIPTION = "libogg is the bitstream and framing library \
-for the Ogg project. It provides functions which are \
-necessary to codec libraries like libvorbis."
-LICENSE = "BSD"
-PR = "r3"
+require libogg.inc
-SRC_URI = "http://www.vorbis.com/files/1.0.1/unix/libogg-${PV}.tar.gz \
-file://m4.patch;patch=1"
+PR = "${INC_PR}.0"
-inherit autotools pkgconfig
+SRC_URI += "file://m4.patch;patch=1"
-do_stage () {
- oe_libinstall -a -so -C src libogg ${STAGING_LIBDIR}
-
- install -d ${STAGING_INCDIR}/ogg
- (cd ${S}/include/ogg; cp config_types.h ogg.h os_types.h ${STAGING_INCDIR}/ogg/)
- install -m 0644 ${S}/ogg.m4 ${STAGING_DATADIR}/aclocal/
-}
diff --git a/recipes/libogg/libtheora_1.0.bb b/recipes/libogg/libtheora_1.0.bb
deleted file mode 100644
index 431ed39525..0000000000
--- a/recipes/libogg/libtheora_1.0.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-
-DEPENDS = "libogg libvorbis"
-
-PR = "r3"
-
-SRC_URI = "http://downloads.xiph.org/releases/theora/libtheora-${PV}.tar.bz2 \
- file://libtheora-1.0-no-docs.patch;patch=1"
-
-inherit autotools lib_package
-
-EXTRA_OECONF = "--disable-examples"
-
-LEAD_SONAME = "libtheora.so.0"
-
-do_configure_append() {
- find ${S} -name Makefile | xargs sed -i -e s:'-I/usr/include':-I${STAGING_INCDIR}:g
-}
-
-AUTOTOOLS_STAGE_PKGCONFIG = "1"
-
-do_stage() {
- autotools_stage_all
-}
diff --git a/recipes/libsdl/libsdl-mixer_1.2.10.bb b/recipes/libsdl/libsdl-mixer_1.2.10.bb
index 1a9e808c52..5ecd2944a2 100644
--- a/recipes/libsdl/libsdl-mixer_1.2.10.bb
+++ b/recipes/libsdl/libsdl-mixer_1.2.10.bb
@@ -4,8 +4,6 @@ PRIORITY = "optional"
DEPENDS = "virtual/libsdl libmikmod libvorbis"
LICENSE = "LGPL"
-DEFAULT_PREFERENCE = "-1"
-
SRC_URI = "http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-${PV}.tar.gz"
S = "${WORKDIR}/SDL_mixer-${PV}"
diff --git a/recipes/libogg/libtheora-1.0/libtheora-1.0-no-docs.patch b/recipes/libtheora/libtheora-1.0/libtheora-1.0-no-docs.patch
index ce1fa70940..ce1fa70940 100644
--- a/recipes/libogg/libtheora-1.0/libtheora-1.0-no-docs.patch
+++ b/recipes/libtheora/libtheora-1.0/libtheora-1.0-no-docs.patch
diff --git a/recipes/libtheora/libtheora-1.1.1/no-docs.patch b/recipes/libtheora/libtheora-1.1.1/no-docs.patch
new file mode 100644
index 0000000000..5734bce465
--- /dev/null
+++ b/recipes/libtheora/libtheora-1.1.1/no-docs.patch
@@ -0,0 +1,13 @@
+Index: libtheora-1.1.1/Makefile.am
+===================================================================
+--- libtheora-1.1.1.orig/Makefile.am 2009-11-25 22:01:53.593775926 +0100
++++ libtheora-1.1.1/Makefile.am 2009-11-25 22:02:00.777524017 +0100
+@@ -8,7 +8,7 @@
+ EXAMPLES_DIR =
+ endif
+
+-SUBDIRS = lib include doc tests m4 $(EXAMPLES_DIR)
++SUBDIRS = lib include tests m4 $(EXAMPLES_DIR)
+
+
+ # we include the whole debian/ dir in EXTRA_DIST because there's a problem
diff --git a/recipes/libtheora/libtheora.inc b/recipes/libtheora/libtheora.inc
new file mode 100644
index 0000000000..d288e7af06
--- /dev/null
+++ b/recipes/libtheora/libtheora.inc
@@ -0,0 +1,17 @@
+SECTION = "libs"
+DESCRIPTION = "theora is a high-quality video codec \
+that is free of intellectual property restrictions"
+LICENSE = "BSD"
+
+DEPENDS = "pkgconfig libogg"
+
+INC_PR = "r3"
+
+SRC_URI = "http://downloads.xiph.org/releases/theora/libtheora-${PV}.tar.bz2"
+
+inherit autotools
+
+EXTRA_OECONF = "--disable-examples"
+
+LEAD_SONAME = "libtheora.so.0"
+
diff --git a/recipes/libogg/libtheora_0.9+1.0alpha7.bb b/recipes/libtheora/libtheora_0.9+1.0alpha7.bb
index 5a372b65a1..5a372b65a1 100644
--- a/recipes/libogg/libtheora_0.9+1.0alpha7.bb
+++ b/recipes/libtheora/libtheora_0.9+1.0alpha7.bb
diff --git a/recipes/libtheora/libtheora_1.0.bb b/recipes/libtheora/libtheora_1.0.bb
new file mode 100644
index 0000000000..01de01d138
--- /dev/null
+++ b/recipes/libtheora/libtheora_1.0.bb
@@ -0,0 +1,6 @@
+require libtheora.inc
+
+PR = "${INC_PR}.0"
+
+SRC_URI += "file://libtheora-1.0-no-docs.patch;patch=1"
+
diff --git a/recipes/libtheora/libtheora_1.1.1.bb b/recipes/libtheora/libtheora_1.1.1.bb
new file mode 100644
index 0000000000..34bbb0bcbf
--- /dev/null
+++ b/recipes/libtheora/libtheora_1.1.1.bb
@@ -0,0 +1,6 @@
+require libtheora.inc
+
+PR = "${INC_PR}.0"
+
+SRC_URI += "file://no-docs.patch;patch=1"
+
diff --git a/recipes/libvorbis/libvorbis-1.2.3/configure_powerpc-no-fixed-cpu.patch b/recipes/libvorbis/libvorbis-1.2.3/configure_powerpc-no-fixed-cpu.patch
new file mode 100644
index 0000000000..06ec874eb1
--- /dev/null
+++ b/recipes/libvorbis/libvorbis-1.2.3/configure_powerpc-no-fixed-cpu.patch
@@ -0,0 +1,15 @@
+Index: libvorbis-1.2.3/configure.ac
+===================================================================
+--- libvorbis-1.2.3.orig/configure.ac 2009-11-25 13:20:46.274395527 +0100
++++ libvorbis-1.2.3/configure.ac 2009-11-25 13:21:05.136894132 +0100
+@@ -157,8 +157,8 @@
+ fi;;
+ powerpc-*-linux*)
+ DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES"
+- CFLAGS="-O3 -Wall -Wextra -ffast-math -mfused-madd -mcpu=750 -D_REENTRANT"
+- PROFILE="-pg -g -O3 -ffast-math -mfused-madd -mcpu=750 -D_REENTRANT";;
++ CFLAGS="-O3 -Wall -Wextra -ffast-math -mfused-madd -D_REENTRANT"
++ PROFILE="-pg -g -O3 -ffast-math -mfused-madd -D_REENTRANT";;
+ *-*-linux*)
+ DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char"
+ CFLAGS="-O20 -Wall -Wextra -ffast-math -D_REENTRANT -fsigned-char"
diff --git a/recipes/libvorbis/libvorbis.inc b/recipes/libvorbis/libvorbis.inc
new file mode 100644
index 0000000000..b3a154a346
--- /dev/null
+++ b/recipes/libvorbis/libvorbis.inc
@@ -0,0 +1,19 @@
+SECTION = "libs"
+DEPENDS = "libogg"
+DESCRIPTION = "Ogg Vorbis is a high-quality lossy audio codec \
+that is free of intellectual property restrictions. libvorbis \
+is the main vorbis codec library."
+LICENSE = "BSD"
+INC_PR = "r2"
+
+inherit autotools
+
+# vorbisfile.c reveals a problem in the gcc register spilling for the
+# thumb instruction set...
+FULL_OPTIMIZATION_thumb = "-O0"
+
+EXTRA_OECONF = "--with-ogg-libraries=${STAGING_LIBDIR} \
+ --with-ogg-includes=${STAGING_INCDIR}"
+
+
+LEAD_SONAME = "libvorbis.so.0"
diff --git a/recipes/libvorbis/libvorbis_1.0.1.bb b/recipes/libvorbis/libvorbis_1.0.1.bb
index 8a2d17a0ad..8b95421218 100644
--- a/recipes/libvorbis/libvorbis_1.0.1.bb
+++ b/recipes/libvorbis/libvorbis_1.0.1.bb
@@ -1,32 +1,8 @@
-SECTION = "libs"
-DEPENDS = "libogg"
-DESCRIPTION = "Ogg Vorbis is a high-quality lossy audio codec \
-that is free of intellectual property restrictions. libvorbis \
-is the main vorbis codec library."
-LICENSE = "BSD"
-PR = "r2"
-SRC_URI = "http://www.vorbis.com/files/${PV}/unix/libvorbis-${PV}.tar.gz \
-file://m4.patch;patch=1"
-
-inherit autotools pkgconfig
+require libvorbis.inc
-# vorbisfile.c reveals a problem in the gcc register spilling for the
-# thumb instruction set...
-FULL_OPTIMIZATION_thumb = "-O0"
+PR = ""${INC_PR}.1"
-EXTRA_OECONF = "--with-ogg-libraries=${STAGING_LIBDIR} \
- --with-ogg-includes=${STAGING_INCDIR}"
-
-do_stage () {
- oe_libinstall -a -so -C lib libvorbis ${STAGING_LIBDIR}
- oe_libinstall -a -so -C lib libvorbisfile ${STAGING_LIBDIR}
- oe_libinstall -a -so -C lib libvorbisenc ${STAGING_LIBDIR}
+SRC_URI = "http://www.vorbis.com/files/${PV}/unix/libvorbis-${PV}.tar.gz \
+file://m4.patch;patch=1"
- install -d ${STAGING_INCDIR}/vorbis
- install -m 0644 include/vorbis/vorbisenc.h \
- include/vorbis/vorbisfile.h \
- include/vorbis/codec.h ${STAGING_INCDIR}/vorbis/
- install -d ${STAGING_DATADIR}/aclocal
- install -m 0644 vorbis.m4 ${STAGING_DATADIR}/aclocal/
-}
diff --git a/recipes/libvorbis/libvorbis_1.2.0.bb b/recipes/libvorbis/libvorbis_1.2.0.bb
index cc7f00cceb..767a38a4de 100644
--- a/recipes/libvorbis/libvorbis_1.2.0.bb
+++ b/recipes/libvorbis/libvorbis_1.2.0.bb
@@ -1,10 +1,7 @@
-SECTION = "libs"
-DEPENDS = "libogg"
-DESCRIPTION = "Ogg Vorbis is a high-quality lossy audio codec \
-that is free of intellectual property restrictions. libvorbis \
-is the main vorbis codec library."
-LICENSE = "BSD"
-PR = "2"
+
+require libvorbis.inc
+
+PR = "${INC_PR}.1"
SRC_URI = "http://downloads.xiph.org/releases/vorbis/libvorbis-${PV}.tar.gz \
file://configure_powerpc-no-fixed-cpu.patch;patch=1 \
@@ -13,24 +10,3 @@ SRC_URI = "http://downloads.xiph.org/releases/vorbis/libvorbis-${PV}.tar.gz \
file://r14602-CVE-2008-1423.patch;patch=1 \
"
-inherit autotools pkgconfig
-
-# vorbisfile.c reveals a problem in the gcc register spilling for the
-# thumb instruction set...
-FULL_OPTIMIZATION_thumb = "-O0"
-
-EXTRA_OECONF = "--with-ogg-libraries=${STAGING_LIBDIR} \
- --with-ogg-includes=${STAGING_INCDIR}"
-
-do_stage () {
- oe_libinstall -a -so -C lib libvorbis ${STAGING_LIBDIR}
- oe_libinstall -a -so -C lib libvorbisfile ${STAGING_LIBDIR}
- oe_libinstall -a -so -C lib libvorbisenc ${STAGING_LIBDIR}
-
- install -d ${STAGING_INCDIR}/vorbis
- install -m 0644 include/vorbis/vorbisenc.h \
- include/vorbis/vorbisfile.h \
- include/vorbis/codec.h ${STAGING_INCDIR}/vorbis/
- install -d ${STAGING_DATADIR}/aclocal
- install -m 0644 vorbis.m4 ${STAGING_DATADIR}/aclocal/
-}
diff --git a/recipes/libvorbis/libvorbis_1.2.3.bb b/recipes/libvorbis/libvorbis_1.2.3.bb
new file mode 100644
index 0000000000..1173809d48
--- /dev/null
+++ b/recipes/libvorbis/libvorbis_1.2.3.bb
@@ -0,0 +1,11 @@
+
+require libvorbis.inc
+
+PR = "${INC_PR}.0"
+
+SRC_URI = "http://downloads.xiph.org/releases/vorbis/libvorbis-${PV}.tar.gz \
+ file://configure_powerpc-no-fixed-cpu.patch;patch=1 \
+ "
+
+# override should be handeld by pkgconfig now
+EXTRA_OECONF = ""
diff --git a/recipes/linux/linux-davinci/dm355-evm/defconfig b/recipes/linux/linux-davinci/dm355-evm/defconfig
index 48fce30ff1..9908e95c63 100644
--- a/recipes/linux/linux-davinci/dm355-evm/defconfig
+++ b/recipes/linux/linux-davinci/dm355-evm/defconfig
@@ -1,14 +1,13 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.31-rc7-davinci1
-# Fri Sep 4 15:07:05 2009
+# Linux kernel version: 2.6.32-rc2-davinci1
+# Fri Oct 30 16:52:22 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -46,11 +45,12 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
#
# RCU Subsystem
#
-CONFIG_CLASSIC_RCU=y
-# CONFIG_TREE_RCU is not set
-# CONFIG_PREEMPT_RCU is not set
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_PREEMPT_RCU_TRACE is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
@@ -91,17 +91,15 @@ CONFIG_SHMEM=y
CONFIG_AIO=y
#
-# Performance Counters
+# Kernel Performance Events And Counters
#
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
-# CONFIG_STRIP_ASM_SYMS is not set
CONFIG_COMPAT_BRK=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
-# CONFIG_MARKERS is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
@@ -145,6 +143,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# System Type
#
+CONFIG_MMU=y
# CONFIG_ARCH_AAEC2000 is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_REALVIEW is not set
@@ -159,6 +158,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_STMP3XXX is not set
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_NOMADIK is not set
# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
# CONFIG_ARCH_IOP33X is not set
@@ -181,11 +181,13 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5PC1XX is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_U300 is not set
CONFIG_ARCH_DAVINCI=y
# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_BCMRING is not set
CONFIG_AINTC=y
CONFIG_ARCH_DAVINCI_DMx=y
@@ -236,7 +238,9 @@ CONFIG_ARM_THUMB=y
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+CONFIG_ARM_L1_CACHE_SHIFT=5
CONFIG_COMMON_CLKDEV=y
+CONFIG_FORCE_MAX_ZONEORDER=13
#
# Bus support
@@ -256,6 +260,8 @@ CONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not set
CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_HZ=100
CONFIG_AEABI=y
@@ -277,6 +283,7 @@ CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_HAVE_MLOCK=y
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_LEDS=y
# CONFIG_LEDS_CPU is not set
@@ -318,10 +325,7 @@ CONFIG_HAVE_AOUT=y
#
# Power management options
#
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-# CONFIG_SUSPEND is not set
-# CONFIG_APM_EMULATION is not set
+# CONFIG_PM is not set
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_NET=y
@@ -412,6 +416,7 @@ CONFIG_NETFILTER_ADVANCED=y
# CONFIG_IP6_NF_IPTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
@@ -441,7 +446,11 @@ CONFIG_NETFILTER_ADVANCED=y
# CONFIG_AF_RXRPC is not set
CONFIG_WIRELESS=y
CONFIG_CFG80211=y
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+CONFIG_CFG80211_DEFAULT_PS_VALUE=1
# CONFIG_CFG80211_DEBUGFS is not set
CONFIG_WIRELESS_OLD_REGULATORY=y
CONFIG_WIRELESS_EXT=y
@@ -449,7 +458,6 @@ CONFIG_WIRELESS_EXT_SYSFS=y
CONFIG_LIB80211=y
# CONFIG_LIB80211_DEBUG is not set
# CONFIG_MAC80211 is not set
-CONFIG_MAC80211_DEFAULT_PS_VALUE=0
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
@@ -462,6 +470,7 @@ CONFIG_MAC80211_DEFAULT_PS_VALUE=0
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
@@ -473,9 +482,9 @@ CONFIG_EXTRA_FIRMWARE=""
# CONFIG_CONNECTOR is not set
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_TESTS=m
# CONFIG_MTD_CONCAT is not set
CONFIG_MTD_PARTITIONS=y
-CONFIG_MTD_TESTS=m
# CONFIG_MTD_REDBOOT_PARTS is not set
CONFIG_MTD_CMDLINE_PARTS=y
# CONFIG_MTD_AFS_PARTS is not set
@@ -524,6 +533,7 @@ CONFIG_MTD_CFI_I2=y
#
# CONFIG_MTD_DATAFLASH is not set
# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SST25L is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
@@ -545,7 +555,7 @@ CONFIG_MTD_NAND_IDS=y
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_PLATFORM is not set
# CONFIG_MTD_ALAUDA is not set
-CONFIG_MTD_NAND_DAVINCI=m
+CONFIG_MTD_NAND_DAVINCI=y
# CONFIG_MTD_ONENAND is not set
#
@@ -682,10 +692,7 @@ CONFIG_DM9000_DEBUGLEVEL=4
# CONFIG_KS8851 is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
-
-#
-# Wireless LAN
-#
+CONFIG_WLAN=y
# CONFIG_WLAN_PRE80211 is not set
CONFIG_WLAN_80211=y
CONFIG_LIBERTAS=m
@@ -695,6 +702,7 @@ CONFIG_LIBERTAS_SDIO=m
CONFIG_LIBERTAS_DEBUG=y
# CONFIG_USB_ZD1201 is not set
# CONFIG_USB_NET_RNDIS_WLAN is not set
+# CONFIG_ATH_COMMON is not set
# CONFIG_HOSTAP is not set
# CONFIG_IWM is not set
@@ -729,6 +737,7 @@ CONFIG_NETPOLL=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
#
# Input device support
@@ -742,8 +751,8 @@ CONFIG_INPUT=y
#
# CONFIG_INPUT_MOUSEDEV is not set
# CONFIG_INPUT_JOYDEV is not set
-CONFIG_INPUT_EVDEV=m
-CONFIG_INPUT_EVBUG=m
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_EVBUG=y
#
# Input Device Drivers
@@ -799,8 +808,13 @@ CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
+CONFIG_DM355_IPIPE=y
+CONFIG_IMP_PREVIEWER=y
+CONFIG_IMP_RESIZER=y
+# CONFIG_IMP_DEBUG is not set
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_HELPER_AUTO=y
@@ -834,7 +848,6 @@ CONFIG_I2C_DAVINCI=y
# Miscellaneous I2C Chip support
#
# CONFIG_DS1682 is not set
-# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
@@ -847,7 +860,7 @@ CONFIG_SPI_MASTER=y
#
# SPI Master Controller Drivers
#
-CONFIG_SPI_DAVINCI=m
+CONFIG_SPI_DAVINCI=y
CONFIG_SPI_BITBANG=y
# CONFIG_SPI_GPIO is not set
@@ -856,6 +869,11 @@ CONFIG_SPI_BITBANG=y
#
# CONFIG_SPI_SPIDEV is not set
# CONFIG_SPI_TLE62X0 is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_DEBUG_GPIO is not set
@@ -881,10 +899,20 @@ CONFIG_GPIO_PCF857X=y
#
# CONFIG_GPIO_MAX7301 is not set
# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
+
+#
+# AC97 GPIO expanders:
+#
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
# CONFIG_SENSORS_AD7414 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADCXX is not set
@@ -936,6 +964,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_TMP421 is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
@@ -946,9 +975,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_SENSORS_LIS3_SPI is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
# CONFIG_THERMAL is not set
-# CONFIG_THERMAL_HWMON is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
@@ -956,7 +983,7 @@ CONFIG_WATCHDOG=y
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
-CONFIG_DAVINCI_WATCHDOG=m
+CONFIG_DAVINCI_WATCHDOG=y
#
# USB-based Watchdog Cards
@@ -986,10 +1013,13 @@ CONFIG_MFD_DM355EVM_MSP=y
# CONFIG_MFD_TC6393XB is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_MC13783 is not set
# CONFIG_AB3100_CORE is not set
# CONFIG_EZX_PCAP is not set
+# CONFIG_REGULATOR is not set
CONFIG_MEDIA_SUPPORT=y
#
@@ -1018,8 +1048,9 @@ CONFIG_MEDIA_TUNER_XC2028=y
CONFIG_MEDIA_TUNER_XC5000=y
CONFIG_MEDIA_TUNER_MC44S803=y
CONFIG_VIDEO_V4L2=y
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_DMA_CONTIG=m
+CONFIG_VIDEOBUF_GEN=y
+CONFIG_VIDEOBUF_VMALLOC=y
+CONFIG_VIDEOBUF_DMA_CONTIG=y
CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
@@ -1055,6 +1086,7 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
#
# Video decoders
#
+# CONFIG_VIDEO_ADV7180 is not set
# CONFIG_VIDEO_BT819 is not set
# CONFIG_VIDEO_BT856 is not set
# CONFIG_VIDEO_BT866 is not set
@@ -1065,8 +1097,9 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_SAA7110 is not set
# CONFIG_VIDEO_SAA711X is not set
# CONFIG_VIDEO_SAA717X is not set
-CONFIG_VIDEO_TVP514X=m
+CONFIG_VIDEO_TVP514X=y
# CONFIG_VIDEO_TVP5150 is not set
+# CONFIG_VIDEO_TVP7002 is not set
# CONFIG_VIDEO_VPX3220 is not set
#
@@ -1096,7 +1129,7 @@ CONFIG_VIDEO_TVP514X=m
#
# CONFIG_VIDEO_UPD64031A is not set
# CONFIG_VIDEO_UPD64083 is not set
-# CONFIG_VIDEO_DAVINCI_DISPLAY is not set
+CONFIG_VIDEO_DAVINCI_DISPLAY=y
CONFIG_DAVINCI_ENC_MNGR=y
CONFIG_ENC_MNGR_MAX_CHANNELS=1
CONFIG_DAVINCI_OSD=y
@@ -1105,15 +1138,14 @@ CONFIG_DAVINCI_LOGICPD_ENCODER=y
# CONFIG_DAVINCI_AVNET_ENCODER is not set
# CONFIG_VIDEO_VIVI is not set
CONFIG_VIDEO_VPSS_SYSTEM=y
-CONFIG_VIDEO_VPFE_CAPTURE=m
-CONFIG_VIDEO_DM355_CCDC=m
-CONFIG_VIDEO_DM355_AF=m
-CONFIG_VIDEO_DM355_AEW=m
-CONFIG_VIDEO_DM355_IPIPE=m
+CONFIG_VIDEO_VPFE_CAPTURE=y
+CONFIG_VIDEO_DM355_CCDC=y
+CONFIG_VIDEO_DM355_AF=y
+CONFIG_VIDEO_DM355_AEW=y
# CONFIG_VIDEO_SAA5246A is not set
# CONFIG_VIDEO_SAA5249 is not set
# CONFIG_SOC_CAMERA is not set
-CONFIG_SOC_CAMERA_MT9T031=m
+CONFIG_SOC_CAMERA_MT9T031=y
# CONFIG_V4L_USB_DRIVERS is not set
# CONFIG_RADIO_ADAPTERS is not set
# CONFIG_DAB is not set
@@ -1122,9 +1154,9 @@ CONFIG_SOC_CAMERA_MT9T031=m
# Graphics support
#
# CONFIG_VGASTATE is not set
-CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_VIDEO_OUTPUT_CONTROL=y
CONFIG_FB=y
-CONFIG_FIRMWARE_EDID=y
+# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FB_DDC is not set
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
CONFIG_FB_CFB_FILLRECT=y
@@ -1163,12 +1195,7 @@ CONFIG_FB_DAVINCI=y
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
-# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
+# CONFIG_FRAMEBUFFER_CONSOLE is not set
CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
@@ -1202,32 +1229,25 @@ CONFIG_SND_ARM=y
CONFIG_SND_SPI=y
# CONFIG_SND_USB is not set
CONFIG_SND_SOC=y
-CONFIG_SND_DAVINCI_SOC=m
-CONFIG_SND_DAVINCI_SOC_I2S=m
-CONFIG_SND_DAVINCI_SOC_EVM=m
+CONFIG_SND_DAVINCI_SOC=y
+CONFIG_SND_DAVINCI_SOC_I2S=y
+CONFIG_SND_DAVINCI_SOC_EVM=y
CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_ALL_CODECS is not set
-CONFIG_SND_SOC_TLV320AIC3X=m
+CONFIG_SND_SOC_TLV320AIC3X=y
# CONFIG_SOUND_PRIME is not set
CONFIG_HID_SUPPORT=y
-CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
+CONFIG_HID=y
# CONFIG_HIDRAW is not set
#
# USB Input Devices
#
-CONFIG_USB_HID=m
+CONFIG_USB_HID=y
# CONFIG_HID_PID is not set
# CONFIG_USB_HIDDEV is not set
#
-# USB HID Boot Protocol drivers
-#
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_MOUSE is not set
-
-#
# Special HID drivers
#
CONFIG_HID_A4TECH=m
@@ -1240,11 +1260,12 @@ CONFIG_HID_CYPRESS=m
CONFIG_HID_EZKEY=m
# CONFIG_HID_KYE is not set
CONFIG_HID_GYRATION=m
+# CONFIG_HID_TWINHAN is not set
# CONFIG_HID_KENSINGTON is not set
-CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH=y
# CONFIG_LOGITECH_FF is not set
# CONFIG_LOGIRUMBLEPAD2_FF is not set
-CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MICROSOFT=y
CONFIG_HID_MONTEREY=m
# CONFIG_HID_NTRIG is not set
CONFIG_HID_PANTHERLORD=m
@@ -1262,7 +1283,7 @@ CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
# CONFIG_USB_ARCH_HAS_OHCI is not set
# CONFIG_USB_ARCH_HAS_EHCI is not set
-CONFIG_USB=m
+CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
@@ -1272,7 +1293,6 @@ CONFIG_USB=m
CONFIG_USB_DEVICEFS=y
CONFIG_USB_DEVICE_CLASS=y
# CONFIG_USB_DYNAMIC_MINORS is not set
-CONFIG_USB_SUSPEND=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
@@ -1287,22 +1307,20 @@ CONFIG_USB_SUSPEND=y
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_HWA_HCD is not set
-
-#
-# Enable Host or Gadget support to see Inventra options
-#
-CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_MUSB_HDRC=y
CONFIG_USB_MUSB_SOC=y
#
-# DaVinci 35x and 644x USB support
+# DaVinci 35x, 36x, 644x USB support
#
CONFIG_USB_MUSB_HOST=y
# CONFIG_USB_MUSB_PERIPHERAL is not set
# CONFIG_USB_MUSB_OTG is not set
+# CONFIG_MUSB_SCHEDULE_INTR_EP is not set
CONFIG_USB_MUSB_HDRC_HCD=y
# CONFIG_MUSB_PIO_ONLY is not set
# CONFIG_USB_INVENTRA_DMA is not set
@@ -1324,7 +1342,7 @@ CONFIG_USB_TI_CPPI_DMA=y
#
# also be needed; see USB_STORAGE Help for more info
#
-CONFIG_USB_STORAGE=m
+CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
@@ -1371,7 +1389,7 @@ CONFIG_USB_STORAGE=m
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
-CONFIG_USB_TEST=m
+CONFIG_USB_TEST=y
# CONFIG_USB_ISIGHTFW is not set
# CONFIG_USB_VST is not set
# CONFIG_USB_GADGET is not set
@@ -1381,7 +1399,7 @@ CONFIG_USB_TEST=m
#
CONFIG_USB_OTG_UTILS=y
# CONFIG_USB_GPIO_VBUS is not set
-CONFIG_NOP_USB_XCEIV=m
+CONFIG_NOP_USB_XCEIV=y
CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set
@@ -1398,10 +1416,11 @@ CONFIG_SDIO_UART=y
# MMC/SD/SDIO Host Controller Drivers
#
# CONFIG_MMC_SDHCI is not set
-CONFIG_MMC_DAVINCI=m
+# CONFIG_MMC_AT91 is not set
+# CONFIG_MMC_ATMELMCI is not set
+CONFIG_MMC_DAVINCI=y
# CONFIG_MMC_SPI is not set
# CONFIG_MEMSTICK is not set
-# CONFIG_ACCESSIBILITY is not set
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=m
@@ -1429,12 +1448,16 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=m
#
# iptables trigger is under Netfilter config (LED target)
#
+# CONFIG_ACCESSIBILITY is not set
CONFIG_RTC_LIB=y
# CONFIG_RTC_CLASS is not set
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
-# CONFIG_REGULATOR is not set
# CONFIG_UIO is not set
+
+#
+# TI VLYNQ
+#
# CONFIG_STAGING is not set
#
@@ -1463,6 +1486,7 @@ CONFIG_XFS_FS=m
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
@@ -1534,7 +1558,6 @@ CONFIG_MINIX_FS=m
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
-# CONFIG_NILFS2_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
@@ -1630,6 +1653,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_FRAME_WARN=1024
# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
@@ -1668,12 +1692,14 @@ CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
CONFIG_FRAME_POINTER=y
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
@@ -1716,7 +1742,6 @@ CONFIG_CRYPTO=y
#
# Crypto core or helper
#
-# CONFIG_CRYPTO_FIPS is not set
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD2=y
@@ -1757,11 +1782,13 @@ CONFIG_CRYPTO_ECB=y
#
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
#
# Digest
#
# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_GHASH is not set
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_MD5 is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/recipes/linux/linux-davinci/dm365-evm/defconfig b/recipes/linux/linux-davinci/dm365-evm/defconfig
index a26e63c2f1..3a294fd7bc 100644
--- a/recipes/linux/linux-davinci/dm365-evm/defconfig
+++ b/recipes/linux/linux-davinci/dm365-evm/defconfig
@@ -1,14 +1,13 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.31-rc7-davinci1
-# Tue Sep 8 16:36:50 2009
+# Linux kernel version: 2.6.32-rc2-davinci1
+# Mon Nov 2 10:40:20 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -46,11 +45,12 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
#
# RCU Subsystem
#
-CONFIG_CLASSIC_RCU=y
-# CONFIG_TREE_RCU is not set
-# CONFIG_PREEMPT_RCU is not set
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_PREEMPT_RCU_TRACE is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
@@ -91,17 +91,15 @@ CONFIG_SHMEM=y
CONFIG_AIO=y
#
-# Performance Counters
+# Kernel Performance Events And Counters
#
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
-# CONFIG_STRIP_ASM_SYMS is not set
CONFIG_COMPAT_BRK=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
-# CONFIG_MARKERS is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
@@ -145,6 +143,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# System Type
#
+CONFIG_MMU=y
# CONFIG_ARCH_AAEC2000 is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_REALVIEW is not set
@@ -159,6 +158,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_STMP3XXX is not set
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_NOMADIK is not set
# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
# CONFIG_ARCH_IOP33X is not set
@@ -181,11 +181,13 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5PC1XX is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_U300 is not set
CONFIG_ARCH_DAVINCI=y
# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_BCMRING is not set
CONFIG_AINTC=y
CONFIG_ARCH_DAVINCI_DMx=y
@@ -235,7 +237,9 @@ CONFIG_ARM_THUMB=y
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+CONFIG_ARM_L1_CACHE_SHIFT=5
CONFIG_COMMON_CLKDEV=y
+CONFIG_FORCE_MAX_ZONEORDER=13
#
# Bus support
@@ -255,6 +259,8 @@ CONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not set
CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_HZ=100
CONFIG_AEABI=y
@@ -276,6 +282,7 @@ CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_HAVE_MLOCK=y
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_LEDS=y
# CONFIG_LEDS_CPU is not set
@@ -408,6 +415,7 @@ CONFIG_NETFILTER_ADVANCED=y
# CONFIG_IP6_NF_IPTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
@@ -437,7 +445,11 @@ CONFIG_NETFILTER_ADVANCED=y
# CONFIG_AF_RXRPC is not set
CONFIG_WIRELESS=y
CONFIG_CFG80211=y
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+CONFIG_CFG80211_DEFAULT_PS_VALUE=1
# CONFIG_CFG80211_DEBUGFS is not set
CONFIG_WIRELESS_OLD_REGULATORY=y
CONFIG_WIRELESS_EXT=y
@@ -445,7 +457,6 @@ CONFIG_WIRELESS_EXT_SYSFS=y
CONFIG_LIB80211=y
# CONFIG_LIB80211_DEBUG is not set
# CONFIG_MAC80211 is not set
-CONFIG_MAC80211_DEFAULT_PS_VALUE=0
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
@@ -458,6 +469,7 @@ CONFIG_MAC80211_DEFAULT_PS_VALUE=0
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
@@ -469,9 +481,9 @@ CONFIG_EXTRA_FIRMWARE=""
# CONFIG_CONNECTOR is not set
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_TESTS=m
# CONFIG_MTD_CONCAT is not set
CONFIG_MTD_PARTITIONS=y
-CONFIG_MTD_TESTS=m
# CONFIG_MTD_REDBOOT_PARTS is not set
CONFIG_MTD_CMDLINE_PARTS=y
# CONFIG_MTD_AFS_PARTS is not set
@@ -520,6 +532,7 @@ CONFIG_MTD_CFI_I2=y
#
# CONFIG_MTD_DATAFLASH is not set
# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SST25L is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
@@ -541,7 +554,7 @@ CONFIG_MTD_NAND_IDS=y
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_PLATFORM is not set
# CONFIG_MTD_ALAUDA is not set
-CONFIG_MTD_NAND_DAVINCI=m
+CONFIG_MTD_NAND_DAVINCI=y
# CONFIG_MTD_ONENAND is not set
#
@@ -576,7 +589,7 @@ CONFIG_MISC_DEVICES=y
#
# EEPROM support
#
-# CONFIG_EEPROM_AT24 is not set
+CONFIG_EEPROM_AT24=y
CONFIG_EEPROM_AT25=y
# CONFIG_EEPROM_LEGACY is not set
# CONFIG_EEPROM_MAX6875 is not set
@@ -676,10 +689,7 @@ CONFIG_TI_DAVINCI_EMAC=y
# CONFIG_KS8851 is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
-
-#
-# Wireless LAN
-#
+CONFIG_WLAN=y
# CONFIG_WLAN_PRE80211 is not set
CONFIG_WLAN_80211=y
CONFIG_LIBERTAS=m
@@ -689,6 +699,7 @@ CONFIG_LIBERTAS_SDIO=m
CONFIG_LIBERTAS_DEBUG=y
# CONFIG_USB_ZD1201 is not set
# CONFIG_USB_NET_RNDIS_WLAN is not set
+# CONFIG_ATH_COMMON is not set
# CONFIG_HOSTAP is not set
# CONFIG_IWM is not set
@@ -723,6 +734,7 @@ CONFIG_NETPOLL=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
#
# Input device support
@@ -736,8 +748,8 @@ CONFIG_INPUT_FF_MEMLESS=y
#
# CONFIG_INPUT_MOUSEDEV is not set
# CONFIG_INPUT_JOYDEV is not set
-CONFIG_INPUT_EVDEV=m
-CONFIG_INPUT_EVBUG=m
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_EVBUG=y
#
# Input Device Drivers
@@ -756,7 +768,7 @@ CONFIG_INPUT_MISC=y
# CONFIG_INPUT_CM109 is not set
# CONFIG_INPUT_UINPUT is not set
# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
-CONFIG_INPUT_DM365EVM=m
+CONFIG_INPUT_DM365EVM=y
#
# Hardware I/O ports
@@ -802,8 +814,13 @@ CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
+CONFIG_DM365_IPIPE=y
+CONFIG_IMP_PREVIEWER=y
+CONFIG_IMP_RESIZER=y
+# CONFIG_IMP_DEBUG is not set
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_HELPER_AUTO=y
@@ -837,7 +854,6 @@ CONFIG_I2C_DAVINCI=y
# Miscellaneous I2C Chip support
#
# CONFIG_DS1682 is not set
-# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
@@ -850,7 +866,7 @@ CONFIG_SPI_MASTER=y
#
# SPI Master Controller Drivers
#
-CONFIG_SPI_DAVINCI=m
+CONFIG_SPI_DAVINCI=y
CONFIG_SPI_BITBANG=y
# CONFIG_SPI_GPIO is not set
@@ -859,6 +875,11 @@ CONFIG_SPI_BITBANG=y
#
# CONFIG_SPI_SPIDEV is not set
# CONFIG_SPI_TLE62X0 is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_DEBUG_GPIO is not set
@@ -884,10 +905,20 @@ CONFIG_GPIO_PCF857X=y
#
# CONFIG_GPIO_MAX7301 is not set
# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
+
+#
+# AC97 GPIO expanders:
+#
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
# CONFIG_SENSORS_AD7414 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADCXX is not set
@@ -939,6 +970,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_TMP421 is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
@@ -949,9 +981,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_SENSORS_LIS3_SPI is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
# CONFIG_THERMAL is not set
-# CONFIG_THERMAL_HWMON is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
@@ -959,7 +989,7 @@ CONFIG_WATCHDOG=y
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
-CONFIG_DAVINCI_WATCHDOG=m
+CONFIG_DAVINCI_WATCHDOG=y
#
# USB-based Watchdog Cards
@@ -988,10 +1018,13 @@ CONFIG_SSB_POSSIBLE=y
# CONFIG_MFD_TC6393XB is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_MC13783 is not set
# CONFIG_AB3100_CORE is not set
# CONFIG_EZX_PCAP is not set
+# CONFIG_REGULATOR is not set
CONFIG_MEDIA_SUPPORT=y
#
@@ -1020,8 +1053,9 @@ CONFIG_MEDIA_TUNER_XC2028=y
CONFIG_MEDIA_TUNER_XC5000=y
CONFIG_MEDIA_TUNER_MC44S803=y
CONFIG_VIDEO_V4L2=y
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_DMA_CONTIG=m
+CONFIG_VIDEOBUF_GEN=y
+CONFIG_VIDEOBUF_VMALLOC=y
+CONFIG_VIDEOBUF_DMA_CONTIG=y
CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
@@ -1057,6 +1091,7 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
#
# Video decoders
#
+# CONFIG_VIDEO_ADV7180 is not set
# CONFIG_VIDEO_BT819 is not set
# CONFIG_VIDEO_BT856 is not set
# CONFIG_VIDEO_BT866 is not set
@@ -1067,8 +1102,9 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_SAA7110 is not set
# CONFIG_VIDEO_SAA711X is not set
# CONFIG_VIDEO_SAA717X is not set
-CONFIG_VIDEO_TVP514X=m
+CONFIG_VIDEO_TVP514X=y
# CONFIG_VIDEO_TVP5150 is not set
+CONFIG_VIDEO_TVP7002=y
# CONFIG_VIDEO_VPX3220 is not set
#
@@ -1088,8 +1124,9 @@ CONFIG_VIDEO_TVP514X=m
# CONFIG_VIDEO_SAA7185 is not set
# CONFIG_VIDEO_ADV7170 is not set
# CONFIG_VIDEO_ADV7175 is not set
-# CONFIG_VIDEO_THS7303 is not set
-# CONFIG_VIDEO_THS7353 is not set
+CONFIG_VIDEO_THS7303=y
+CONFIG_VIDEO_THS7353=y
+CONFIG_VIDEO_THS7353_LUMA_CHANNEL=2
# CONFIG_VIDEO_ADV7343 is not set
# CONFIG_VIDEO_THS8200 is not set
@@ -1098,7 +1135,7 @@ CONFIG_VIDEO_TVP514X=m
#
# CONFIG_VIDEO_UPD64031A is not set
# CONFIG_VIDEO_UPD64083 is not set
-# CONFIG_VIDEO_DAVINCI_DISPLAY is not set
+CONFIG_VIDEO_DAVINCI_DISPLAY=y
CONFIG_DAVINCI_ENC_MNGR=y
CONFIG_ENC_MNGR_MAX_CHANNELS=1
CONFIG_DAVINCI_OSD=y
@@ -1107,12 +1144,15 @@ CONFIG_DAVINCI_LOGICPD_ENCODER=y
# CONFIG_DAVINCI_AVNET_ENCODER is not set
# CONFIG_VIDEO_VIVI is not set
CONFIG_VIDEO_VPSS_SYSTEM=y
-CONFIG_VIDEO_VPFE_CAPTURE=m
-CONFIG_VIDEO_DM365_ISIF=m
+CONFIG_VIDEO_VPFE_CAPTURE=y
+CONFIG_VIDEO_DM365_ISIF=y
+CONFIG_VIDEO_DM365_3A_HW=y
+CONFIG_VIDEO_DM365_AF=y
+CONFIG_VIDEO_DM365_AEW=y
# CONFIG_VIDEO_SAA5246A is not set
# CONFIG_VIDEO_SAA5249 is not set
# CONFIG_SOC_CAMERA is not set
-# CONFIG_SOC_CAMERA_MT9T031 is not set
+CONFIG_SOC_CAMERA_MT9T031=y
# CONFIG_V4L_USB_DRIVERS is not set
# CONFIG_RADIO_ADAPTERS is not set
# CONFIG_DAB is not set
@@ -1121,9 +1161,9 @@ CONFIG_VIDEO_DM365_ISIF=m
# Graphics support
#
# CONFIG_VGASTATE is not set
-CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_VIDEO_OUTPUT_CONTROL=y
CONFIG_FB=y
-CONFIG_FIRMWARE_EDID=y
+# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FB_DDC is not set
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
CONFIG_FB_CFB_FILLRECT=y
@@ -1162,12 +1202,7 @@ CONFIG_FB_DAVINCI=y
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
-# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
+# CONFIG_FRAMEBUFFER_CONSOLE is not set
CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
@@ -1201,32 +1236,25 @@ CONFIG_SND_ARM=y
CONFIG_SND_SPI=y
# CONFIG_SND_USB is not set
CONFIG_SND_SOC=y
-CONFIG_SND_DAVINCI_SOC=m
-CONFIG_SND_DAVINCI_SOC_I2S=m
-CONFIG_SND_DAVINCI_SOC_EVM=m
+CONFIG_SND_DAVINCI_SOC=y
+CONFIG_SND_DAVINCI_SOC_I2S=y
+CONFIG_SND_DAVINCI_SOC_EVM=y
CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_ALL_CODECS is not set
-CONFIG_SND_SOC_TLV320AIC3X=m
+CONFIG_SND_SOC_TLV320AIC3X=y
# CONFIG_SOUND_PRIME is not set
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
-# CONFIG_HID_DEBUG is not set
# CONFIG_HIDRAW is not set
#
# USB Input Devices
#
-CONFIG_USB_HID=m
+CONFIG_USB_HID=y
# CONFIG_HID_PID is not set
# CONFIG_USB_HIDDEV is not set
#
-# USB HID Boot Protocol drivers
-#
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_MOUSE is not set
-
-#
# Special HID drivers
#
CONFIG_HID_A4TECH=m
@@ -1239,11 +1267,12 @@ CONFIG_HID_CYPRESS=m
CONFIG_HID_EZKEY=m
# CONFIG_HID_KYE is not set
CONFIG_HID_GYRATION=m
+# CONFIG_HID_TWINHAN is not set
# CONFIG_HID_KENSINGTON is not set
-CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH=y
# CONFIG_LOGITECH_FF is not set
# CONFIG_LOGIRUMBLEPAD2_FF is not set
-CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MICROSOFT=y
CONFIG_HID_MONTEREY=m
# CONFIG_HID_NTRIG is not set
CONFIG_HID_PANTHERLORD=m
@@ -1261,7 +1290,7 @@ CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
# CONFIG_USB_ARCH_HAS_OHCI is not set
# CONFIG_USB_ARCH_HAS_EHCI is not set
-CONFIG_USB=m
+CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
@@ -1285,14 +1314,11 @@ CONFIG_USB_DEVICE_CLASS=y
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_HWA_HCD is not set
-
-#
-# Enable Host or Gadget support to see Inventra options
-#
-CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_MUSB_HDRC=y
CONFIG_USB_MUSB_SOC=y
#
@@ -1301,6 +1327,7 @@ CONFIG_USB_MUSB_SOC=y
CONFIG_USB_MUSB_HOST=y
# CONFIG_USB_MUSB_PERIPHERAL is not set
# CONFIG_USB_MUSB_OTG is not set
+# CONFIG_MUSB_SCHEDULE_INTR_EP is not set
CONFIG_USB_MUSB_HDRC_HCD=y
# CONFIG_MUSB_PIO_ONLY is not set
# CONFIG_USB_INVENTRA_DMA is not set
@@ -1322,7 +1349,7 @@ CONFIG_USB_TI_CPPI_DMA=y
#
# also be needed; see USB_STORAGE Help for more info
#
-CONFIG_USB_STORAGE=m
+CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
@@ -1369,7 +1396,7 @@ CONFIG_USB_STORAGE=m
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
-CONFIG_USB_TEST=m
+CONFIG_USB_TEST=y
# CONFIG_USB_ISIGHTFW is not set
# CONFIG_USB_VST is not set
# CONFIG_USB_GADGET is not set
@@ -1379,7 +1406,7 @@ CONFIG_USB_TEST=m
#
CONFIG_USB_OTG_UTILS=y
# CONFIG_USB_GPIO_VBUS is not set
-CONFIG_NOP_USB_XCEIV=m
+CONFIG_NOP_USB_XCEIV=y
CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set
@@ -1396,10 +1423,11 @@ CONFIG_SDIO_UART=y
# MMC/SD/SDIO Host Controller Drivers
#
# CONFIG_MMC_SDHCI is not set
-CONFIG_MMC_DAVINCI=m
+# CONFIG_MMC_AT91 is not set
+# CONFIG_MMC_ATMELMCI is not set
+CONFIG_MMC_DAVINCI=y
# CONFIG_MMC_SPI is not set
# CONFIG_MEMSTICK is not set
-# CONFIG_ACCESSIBILITY is not set
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=m
@@ -1427,12 +1455,16 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=m
#
# iptables trigger is under Netfilter config (LED target)
#
+# CONFIG_ACCESSIBILITY is not set
CONFIG_RTC_LIB=y
# CONFIG_RTC_CLASS is not set
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
-# CONFIG_REGULATOR is not set
# CONFIG_UIO is not set
+
+#
+# TI VLYNQ
+#
# CONFIG_STAGING is not set
#
@@ -1461,6 +1493,7 @@ CONFIG_XFS_FS=m
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
@@ -1532,7 +1565,6 @@ CONFIG_MINIX_FS=m
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
-# CONFIG_NILFS2_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
@@ -1628,6 +1660,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_FRAME_WARN=1024
# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
@@ -1666,12 +1699,14 @@ CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
CONFIG_FRAME_POINTER=y
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
@@ -1714,7 +1749,6 @@ CONFIG_CRYPTO=y
#
# Crypto core or helper
#
-# CONFIG_CRYPTO_FIPS is not set
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD2=y
@@ -1755,11 +1789,13 @@ CONFIG_CRYPTO_ECB=y
#
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
#
# Digest
#
# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_GHASH is not set
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_MD5 is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/recipes/linux/linux-davinci/dm6446-evm/defconfig b/recipes/linux/linux-davinci/dm6446-evm/defconfig
index 199f1f82d7..a514beff88 100644
--- a/recipes/linux/linux-davinci/dm6446-evm/defconfig
+++ b/recipes/linux/linux-davinci/dm6446-evm/defconfig
@@ -1,14 +1,13 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.31-rc7-davinci1
-# Thu Sep 17 19:02:02 2009
+# Linux kernel version: 2.6.32-rc2-davinci1
+# Wed Oct 7 16:24:45 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -46,11 +45,12 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
#
# RCU Subsystem
#
-CONFIG_CLASSIC_RCU=y
-# CONFIG_TREE_RCU is not set
-# CONFIG_PREEMPT_RCU is not set
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_PREEMPT_RCU_TRACE is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
@@ -91,17 +91,15 @@ CONFIG_SHMEM=y
CONFIG_AIO=y
#
-# Performance Counters
+# Kernel Performance Events And Counters
#
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
-# CONFIG_STRIP_ASM_SYMS is not set
CONFIG_COMPAT_BRK=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
-# CONFIG_MARKERS is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
@@ -140,11 +138,12 @@ CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
-CONFIG_FREEZER=y
+# CONFIG_FREEZER is not set
#
# System Type
#
+CONFIG_MMU=y
# CONFIG_ARCH_AAEC2000 is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_REALVIEW is not set
@@ -159,6 +158,7 @@ CONFIG_FREEZER=y
# CONFIG_ARCH_STMP3XXX is not set
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_NOMADIK is not set
# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
# CONFIG_ARCH_IOP33X is not set
@@ -181,11 +181,13 @@ CONFIG_FREEZER=y
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5PC1XX is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_U300 is not set
CONFIG_ARCH_DAVINCI=y
# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_BCMRING is not set
CONFIG_AINTC=y
CONFIG_ARCH_DAVINCI_DMx=y
@@ -209,8 +211,8 @@ CONFIG_ARCH_DAVINCI_DM644x=y
CONFIG_MACH_DAVINCI_EVM=y
# CONFIG_MACH_SFFSDR is not set
CONFIG_DAVINCI_MUX=y
-CONFIG_DAVINCI_MUX_DEBUG=y
-CONFIG_DAVINCI_MUX_WARNINGS=y
+# CONFIG_DAVINCI_MUX_DEBUG is not set
+# CONFIG_DAVINCI_MUX_WARNINGS is not set
CONFIG_DAVINCI_RESET_CLOCKS=y
CONFIG_OSC_CLK_FREQ=27000000
@@ -236,7 +238,9 @@ CONFIG_ARM_THUMB=y
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+CONFIG_ARM_L1_CACHE_SHIFT=5
CONFIG_COMMON_CLKDEV=y
+CONFIG_FORCE_MAX_ZONEORDER=13
#
# Bus support
@@ -256,6 +260,8 @@ CONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not set
CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_HZ=100
CONFIG_AEABI=y
@@ -277,6 +283,7 @@ CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_HAVE_MLOCK=y
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_LEDS=y
# CONFIG_LEDS_CPU is not set
@@ -318,12 +325,7 @@ CONFIG_HAVE_AOUT=y
#
# Power management options
#
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_SLEEP=y
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-# CONFIG_APM_EMULATION is not set
+# CONFIG_PM is not set
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_NET=y
@@ -414,6 +416,7 @@ CONFIG_NETFILTER_ADVANCED=y
# CONFIG_IP6_NF_IPTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
@@ -454,6 +457,7 @@ CONFIG_NETFILTER_ADVANCED=y
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
@@ -461,99 +465,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
-CONFIG_MTD=m
-# CONFIG_MTD_DEBUG is not set
-# CONFIG_MTD_CONCAT is not set
-CONFIG_MTD_PARTITIONS=y
-CONFIG_MTD_TESTS=m
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
-# CONFIG_MTD_AR7_PARTS is not set
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_CHAR=m
-CONFIG_MTD_BLKDEVS=m
-CONFIG_MTD_BLOCK=m
-# CONFIG_MTD_BLOCK_RO is not set
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-# CONFIG_RFD_FTL is not set
-# CONFIG_SSFDC is not set
-# CONFIG_MTD_OOPS is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=m
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=m
-# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-CONFIG_MTD_CFI_INTELEXT=m
-CONFIG_MTD_CFI_AMDSTD=m
-# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=m
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-CONFIG_MTD_PHYSMAP=m
-# CONFIG_MTD_PHYSMAP_COMPAT is not set
-# CONFIG_MTD_ARM_INTEGRATOR is not set
-# CONFIG_MTD_PLATRAM is not set
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-CONFIG_MTD_NAND=m
-# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-# CONFIG_MTD_NAND_ECC_SMC is not set
-# CONFIG_MTD_NAND_MUSEUM_IDS is not set
-# CONFIG_MTD_NAND_GPIO is not set
-CONFIG_MTD_NAND_IDS=m
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
-# CONFIG_MTD_NAND_PLATFORM is not set
-# CONFIG_MTD_ALAUDA is not set
-CONFIG_MTD_NAND_DAVINCI=m
-# CONFIG_MTD_ONENAND is not set
-
-#
-# LPDDR flash memory drivers
-#
-# CONFIG_MTD_LPDDR is not set
-
-#
-# UBI - Unsorted block images
-#
-# CONFIG_MTD_UBI is not set
+# CONFIG_MTD is not set
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_COW_COMMON is not set
@@ -696,10 +608,7 @@ CONFIG_TI_DAVINCI_EMAC=y
# CONFIG_KS8842 is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
-
-#
-# Wireless LAN
-#
+CONFIG_WLAN=y
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
@@ -734,6 +643,7 @@ CONFIG_NETPOLL=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
#
# Input device support
@@ -805,6 +715,7 @@ CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_TCG_TPM is not set
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_HELPER_AUTO=y
@@ -838,13 +749,17 @@ CONFIG_I2C_DAVINCI=y
# Miscellaneous I2C Chip support
#
# CONFIG_DS1682 is not set
-# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set
# CONFIG_SPI is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_DEBUG_GPIO is not set
@@ -868,10 +783,19 @@ CONFIG_GPIO_PCF857X=y
#
# SPI GPIO expanders:
#
+
+#
+# AC97 GPIO expanders:
+#
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
# CONFIG_SENSORS_AD7414 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADM1021 is not set
@@ -920,6 +844,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_TMP421 is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
@@ -929,9 +854,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_W83L786NG is not set
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
# CONFIG_THERMAL is not set
-# CONFIG_THERMAL_HWMON is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
@@ -968,9 +891,11 @@ CONFIG_SSB_POSSIBLE=y
# CONFIG_MFD_TC6393XB is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_PCF50633 is not set
# CONFIG_AB3100_CORE is not set
+# CONFIG_REGULATOR is not set
CONFIG_MEDIA_SUPPORT=y
#
@@ -1000,6 +925,7 @@ CONFIG_MEDIA_TUNER_XC5000=y
CONFIG_MEDIA_TUNER_MC44S803=y
CONFIG_VIDEO_V4L2=y
CONFIG_VIDEOBUF_GEN=y
+CONFIG_VIDEOBUF_VMALLOC=y
CONFIG_VIDEOBUF_DMA_CONTIG=y
CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
@@ -1036,6 +962,7 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
#
# Video decoders
#
+# CONFIG_VIDEO_ADV7180 is not set
# CONFIG_VIDEO_BT819 is not set
# CONFIG_VIDEO_BT856 is not set
# CONFIG_VIDEO_BT866 is not set
@@ -1078,7 +1005,7 @@ CONFIG_VIDEO_TVP514X=y
#
# CONFIG_VIDEO_UPD64031A is not set
# CONFIG_VIDEO_UPD64083 is not set
-# CONFIG_VIDEO_DAVINCI_DISPLAY is not set
+CONFIG_VIDEO_DAVINCI_DISPLAY=y
CONFIG_DAVINCI_ENC_MNGR=y
CONFIG_ENC_MNGR_MAX_CHANNELS=1
CONFIG_DAVINCI_OSD=y
@@ -1101,9 +1028,9 @@ CONFIG_VIDEO_DM6446_CCDC=y
# Graphics support
#
# CONFIG_VGASTATE is not set
-CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_VIDEO_OUTPUT_CONTROL=y
CONFIG_FB=y
-CONFIG_FIRMWARE_EDID=y
+# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FB_DDC is not set
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
CONFIG_FB_CFB_FILLRECT=y
@@ -1142,12 +1069,7 @@ CONFIG_FB_DAVINCI=y
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
-# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
+# CONFIG_FRAMEBUFFER_CONSOLE is not set
CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
@@ -1191,7 +1113,6 @@ CONFIG_SND_SOC_TLV320AIC3X=y
# CONFIG_SOUND_PRIME is not set
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
-# CONFIG_HID_DEBUG is not set
# CONFIG_HIDRAW is not set
#
@@ -1214,6 +1135,7 @@ CONFIG_HID_CYPRESS=m
CONFIG_HID_EZKEY=m
# CONFIG_HID_KYE is not set
CONFIG_HID_GYRATION=m
+# CONFIG_HID_TWINHAN is not set
# CONFIG_HID_KENSINGTON is not set
CONFIG_HID_LOGITECH=y
# CONFIG_LOGITECH_FF is not set
@@ -1246,7 +1168,6 @@ CONFIG_USB=y
CONFIG_USB_DEVICEFS=y
CONFIG_USB_DEVICE_CLASS=y
# CONFIG_USB_DYNAMIC_MINORS is not set
-CONFIG_USB_SUSPEND=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
@@ -1261,6 +1182,7 @@ CONFIG_USB_SUSPEND=y
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_HWA_HCD is not set
@@ -1273,6 +1195,7 @@ CONFIG_USB_MUSB_SOC=y
CONFIG_USB_MUSB_HOST=y
# CONFIG_USB_MUSB_PERIPHERAL is not set
# CONFIG_USB_MUSB_OTG is not set
+# CONFIG_MUSB_SCHEDULE_INTR_EP is not set
CONFIG_USB_MUSB_HDRC_HCD=y
# CONFIG_MUSB_PIO_ONLY is not set
# CONFIG_USB_INVENTRA_DMA is not set
@@ -1368,9 +1291,10 @@ CONFIG_MMC_BLOCK=y
# MMC/SD/SDIO Host Controller Drivers
#
# CONFIG_MMC_SDHCI is not set
+# CONFIG_MMC_AT91 is not set
+# CONFIG_MMC_ATMELMCI is not set
CONFIG_MMC_DAVINCI=y
# CONFIG_MEMSTICK is not set
-# CONFIG_ACCESSIBILITY is not set
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=m
@@ -1398,63 +1322,16 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=m
#
# iptables trigger is under Netfilter config (LED target)
#
+# CONFIG_ACCESSIBILITY is not set
CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=m
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-# CONFIG_RTC_DRV_DAVINCI_EVM is not set
-# CONFIG_RTC_DRV_DS1307 is not set
-# CONFIG_RTC_DRV_DS1374 is not set
-# CONFIG_RTC_DRV_DS1672 is not set
-# CONFIG_RTC_DRV_MAX6900 is not set
-# CONFIG_RTC_DRV_RS5C372 is not set
-# CONFIG_RTC_DRV_ISL1208 is not set
-# CONFIG_RTC_DRV_X1205 is not set
-# CONFIG_RTC_DRV_PCF8563 is not set
-# CONFIG_RTC_DRV_PCF8583 is not set
-# CONFIG_RTC_DRV_M41T80 is not set
-# CONFIG_RTC_DRV_S35390A is not set
-# CONFIG_RTC_DRV_FM3130 is not set
-# CONFIG_RTC_DRV_RX8581 is not set
-# CONFIG_RTC_DRV_RX8025 is not set
-
-#
-# SPI RTC drivers
-#
-
-#
-# Platform RTC drivers
-#
-# CONFIG_RTC_DRV_CMOS is not set
-# CONFIG_RTC_DRV_DS1286 is not set
-# CONFIG_RTC_DRV_DS1511 is not set
-# CONFIG_RTC_DRV_DS1553 is not set
-# CONFIG_RTC_DRV_DS1742 is not set
-# CONFIG_RTC_DRV_STK17TA8 is not set
-# CONFIG_RTC_DRV_M48T86 is not set
-# CONFIG_RTC_DRV_M48T35 is not set
-# CONFIG_RTC_DRV_M48T59 is not set
-# CONFIG_RTC_DRV_BQ4802 is not set
-# CONFIG_RTC_DRV_V3020 is not set
-
-#
-# on-CPU RTC drivers
-#
+# CONFIG_RTC_CLASS is not set
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
-# CONFIG_REGULATOR is not set
# CONFIG_UIO is not set
+
+#
+# TI VLYNQ
+#
# CONFIG_STAGING is not set
#
@@ -1483,6 +1360,7 @@ CONFIG_XFS_FS=m
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
@@ -1533,17 +1411,6 @@ CONFIG_MISC_FILESYSTEMS=y
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
-CONFIG_JFFS2_FS=m
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-# CONFIG_JFFS2_SUMMARY is not set
-# CONFIG_JFFS2_FS_XATTR is not set
-# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
-CONFIG_JFFS2_ZLIB=y
-# CONFIG_JFFS2_LZO is not set
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
CONFIG_CRAMFS=y
# CONFIG_SQUASHFS is not set
# CONFIG_VXFS_FS is not set
@@ -1554,7 +1421,6 @@ CONFIG_MINIX_FS=m
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
-# CONFIG_NILFS2_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
@@ -1650,6 +1516,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_FRAME_WARN=1024
# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
@@ -1688,12 +1555,14 @@ CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
CONFIG_FRAME_POINTER=y
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
@@ -1736,7 +1605,6 @@ CONFIG_CRYPTO=y
#
# Crypto core or helper
#
-# CONFIG_CRYPTO_FIPS is not set
# CONFIG_CRYPTO_MANAGER is not set
# CONFIG_CRYPTO_MANAGER2 is not set
# CONFIG_CRYPTO_GF128MUL is not set
@@ -1768,11 +1636,13 @@ CONFIG_CRYPTO=y
#
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
#
# Digest
#
# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_GHASH is not set
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_MD5 is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/recipes/linux/linux-davinci/dm6467-evm/defconfig b/recipes/linux/linux-davinci/dm6467-evm/defconfig
index 5b2d5aefeb..bc80405bd3 100644
--- a/recipes/linux/linux-davinci/dm6467-evm/defconfig
+++ b/recipes/linux/linux-davinci/dm6467-evm/defconfig
@@ -1,14 +1,13 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.31-rc7-davinci1
-# Fri Sep 4 16:40:27 2009
+# Linux kernel version: 2.6.32-rc2-davinci1
+# Wed Oct 14 16:30:05 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -46,11 +45,12 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
#
# RCU Subsystem
#
-CONFIG_CLASSIC_RCU=y
-# CONFIG_TREE_RCU is not set
-# CONFIG_PREEMPT_RCU is not set
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_PREEMPT_RCU_TRACE is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
@@ -91,17 +91,15 @@ CONFIG_SHMEM=y
CONFIG_AIO=y
#
-# Performance Counters
+# Kernel Performance Events And Counters
#
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
-# CONFIG_STRIP_ASM_SYMS is not set
CONFIG_COMPAT_BRK=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
-# CONFIG_MARKERS is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
@@ -145,6 +143,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# System Type
#
+CONFIG_MMU=y
# CONFIG_ARCH_AAEC2000 is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_REALVIEW is not set
@@ -159,6 +158,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_STMP3XXX is not set
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_NOMADIK is not set
# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
# CONFIG_ARCH_IOP33X is not set
@@ -181,11 +181,13 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5PC1XX is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_U300 is not set
CONFIG_ARCH_DAVINCI=y
# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_BCMRING is not set
CONFIG_AINTC=y
CONFIG_ARCH_DAVINCI_DMx=y
@@ -235,11 +237,14 @@ CONFIG_ARM_THUMB=y
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+CONFIG_ARM_L1_CACHE_SHIFT=5
CONFIG_COMMON_CLKDEV=y
+CONFIG_FORCE_MAX_ZONEORDER=13
#
# Bus support
#
+# CONFIG_PCI is not set
# CONFIG_PCI_SYSCALL is not set
# CONFIG_ARCH_SUPPORTS_MSI is not set
# CONFIG_PCCARD is not set
@@ -255,6 +260,8 @@ CONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not set
CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_HZ=100
CONFIG_AEABI=y
@@ -276,6 +283,7 @@ CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_HAVE_MLOCK=y
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_LEDS=y
# CONFIG_LEDS_CPU is not set
@@ -408,6 +416,7 @@ CONFIG_NETFILTER_ADVANCED=y
# CONFIG_IP6_NF_IPTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
@@ -448,6 +457,7 @@ CONFIG_NETFILTER_ADVANCED=y
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
@@ -455,22 +465,22 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
-CONFIG_MTD=m
+CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_TESTS is not set
# CONFIG_MTD_CONCAT is not set
CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_TESTS is not set
# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
# CONFIG_MTD_AFS_PARTS is not set
# CONFIG_MTD_AR7_PARTS is not set
#
# User Modules And Translation Layers
#
-CONFIG_MTD_CHAR=m
-CONFIG_MTD_BLKDEVS=m
-CONFIG_MTD_BLOCK=m
-# CONFIG_MTD_BLOCK_RO is not set
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
@@ -481,9 +491,9 @@ CONFIG_MTD_BLOCK=m
#
# RAM/ROM/Flash chip drivers
#
-CONFIG_MTD_CFI=m
+CONFIG_MTD_CFI=y
# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=m
+CONFIG_MTD_GEN_PROBE=y
# CONFIG_MTD_CFI_ADV_OPTIONS is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
@@ -495,10 +505,10 @@ CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
-CONFIG_MTD_CFI_INTELEXT=m
-CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_INTELEXT=y
+CONFIG_MTD_CFI_AMDSTD=y
# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_CFI_UTIL=y
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
@@ -507,7 +517,7 @@ CONFIG_MTD_CFI_UTIL=m
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-CONFIG_MTD_PHYSMAP=m
+CONFIG_MTD_PHYSMAP=y
# CONFIG_MTD_PHYSMAP_COMPAT is not set
# CONFIG_MTD_ARM_INTEGRATOR is not set
# CONFIG_MTD_PLATRAM is not set
@@ -517,6 +527,7 @@ CONFIG_MTD_PHYSMAP=m
#
# CONFIG_MTD_DATAFLASH is not set
# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SST25L is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
@@ -528,17 +539,17 @@ CONFIG_MTD_PHYSMAP=m
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
-CONFIG_MTD_NAND=m
+CONFIG_MTD_NAND=y
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
# CONFIG_MTD_NAND_ECC_SMC is not set
# CONFIG_MTD_NAND_MUSEUM_IDS is not set
# CONFIG_MTD_NAND_GPIO is not set
-CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_IDS=y
# CONFIG_MTD_NAND_DISKONCHIP is not set
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_PLATFORM is not set
# CONFIG_MTD_ALAUDA is not set
-CONFIG_MTD_NAND_DAVINCI=m
+CONFIG_MTD_NAND_DAVINCI=y
# CONFIG_MTD_ONENAND is not set
#
@@ -553,7 +564,7 @@ CONFIG_MTD_NAND_DAVINCI=m
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_UB is not set
@@ -579,7 +590,7 @@ CONFIG_EEPROM_AT25=y
# CONFIG_EEPROM_MAX6875 is not set
# CONFIG_EEPROM_93CX6 is not set
CONFIG_HAVE_IDE=y
-CONFIG_IDE=m
+CONFIG_IDE=y
#
# Please see Documentation/ide/ide.txt for help/info on IDE drives
@@ -587,7 +598,7 @@ CONFIG_IDE=m
CONFIG_IDE_XFER_MODE=y
CONFIG_IDE_TIMINGS=y
# CONFIG_BLK_DEV_IDE_SATA is not set
-CONFIG_IDE_GD=m
+CONFIG_IDE_GD=y
CONFIG_IDE_GD_ATA=y
# CONFIG_IDE_GD_ATAPI is not set
# CONFIG_BLK_DEV_IDECD is not set
@@ -600,14 +611,14 @@ CONFIG_IDE_PROC_FS=y
#
# CONFIG_BLK_DEV_PLATFORM is not set
CONFIG_BLK_DEV_IDEDMA_SFF=y
-CONFIG_BLK_DEV_PALMCHIP_BK3710=m
+CONFIG_BLK_DEV_PALMCHIP_BK3710=y
CONFIG_BLK_DEV_IDEDMA=y
#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=m
+CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
# CONFIG_SCSI_TGT is not set
# CONFIG_SCSI_NETLINK is not set
@@ -616,7 +627,7 @@ CONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#
-CONFIG_BLK_DEV_SD=m
+CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
# CONFIG_BLK_DEV_SR is not set
@@ -643,8 +654,9 @@ CONFIG_SCSI_LOWLEVEL=y
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_DH is not set
# CONFIG_SCSI_OSD_INITIATOR is not set
-CONFIG_ATA=m
+CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
CONFIG_SATA_PMP=y
CONFIG_ATA_SFF=y
# CONFIG_SATA_MV is not set
@@ -655,7 +667,7 @@ CONFIG_NETDEVICES=y
# CONFIG_BONDING is not set
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
-CONFIG_TUN=m
+CONFIG_TUN=y
# CONFIG_VETH is not set
CONFIG_PHYLIB=y
@@ -702,10 +714,7 @@ CONFIG_DM9000_DEBUGLEVEL=4
# CONFIG_KS8851 is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
-
-#
-# Wireless LAN
-#
+CONFIG_WLAN=y
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
@@ -722,24 +731,25 @@ CONFIG_DM9000_DEBUGLEVEL=4
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_USBNET is not set
# CONFIG_WAN is not set
-CONFIG_PPP=m
+CONFIG_PPP=y
# CONFIG_PPP_MULTILINK is not set
# CONFIG_PPP_FILTER is not set
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_ASYNC=y
+CONFIG_PPP_SYNC_TTY=y
+CONFIG_PPP_DEFLATE=y
# CONFIG_PPP_BSDCOMP is not set
# CONFIG_PPP_MPPE is not set
# CONFIG_PPPOE is not set
# CONFIG_PPPOL2TP is not set
# CONFIG_SLIP is not set
-CONFIG_SLHC=m
+CONFIG_SLHC=y
CONFIG_NETCONSOLE=y
# CONFIG_NETCONSOLE_DYNAMIC is not set
CONFIG_NETPOLL=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
#
# Input device support
@@ -753,19 +763,23 @@ CONFIG_INPUT=y
#
# CONFIG_INPUT_MOUSEDEV is not set
# CONFIG_INPUT_JOYDEV is not set
-CONFIG_INPUT_EVDEV=m
-CONFIG_INPUT_EVBUG=m
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_EVBUG=y
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADP5588 is not set
CONFIG_KEYBOARD_ATKBD=m
+# CONFIG_QT2160 is not set
# CONFIG_KEYBOARD_LKKBD is not set
CONFIG_KEYBOARD_GPIO=y
# CONFIG_KEYBOARD_MATRIX is not set
# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
CONFIG_KEYBOARD_XTKBD=m
@@ -783,6 +797,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_GUNZE is not set
# CONFIG_TOUCHSCREEN_ELO is not set
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
+# CONFIG_TOUCHSCREEN_MCS5000 is not set
# CONFIG_TOUCHSCREEN_MTOUCH is not set
# CONFIG_TOUCHSCREEN_INEXIO is not set
# CONFIG_TOUCHSCREEN_MK712 is not set
@@ -839,9 +854,11 @@ CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
-# CONFIG_VDCE is not set
+CONFIG_VDCE=y
+CONFIG_CIR=y
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_HELPER_AUTO=y
@@ -875,7 +892,6 @@ CONFIG_I2C_DAVINCI=y
# Miscellaneous I2C Chip support
#
# CONFIG_DS1682 is not set
-# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
@@ -897,6 +913,11 @@ CONFIG_SPI_GPIO=y
#
# CONFIG_SPI_SPIDEV is not set
# CONFIG_SPI_TLE62X0 is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_DEBUG_GPIO is not set
@@ -922,10 +943,20 @@ CONFIG_GPIO_PCF857X=y
#
# CONFIG_GPIO_MAX7301 is not set
# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
+
+#
+# AC97 GPIO expanders:
+#
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
# CONFIG_SENSORS_AD7414 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADCXX is not set
@@ -977,6 +1008,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_TMP421 is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
@@ -987,9 +1019,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_SENSORS_LIS3_SPI is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
# CONFIG_THERMAL is not set
-# CONFIG_THERMAL_HWMON is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
@@ -997,7 +1027,7 @@ CONFIG_WATCHDOG=y
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
-CONFIG_DAVINCI_WATCHDOG=m
+CONFIG_DAVINCI_WATCHDOG=y
#
# USB-based Watchdog Cards
@@ -1026,11 +1056,138 @@ CONFIG_SSB_POSSIBLE=y
# CONFIG_MFD_TC6393XB is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_MC13783 is not set
# CONFIG_AB3100_CORE is not set
# CONFIG_EZX_PCAP is not set
-# CONFIG_MEDIA_SUPPORT is not set
+# CONFIG_REGULATOR is not set
+CONFIG_MEDIA_SUPPORT=y
+
+#
+# Multimedia core support
+#
+CONFIG_VIDEO_DEV=y
+CONFIG_VIDEO_V4L2_COMMON=y
+# CONFIG_VIDEO_ALLOW_V4L1 is not set
+# CONFIG_VIDEO_V4L1_COMPAT is not set
+# CONFIG_DVB_CORE is not set
+CONFIG_VIDEO_MEDIA=y
+
+#
+# Multimedia drivers
+#
+# CONFIG_MEDIA_ATTACH is not set
+CONFIG_MEDIA_TUNER=y
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=y
+CONFIG_MEDIA_TUNER_TDA8290=y
+CONFIG_MEDIA_TUNER_TDA9887=y
+CONFIG_MEDIA_TUNER_TEA5761=y
+CONFIG_MEDIA_TUNER_TEA5767=y
+CONFIG_MEDIA_TUNER_MT20XX=y
+CONFIG_MEDIA_TUNER_XC2028=y
+CONFIG_MEDIA_TUNER_XC5000=y
+CONFIG_MEDIA_TUNER_MC44S803=y
+CONFIG_VIDEO_V4L2=y
+CONFIG_VIDEOBUF_GEN=y
+CONFIG_VIDEOBUF_DMA_CONTIG=y
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+
+#
+# Encoders/decoders and other helper chips
+#
+
+#
+# Audio decoders
+#
+# CONFIG_VIDEO_TVAUDIO is not set
+# CONFIG_VIDEO_TDA7432 is not set
+# CONFIG_VIDEO_TDA9840 is not set
+# CONFIG_VIDEO_TDA9875 is not set
+# CONFIG_VIDEO_TEA6415C is not set
+# CONFIG_VIDEO_TEA6420 is not set
+# CONFIG_VIDEO_MSP3400 is not set
+# CONFIG_VIDEO_CS5345 is not set
+# CONFIG_VIDEO_CS53L32A is not set
+# CONFIG_VIDEO_M52790 is not set
+# CONFIG_VIDEO_TLV320AIC23B is not set
+# CONFIG_VIDEO_WM8775 is not set
+# CONFIG_VIDEO_WM8739 is not set
+# CONFIG_VIDEO_VP27SMPX is not set
+
+#
+# RDS decoders
+#
+# CONFIG_VIDEO_SAA6588 is not set
+
+#
+# Video decoders
+#
+# CONFIG_VIDEO_ADV7180 is not set
+# CONFIG_VIDEO_BT819 is not set
+# CONFIG_VIDEO_BT856 is not set
+# CONFIG_VIDEO_BT866 is not set
+# CONFIG_VIDEO_KS0127 is not set
+# CONFIG_VIDEO_OV7670 is not set
+# CONFIG_VIDEO_MT9V011 is not set
+# CONFIG_VIDEO_TCM825X is not set
+# CONFIG_VIDEO_SAA7110 is not set
+# CONFIG_VIDEO_SAA711X is not set
+# CONFIG_VIDEO_SAA717X is not set
+# CONFIG_VIDEO_TVP514X is not set
+# CONFIG_VIDEO_TVP5150 is not set
+CONFIG_VIDEO_TVP7002=y
+# CONFIG_VIDEO_VPX3220 is not set
+
+#
+# Video and audio decoders
+#
+# CONFIG_VIDEO_CX25840 is not set
+
+#
+# MPEG video encoders
+#
+# CONFIG_VIDEO_CX2341X is not set
+
+#
+# Video encoders
+#
+# CONFIG_VIDEO_SAA7127 is not set
+# CONFIG_VIDEO_SAA7185 is not set
+# CONFIG_VIDEO_ADV7170 is not set
+# CONFIG_VIDEO_ADV7175 is not set
+CONFIG_VIDEO_THS7303=y
+CONFIG_VIDEO_THS7353=y
+CONFIG_VIDEO_THS7353_LUMA_CHANNEL=2
+CONFIG_VIDEO_ADV7343=y
+# CONFIG_VIDEO_THS8200 is not set
+
+#
+# Video improvement chips
+#
+# CONFIG_VIDEO_UPD64031A is not set
+# CONFIG_VIDEO_UPD64083 is not set
+CONFIG_DISPLAY_DAVINCI_DM646X_EVM=y
+CONFIG_CAPTURE_DAVINCI_DM646X_EVM=y
+CONFIG_VIDEO_DAVINCI_VPIF=y
+# CONFIG_VIDEO_DAVINCI_DISPLAY is not set
+# CONFIG_DAVINCI_ENC_MNGR is not set
+# CONFIG_DAVINCI_OSD is not set
+# CONFIG_VIDEO_VIVI is not set
+# CONFIG_VIDEO_VPSS_SYSTEM is not set
+# CONFIG_VIDEO_VPFE_CAPTURE is not set
+# CONFIG_VIDEO_SAA5246A is not set
+# CONFIG_VIDEO_SAA5249 is not set
+# CONFIG_SOC_CAMERA is not set
+# CONFIG_SOC_CAMERA_MT9T031 is not set
+# CONFIG_V4L_USB_DRIVERS is not set
+# CONFIG_RADIO_ADAPTERS is not set
+# CONFIG_DAB is not set
#
# Graphics support
@@ -1050,11 +1207,11 @@ CONFIG_SSB_POSSIBLE=y
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
-CONFIG_SOUND=m
+CONFIG_SOUND=y
# CONFIG_SOUND_OSS_CORE is not set
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
CONFIG_SND_JACK=y
# CONFIG_SND_SEQUENCER is not set
# CONFIG_SND_MIXER_OSS is not set
@@ -1080,34 +1237,27 @@ CONFIG_SND_SPI=y
CONFIG_SND_USB=y
# CONFIG_SND_USB_AUDIO is not set
# CONFIG_SND_USB_CAIAQ is not set
-CONFIG_SND_SOC=m
-CONFIG_SND_DAVINCI_SOC=m
-CONFIG_SND_DAVINCI_SOC_MCASP=m
-CONFIG_SND_DM6467_SOC_EVM=m
-CONFIG_SND_SOC_I2C_AND_SPI=m
+CONFIG_SND_SOC=y
+CONFIG_SND_DAVINCI_SOC=y
+CONFIG_SND_DAVINCI_SOC_MCASP=y
+CONFIG_SND_DM6467_SOC_EVM=y
+CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_ALL_CODECS is not set
-CONFIG_SND_SOC_SPDIF=m
-CONFIG_SND_SOC_TLV320AIC3X=m
+CONFIG_SND_SOC_SPDIF=y
+CONFIG_SND_SOC_TLV320AIC3X=y
# CONFIG_SOUND_PRIME is not set
CONFIG_HID_SUPPORT=y
-CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
+CONFIG_HID=y
# CONFIG_HIDRAW is not set
#
# USB Input Devices
#
-CONFIG_USB_HID=m
+CONFIG_USB_HID=y
# CONFIG_HID_PID is not set
# CONFIG_USB_HIDDEV is not set
#
-# USB HID Boot Protocol drivers
-#
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_MOUSE is not set
-
-#
# Special HID drivers
#
CONFIG_HID_A4TECH=m
@@ -1120,6 +1270,7 @@ CONFIG_HID_CYPRESS=m
CONFIG_HID_EZKEY=m
# CONFIG_HID_KYE is not set
CONFIG_HID_GYRATION=m
+# CONFIG_HID_TWINHAN is not set
# CONFIG_HID_KENSINGTON is not set
CONFIG_HID_LOGITECH=m
# CONFIG_LOGITECH_FF is not set
@@ -1142,7 +1293,7 @@ CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
# CONFIG_USB_ARCH_HAS_OHCI is not set
# CONFIG_USB_ARCH_HAS_EHCI is not set
-CONFIG_USB=m
+CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
@@ -1155,7 +1306,7 @@ CONFIG_USB_DEVICE_CLASS=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-CONFIG_USB_MON=m
+CONFIG_USB_MON=y
# CONFIG_USB_WUSB is not set
# CONFIG_USB_WUSB_CBAF is not set
@@ -1166,19 +1317,22 @@ CONFIG_USB_MON=m
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_HWA_HCD is not set
-CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_MUSB_HDRC=y
CONFIG_USB_MUSB_SOC=y
#
-# DaVinci 35x and 644x USB support
+# DaVinci 35x, 36x, 644x USB support
#
-# CONFIG_USB_MUSB_HOST is not set
-CONFIG_USB_MUSB_PERIPHERAL=y
+CONFIG_USB_MUSB_HOST=y
+# CONFIG_USB_MUSB_PERIPHERAL is not set
# CONFIG_USB_MUSB_OTG is not set
-CONFIG_USB_GADGET_MUSB_HDRC=y
+# CONFIG_MUSB_SCHEDULE_INTR_EP is not set
+# CONFIG_USB_GADGET_MUSB_HDRC is not set
+CONFIG_USB_MUSB_HDRC_HCD=y
CONFIG_MUSB_PIO_ONLY=y
# CONFIG_USB_MUSB_DEBUG is not set
@@ -1197,8 +1351,8 @@ CONFIG_MUSB_PIO_ONLY=y
#
# also be needed; see USB_STORAGE Help for more info
#
-CONFIG_USB_STORAGE=m
-# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE=y
+CONFIG_USB_STORAGE_DEBUG=y
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
# CONFIG_USB_STORAGE_ISD200 is not set
@@ -1244,10 +1398,10 @@ CONFIG_USB_STORAGE=m
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
-CONFIG_USB_TEST=m
+CONFIG_USB_TEST=y
# CONFIG_USB_ISIGHTFW is not set
# CONFIG_USB_VST is not set
-CONFIG_USB_GADGET=m
+CONFIG_USB_GADGET=y
# CONFIG_USB_GADGET_DEBUG is not set
CONFIG_USB_GADGET_DEBUG_FILES=y
CONFIG_USB_GADGET_DEBUG_FS=y
@@ -1259,11 +1413,13 @@ CONFIG_USB_GADGET_SELECTED=y
# CONFIG_USB_GADGET_LH7A40X is not set
# CONFIG_USB_GADGET_OMAP is not set
# CONFIG_USB_GADGET_PXA25X is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
# CONFIG_USB_GADGET_PXA27X is not set
# CONFIG_USB_GADGET_S3C_HSOTG is not set
# CONFIG_USB_GADGET_IMX is not set
# CONFIG_USB_GADGET_S3C2410 is not set
-# CONFIG_USB_GADGET_M66592 is not set
+CONFIG_USB_GADGET_M66592=y
+CONFIG_USB_M66592=y
# CONFIG_USB_GADGET_AMD5536UDC is not set
# CONFIG_USB_GADGET_FSL_QE is not set
# CONFIG_USB_GADGET_CI13XXX is not set
@@ -1274,11 +1430,11 @@ CONFIG_USB_GADGET_SELECTED=y
CONFIG_USB_GADGET_DUALSPEED=y
# CONFIG_USB_ZERO is not set
# CONFIG_USB_AUDIO is not set
-CONFIG_USB_ETH=m
+CONFIG_USB_ETH=y
CONFIG_USB_ETH_RNDIS=y
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_FILE_STORAGE=m
-# CONFIG_USB_FILE_STORAGE_TEST is not set
+# CONFIG_USB_ETH_EEM is not set
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FILE_STORAGE is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_MIDI_GADGET is not set
# CONFIG_USB_G_PRINTER is not set
@@ -1289,15 +1445,15 @@ CONFIG_USB_FILE_STORAGE=m
#
CONFIG_USB_OTG_UTILS=y
# CONFIG_USB_GPIO_VBUS is not set
-CONFIG_NOP_USB_XCEIV=m
-CONFIG_MMC=m
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set
#
# MMC/SD/SDIO Card Drivers
#
-CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK=y
# CONFIG_MMC_BLOCK_BOUNCE is not set
# CONFIG_SDIO_UART is not set
# CONFIG_MMC_TEST is not set
@@ -1306,18 +1462,19 @@ CONFIG_MMC_BLOCK=m
# MMC/SD/SDIO Host Controller Drivers
#
# CONFIG_MMC_SDHCI is not set
-CONFIG_MMC_DAVINCI=m
+# CONFIG_MMC_AT91 is not set
+# CONFIG_MMC_ATMELMCI is not set
+CONFIG_MMC_DAVINCI=y
# CONFIG_MMC_SPI is not set
# CONFIG_MEMSTICK is not set
-# CONFIG_ACCESSIBILITY is not set
CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=m
+CONFIG_LEDS_CLASS=y
#
# LED drivers
#
# CONFIG_LEDS_PCA9532 is not set
-CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_GPIO=y
CONFIG_LEDS_GPIO_PLATFORM=y
# CONFIG_LEDS_LP3944 is not set
# CONFIG_LEDS_PCA955X is not set
@@ -1328,9 +1485,9 @@ CONFIG_LEDS_GPIO_PLATFORM=y
# LED Triggers
#
CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_TIMER=y
# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_GPIO is not set
# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
@@ -1338,8 +1495,12 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=m
#
# iptables trigger is under Netfilter config (LED target)
#
+# CONFIG_ACCESSIBILITY is not set
CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=m
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
#
# RTC interfaces
@@ -1378,6 +1539,7 @@ CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_DRV_R9701 is not set
# CONFIG_RTC_DRV_RS5C348 is not set
# CONFIG_RTC_DRV_DS3234 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
#
# Platform RTC drivers
@@ -1399,8 +1561,11 @@ CONFIG_RTC_INTF_DEV=y
#
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
-# CONFIG_REGULATOR is not set
# CONFIG_UIO is not set
+
+#
+# TI VLYNQ
+#
# CONFIG_STAGING is not set
#
@@ -1429,6 +1594,7 @@ CONFIG_XFS_FS=m
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
@@ -1500,7 +1666,6 @@ CONFIG_MINIX_FS=m
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
-# CONFIG_NILFS2_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
@@ -1596,6 +1761,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_FRAME_WARN=1024
# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
@@ -1634,12 +1800,14 @@ CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
CONFIG_FRAME_POINTER=y
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
@@ -1682,7 +1850,6 @@ CONFIG_CRYPTO=y
#
# Crypto core or helper
#
-# CONFIG_CRYPTO_FIPS is not set
# CONFIG_CRYPTO_MANAGER is not set
# CONFIG_CRYPTO_MANAGER2 is not set
# CONFIG_CRYPTO_GF128MUL is not set
@@ -1714,11 +1881,13 @@ CONFIG_CRYPTO=y
#
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
#
# Digest
#
# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_GHASH is not set
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_MD5 is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -1770,7 +1939,7 @@ CONFIG_CRYPTO=y
#
CONFIG_BITREVERSE=y
CONFIG_GENERIC_FIND_LAST_BIT=y
-CONFIG_CRC_CCITT=m
+CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC_T10DIF=m
# CONFIG_CRC_ITU_T is not set
@@ -1778,7 +1947,7 @@ CONFIG_CRC32=y
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=m
+CONFIG_ZLIB_DEFLATE=y
CONFIG_DECOMPRESS_GZIP=y
CONFIG_GENERIC_ALLOCATOR=y
CONFIG_HAS_IOMEM=y
diff --git a/recipes/linux/linux-davinci/dm6467t-evm/defconfig b/recipes/linux/linux-davinci/dm6467t-evm/defconfig
index a4f136c245..b33b6f626f 100644
--- a/recipes/linux/linux-davinci/dm6467t-evm/defconfig
+++ b/recipes/linux/linux-davinci/dm6467t-evm/defconfig
@@ -1,14 +1,13 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.31-rc7-davinci1
-# Fri Sep 4 16:43:12 2009
+# Linux kernel version: 2.6.32-rc2-davinci1
+# Wed Oct 14 16:24:38 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -46,11 +45,12 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
#
# RCU Subsystem
#
-CONFIG_CLASSIC_RCU=y
-# CONFIG_TREE_RCU is not set
-# CONFIG_PREEMPT_RCU is not set
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_PREEMPT_RCU_TRACE is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
@@ -91,17 +91,15 @@ CONFIG_SHMEM=y
CONFIG_AIO=y
#
-# Performance Counters
+# Kernel Performance Events And Counters
#
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
-# CONFIG_STRIP_ASM_SYMS is not set
CONFIG_COMPAT_BRK=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
-# CONFIG_MARKERS is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
@@ -145,6 +143,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# System Type
#
+CONFIG_MMU=y
# CONFIG_ARCH_AAEC2000 is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_REALVIEW is not set
@@ -159,6 +158,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_STMP3XXX is not set
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_NOMADIK is not set
# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
# CONFIG_ARCH_IOP33X is not set
@@ -181,11 +181,13 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5PC1XX is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_U300 is not set
CONFIG_ARCH_DAVINCI=y
# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_BCMRING is not set
CONFIG_AINTC=y
CONFIG_ARCH_DAVINCI_DMx=y
@@ -235,11 +237,14 @@ CONFIG_ARM_THUMB=y
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+CONFIG_ARM_L1_CACHE_SHIFT=5
CONFIG_COMMON_CLKDEV=y
+CONFIG_FORCE_MAX_ZONEORDER=13
#
# Bus support
#
+# CONFIG_PCI is not set
# CONFIG_PCI_SYSCALL is not set
# CONFIG_ARCH_SUPPORTS_MSI is not set
# CONFIG_PCCARD is not set
@@ -255,6 +260,8 @@ CONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not set
CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_HZ=100
CONFIG_AEABI=y
@@ -276,6 +283,7 @@ CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_HAVE_MLOCK=y
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_LEDS=y
# CONFIG_LEDS_CPU is not set
@@ -408,6 +416,7 @@ CONFIG_NETFILTER_ADVANCED=y
# CONFIG_IP6_NF_IPTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
@@ -448,6 +457,7 @@ CONFIG_NETFILTER_ADVANCED=y
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
@@ -455,22 +465,22 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
-CONFIG_MTD=m
+CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_TESTS is not set
# CONFIG_MTD_CONCAT is not set
CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_TESTS is not set
# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
# CONFIG_MTD_AFS_PARTS is not set
# CONFIG_MTD_AR7_PARTS is not set
#
# User Modules And Translation Layers
#
-CONFIG_MTD_CHAR=m
-CONFIG_MTD_BLKDEVS=m
-CONFIG_MTD_BLOCK=m
-# CONFIG_MTD_BLOCK_RO is not set
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
@@ -481,9 +491,9 @@ CONFIG_MTD_BLOCK=m
#
# RAM/ROM/Flash chip drivers
#
-CONFIG_MTD_CFI=m
+CONFIG_MTD_CFI=y
# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=m
+CONFIG_MTD_GEN_PROBE=y
# CONFIG_MTD_CFI_ADV_OPTIONS is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
@@ -495,10 +505,10 @@ CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
-CONFIG_MTD_CFI_INTELEXT=m
-CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_INTELEXT=y
+CONFIG_MTD_CFI_AMDSTD=y
# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_CFI_UTIL=y
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
@@ -507,7 +517,7 @@ CONFIG_MTD_CFI_UTIL=m
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-CONFIG_MTD_PHYSMAP=m
+CONFIG_MTD_PHYSMAP=y
# CONFIG_MTD_PHYSMAP_COMPAT is not set
# CONFIG_MTD_ARM_INTEGRATOR is not set
# CONFIG_MTD_PLATRAM is not set
@@ -517,6 +527,7 @@ CONFIG_MTD_PHYSMAP=m
#
# CONFIG_MTD_DATAFLASH is not set
# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SST25L is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
@@ -528,17 +539,17 @@ CONFIG_MTD_PHYSMAP=m
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
-CONFIG_MTD_NAND=m
+CONFIG_MTD_NAND=y
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
# CONFIG_MTD_NAND_ECC_SMC is not set
# CONFIG_MTD_NAND_MUSEUM_IDS is not set
# CONFIG_MTD_NAND_GPIO is not set
-CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_IDS=y
# CONFIG_MTD_NAND_DISKONCHIP is not set
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_PLATFORM is not set
# CONFIG_MTD_ALAUDA is not set
-CONFIG_MTD_NAND_DAVINCI=m
+CONFIG_MTD_NAND_DAVINCI=y
# CONFIG_MTD_ONENAND is not set
#
@@ -553,7 +564,7 @@ CONFIG_MTD_NAND_DAVINCI=m
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_UB is not set
@@ -579,7 +590,7 @@ CONFIG_EEPROM_AT25=y
# CONFIG_EEPROM_MAX6875 is not set
# CONFIG_EEPROM_93CX6 is not set
CONFIG_HAVE_IDE=y
-CONFIG_IDE=m
+CONFIG_IDE=y
#
# Please see Documentation/ide/ide.txt for help/info on IDE drives
@@ -587,7 +598,7 @@ CONFIG_IDE=m
CONFIG_IDE_XFER_MODE=y
CONFIG_IDE_TIMINGS=y
# CONFIG_BLK_DEV_IDE_SATA is not set
-CONFIG_IDE_GD=m
+CONFIG_IDE_GD=y
CONFIG_IDE_GD_ATA=y
# CONFIG_IDE_GD_ATAPI is not set
# CONFIG_BLK_DEV_IDECD is not set
@@ -600,14 +611,14 @@ CONFIG_IDE_PROC_FS=y
#
# CONFIG_BLK_DEV_PLATFORM is not set
CONFIG_BLK_DEV_IDEDMA_SFF=y
-CONFIG_BLK_DEV_PALMCHIP_BK3710=m
+CONFIG_BLK_DEV_PALMCHIP_BK3710=y
CONFIG_BLK_DEV_IDEDMA=y
#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=m
+CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
# CONFIG_SCSI_TGT is not set
# CONFIG_SCSI_NETLINK is not set
@@ -616,7 +627,7 @@ CONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#
-CONFIG_BLK_DEV_SD=m
+CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
# CONFIG_BLK_DEV_SR is not set
@@ -643,8 +654,9 @@ CONFIG_SCSI_LOWLEVEL=y
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_DH is not set
# CONFIG_SCSI_OSD_INITIATOR is not set
-CONFIG_ATA=m
+CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
CONFIG_SATA_PMP=y
CONFIG_ATA_SFF=y
# CONFIG_SATA_MV is not set
@@ -655,7 +667,7 @@ CONFIG_NETDEVICES=y
# CONFIG_BONDING is not set
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
-CONFIG_TUN=m
+CONFIG_TUN=y
# CONFIG_VETH is not set
CONFIG_PHYLIB=y
@@ -702,10 +714,7 @@ CONFIG_DM9000_DEBUGLEVEL=4
# CONFIG_KS8851 is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
-
-#
-# Wireless LAN
-#
+CONFIG_WLAN=y
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
@@ -722,24 +731,25 @@ CONFIG_DM9000_DEBUGLEVEL=4
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_USBNET is not set
# CONFIG_WAN is not set
-CONFIG_PPP=m
+CONFIG_PPP=y
# CONFIG_PPP_MULTILINK is not set
# CONFIG_PPP_FILTER is not set
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_ASYNC=y
+CONFIG_PPP_SYNC_TTY=y
+CONFIG_PPP_DEFLATE=y
# CONFIG_PPP_BSDCOMP is not set
# CONFIG_PPP_MPPE is not set
# CONFIG_PPPOE is not set
# CONFIG_PPPOL2TP is not set
# CONFIG_SLIP is not set
-CONFIG_SLHC=m
+CONFIG_SLHC=y
CONFIG_NETCONSOLE=y
# CONFIG_NETCONSOLE_DYNAMIC is not set
CONFIG_NETPOLL=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
#
# Input device support
@@ -753,19 +763,23 @@ CONFIG_INPUT=y
#
# CONFIG_INPUT_MOUSEDEV is not set
# CONFIG_INPUT_JOYDEV is not set
-CONFIG_INPUT_EVDEV=m
-CONFIG_INPUT_EVBUG=m
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_EVBUG=y
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADP5588 is not set
CONFIG_KEYBOARD_ATKBD=m
+# CONFIG_QT2160 is not set
# CONFIG_KEYBOARD_LKKBD is not set
CONFIG_KEYBOARD_GPIO=y
# CONFIG_KEYBOARD_MATRIX is not set
# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
CONFIG_KEYBOARD_XTKBD=m
@@ -783,6 +797,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_GUNZE is not set
# CONFIG_TOUCHSCREEN_ELO is not set
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
+# CONFIG_TOUCHSCREEN_MCS5000 is not set
# CONFIG_TOUCHSCREEN_MTOUCH is not set
# CONFIG_TOUCHSCREEN_INEXIO is not set
# CONFIG_TOUCHSCREEN_MK712 is not set
@@ -839,9 +854,11 @@ CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
-# CONFIG_VDCE is not set
+CONFIG_VDCE=y
+CONFIG_CIR=y
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_HELPER_AUTO=y
@@ -875,7 +892,6 @@ CONFIG_I2C_DAVINCI=y
# Miscellaneous I2C Chip support
#
# CONFIG_DS1682 is not set
-# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
@@ -888,15 +904,20 @@ CONFIG_SPI_MASTER=y
#
# SPI Master Controller Drivers
#
-CONFIG_SPI_DAVINCI=m
-CONFIG_SPI_BITBANG=m
-CONFIG_SPI_GPIO=m
+CONFIG_SPI_DAVINCI=y
+CONFIG_SPI_BITBANG=y
+CONFIG_SPI_GPIO=y
#
# SPI Protocol Masters
#
# CONFIG_SPI_SPIDEV is not set
# CONFIG_SPI_TLE62X0 is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_DEBUG_GPIO is not set
@@ -922,10 +943,20 @@ CONFIG_GPIO_PCF857X=y
#
# CONFIG_GPIO_MAX7301 is not set
# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
+
+#
+# AC97 GPIO expanders:
+#
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
# CONFIG_SENSORS_AD7414 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADCXX is not set
@@ -977,6 +1008,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_TMP421 is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
@@ -987,9 +1019,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_SENSORS_LIS3_SPI is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
# CONFIG_THERMAL is not set
-# CONFIG_THERMAL_HWMON is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
@@ -997,7 +1027,7 @@ CONFIG_WATCHDOG=y
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
-CONFIG_DAVINCI_WATCHDOG=m
+CONFIG_DAVINCI_WATCHDOG=y
#
# USB-based Watchdog Cards
@@ -1026,11 +1056,138 @@ CONFIG_SSB_POSSIBLE=y
# CONFIG_MFD_TC6393XB is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_MC13783 is not set
# CONFIG_AB3100_CORE is not set
# CONFIG_EZX_PCAP is not set
-# CONFIG_MEDIA_SUPPORT is not set
+# CONFIG_REGULATOR is not set
+CONFIG_MEDIA_SUPPORT=y
+
+#
+# Multimedia core support
+#
+CONFIG_VIDEO_DEV=y
+CONFIG_VIDEO_V4L2_COMMON=y
+# CONFIG_VIDEO_ALLOW_V4L1 is not set
+# CONFIG_VIDEO_V4L1_COMPAT is not set
+# CONFIG_DVB_CORE is not set
+CONFIG_VIDEO_MEDIA=y
+
+#
+# Multimedia drivers
+#
+# CONFIG_MEDIA_ATTACH is not set
+CONFIG_MEDIA_TUNER=y
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=y
+CONFIG_MEDIA_TUNER_TDA8290=y
+CONFIG_MEDIA_TUNER_TDA9887=y
+CONFIG_MEDIA_TUNER_TEA5761=y
+CONFIG_MEDIA_TUNER_TEA5767=y
+CONFIG_MEDIA_TUNER_MT20XX=y
+CONFIG_MEDIA_TUNER_XC2028=y
+CONFIG_MEDIA_TUNER_XC5000=y
+CONFIG_MEDIA_TUNER_MC44S803=y
+CONFIG_VIDEO_V4L2=y
+CONFIG_VIDEOBUF_GEN=y
+CONFIG_VIDEOBUF_DMA_CONTIG=y
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+
+#
+# Encoders/decoders and other helper chips
+#
+
+#
+# Audio decoders
+#
+# CONFIG_VIDEO_TVAUDIO is not set
+# CONFIG_VIDEO_TDA7432 is not set
+# CONFIG_VIDEO_TDA9840 is not set
+# CONFIG_VIDEO_TDA9875 is not set
+# CONFIG_VIDEO_TEA6415C is not set
+# CONFIG_VIDEO_TEA6420 is not set
+# CONFIG_VIDEO_MSP3400 is not set
+# CONFIG_VIDEO_CS5345 is not set
+# CONFIG_VIDEO_CS53L32A is not set
+# CONFIG_VIDEO_M52790 is not set
+# CONFIG_VIDEO_TLV320AIC23B is not set
+# CONFIG_VIDEO_WM8775 is not set
+# CONFIG_VIDEO_WM8739 is not set
+# CONFIG_VIDEO_VP27SMPX is not set
+
+#
+# RDS decoders
+#
+# CONFIG_VIDEO_SAA6588 is not set
+
+#
+# Video decoders
+#
+# CONFIG_VIDEO_ADV7180 is not set
+# CONFIG_VIDEO_BT819 is not set
+# CONFIG_VIDEO_BT856 is not set
+# CONFIG_VIDEO_BT866 is not set
+# CONFIG_VIDEO_KS0127 is not set
+# CONFIG_VIDEO_OV7670 is not set
+# CONFIG_VIDEO_MT9V011 is not set
+# CONFIG_VIDEO_TCM825X is not set
+# CONFIG_VIDEO_SAA7110 is not set
+# CONFIG_VIDEO_SAA711X is not set
+# CONFIG_VIDEO_SAA717X is not set
+# CONFIG_VIDEO_TVP514X is not set
+# CONFIG_VIDEO_TVP5150 is not set
+CONFIG_VIDEO_TVP7002=y
+# CONFIG_VIDEO_VPX3220 is not set
+
+#
+# Video and audio decoders
+#
+# CONFIG_VIDEO_CX25840 is not set
+
+#
+# MPEG video encoders
+#
+# CONFIG_VIDEO_CX2341X is not set
+
+#
+# Video encoders
+#
+# CONFIG_VIDEO_SAA7127 is not set
+# CONFIG_VIDEO_SAA7185 is not set
+# CONFIG_VIDEO_ADV7170 is not set
+# CONFIG_VIDEO_ADV7175 is not set
+CONFIG_VIDEO_THS7303=y
+CONFIG_VIDEO_THS7353=y
+CONFIG_VIDEO_THS7353_LUMA_CHANNEL=3
+# CONFIG_VIDEO_ADV7343 is not set
+CONFIG_VIDEO_THS8200=y
+
+#
+# Video improvement chips
+#
+# CONFIG_VIDEO_UPD64031A is not set
+# CONFIG_VIDEO_UPD64083 is not set
+CONFIG_DISPLAY_DAVINCI_DM646X_EVM=y
+CONFIG_CAPTURE_DAVINCI_DM646X_EVM=y
+CONFIG_VIDEO_DAVINCI_VPIF=y
+# CONFIG_VIDEO_DAVINCI_DISPLAY is not set
+# CONFIG_DAVINCI_ENC_MNGR is not set
+# CONFIG_DAVINCI_OSD is not set
+# CONFIG_VIDEO_VIVI is not set
+# CONFIG_VIDEO_VPSS_SYSTEM is not set
+# CONFIG_VIDEO_VPFE_CAPTURE is not set
+# CONFIG_VIDEO_SAA5246A is not set
+# CONFIG_VIDEO_SAA5249 is not set
+# CONFIG_SOC_CAMERA is not set
+# CONFIG_SOC_CAMERA_MT9T031 is not set
+# CONFIG_V4L_USB_DRIVERS is not set
+# CONFIG_RADIO_ADAPTERS is not set
+# CONFIG_DAB is not set
#
# Graphics support
@@ -1050,11 +1207,11 @@ CONFIG_SSB_POSSIBLE=y
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
-CONFIG_SOUND=m
+CONFIG_SOUND=y
# CONFIG_SOUND_OSS_CORE is not set
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
CONFIG_SND_JACK=y
# CONFIG_SND_SEQUENCER is not set
# CONFIG_SND_MIXER_OSS is not set
@@ -1080,34 +1237,27 @@ CONFIG_SND_SPI=y
CONFIG_SND_USB=y
# CONFIG_SND_USB_AUDIO is not set
# CONFIG_SND_USB_CAIAQ is not set
-CONFIG_SND_SOC=m
-CONFIG_SND_DAVINCI_SOC=m
-CONFIG_SND_DAVINCI_SOC_MCASP=m
-CONFIG_SND_DM6467_SOC_EVM=m
-CONFIG_SND_SOC_I2C_AND_SPI=m
+CONFIG_SND_SOC=y
+CONFIG_SND_DAVINCI_SOC=y
+CONFIG_SND_DAVINCI_SOC_MCASP=y
+CONFIG_SND_DM6467_SOC_EVM=y
+CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_ALL_CODECS is not set
-CONFIG_SND_SOC_SPDIF=m
-CONFIG_SND_SOC_TLV320AIC3X=m
+CONFIG_SND_SOC_SPDIF=y
+CONFIG_SND_SOC_TLV320AIC3X=y
# CONFIG_SOUND_PRIME is not set
CONFIG_HID_SUPPORT=y
-CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
+CONFIG_HID=y
# CONFIG_HIDRAW is not set
#
# USB Input Devices
#
-CONFIG_USB_HID=m
+CONFIG_USB_HID=y
# CONFIG_HID_PID is not set
# CONFIG_USB_HIDDEV is not set
#
-# USB HID Boot Protocol drivers
-#
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_MOUSE is not set
-
-#
# Special HID drivers
#
CONFIG_HID_A4TECH=m
@@ -1120,6 +1270,7 @@ CONFIG_HID_CYPRESS=m
CONFIG_HID_EZKEY=m
# CONFIG_HID_KYE is not set
CONFIG_HID_GYRATION=m
+# CONFIG_HID_TWINHAN is not set
# CONFIG_HID_KENSINGTON is not set
CONFIG_HID_LOGITECH=m
# CONFIG_LOGITECH_FF is not set
@@ -1142,7 +1293,7 @@ CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
# CONFIG_USB_ARCH_HAS_OHCI is not set
# CONFIG_USB_ARCH_HAS_EHCI is not set
-CONFIG_USB=m
+CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
@@ -1155,7 +1306,7 @@ CONFIG_USB_DEVICE_CLASS=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-CONFIG_USB_MON=m
+CONFIG_USB_MON=y
# CONFIG_USB_WUSB is not set
# CONFIG_USB_WUSB_CBAF is not set
@@ -1166,14 +1317,15 @@ CONFIG_USB_MON=m
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_HWA_HCD is not set
-CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_MUSB_HDRC=y
CONFIG_USB_MUSB_SOC=y
#
-# DaVinci 35x and 644x USB support
+# DaVinci 35x, 36x, 644x USB support
#
# CONFIG_USB_MUSB_HOST is not set
CONFIG_USB_MUSB_PERIPHERAL=y
@@ -1197,7 +1349,7 @@ CONFIG_MUSB_PIO_ONLY=y
#
# also be needed; see USB_STORAGE Help for more info
#
-CONFIG_USB_STORAGE=m
+CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
@@ -1244,10 +1396,10 @@ CONFIG_USB_STORAGE=m
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
-CONFIG_USB_TEST=m
+CONFIG_USB_TEST=y
# CONFIG_USB_ISIGHTFW is not set
# CONFIG_USB_VST is not set
-CONFIG_USB_GADGET=m
+CONFIG_USB_GADGET=y
# CONFIG_USB_GADGET_DEBUG is not set
CONFIG_USB_GADGET_DEBUG_FILES=y
CONFIG_USB_GADGET_DEBUG_FS=y
@@ -1259,6 +1411,7 @@ CONFIG_USB_GADGET_SELECTED=y
# CONFIG_USB_GADGET_LH7A40X is not set
# CONFIG_USB_GADGET_OMAP is not set
# CONFIG_USB_GADGET_PXA25X is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
# CONFIG_USB_GADGET_PXA27X is not set
# CONFIG_USB_GADGET_S3C_HSOTG is not set
# CONFIG_USB_GADGET_IMX is not set
@@ -1274,11 +1427,11 @@ CONFIG_USB_GADGET_SELECTED=y
CONFIG_USB_GADGET_DUALSPEED=y
# CONFIG_USB_ZERO is not set
# CONFIG_USB_AUDIO is not set
-CONFIG_USB_ETH=m
+CONFIG_USB_ETH=y
CONFIG_USB_ETH_RNDIS=y
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_FILE_STORAGE=m
-# CONFIG_USB_FILE_STORAGE_TEST is not set
+# CONFIG_USB_ETH_EEM is not set
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FILE_STORAGE is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_MIDI_GADGET is not set
# CONFIG_USB_G_PRINTER is not set
@@ -1289,15 +1442,15 @@ CONFIG_USB_FILE_STORAGE=m
#
CONFIG_USB_OTG_UTILS=y
# CONFIG_USB_GPIO_VBUS is not set
-CONFIG_NOP_USB_XCEIV=m
-CONFIG_MMC=m
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set
#
# MMC/SD/SDIO Card Drivers
#
-CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK=y
# CONFIG_MMC_BLOCK_BOUNCE is not set
# CONFIG_SDIO_UART is not set
# CONFIG_MMC_TEST is not set
@@ -1306,18 +1459,19 @@ CONFIG_MMC_BLOCK=m
# MMC/SD/SDIO Host Controller Drivers
#
# CONFIG_MMC_SDHCI is not set
-CONFIG_MMC_DAVINCI=m
+# CONFIG_MMC_AT91 is not set
+# CONFIG_MMC_ATMELMCI is not set
+CONFIG_MMC_DAVINCI=y
# CONFIG_MMC_SPI is not set
# CONFIG_MEMSTICK is not set
-# CONFIG_ACCESSIBILITY is not set
CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=m
+CONFIG_LEDS_CLASS=y
#
# LED drivers
#
# CONFIG_LEDS_PCA9532 is not set
-CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_GPIO=y
CONFIG_LEDS_GPIO_PLATFORM=y
# CONFIG_LEDS_LP3944 is not set
# CONFIG_LEDS_PCA955X is not set
@@ -1328,9 +1482,9 @@ CONFIG_LEDS_GPIO_PLATFORM=y
# LED Triggers
#
CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_TIMER=y
# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_GPIO is not set
# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
@@ -1338,8 +1492,12 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=m
#
# iptables trigger is under Netfilter config (LED target)
#
+# CONFIG_ACCESSIBILITY is not set
CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=m
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
#
# RTC interfaces
@@ -1378,6 +1536,7 @@ CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_DRV_R9701 is not set
# CONFIG_RTC_DRV_RS5C348 is not set
# CONFIG_RTC_DRV_DS3234 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
#
# Platform RTC drivers
@@ -1399,8 +1558,11 @@ CONFIG_RTC_INTF_DEV=y
#
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
-# CONFIG_REGULATOR is not set
# CONFIG_UIO is not set
+
+#
+# TI VLYNQ
+#
# CONFIG_STAGING is not set
#
@@ -1429,6 +1591,7 @@ CONFIG_XFS_FS=m
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
@@ -1479,7 +1642,7 @@ CONFIG_MISC_FILESYSTEMS=y
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
-CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
@@ -1500,7 +1663,6 @@ CONFIG_MINIX_FS=m
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
-# CONFIG_NILFS2_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
@@ -1596,6 +1758,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_FRAME_WARN=1024
# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
@@ -1634,12 +1797,14 @@ CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
CONFIG_FRAME_POINTER=y
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
@@ -1682,7 +1847,6 @@ CONFIG_CRYPTO=y
#
# Crypto core or helper
#
-# CONFIG_CRYPTO_FIPS is not set
# CONFIG_CRYPTO_MANAGER is not set
# CONFIG_CRYPTO_MANAGER2 is not set
# CONFIG_CRYPTO_GF128MUL is not set
@@ -1714,11 +1878,13 @@ CONFIG_CRYPTO=y
#
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
#
# Digest
#
# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_GHASH is not set
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_MD5 is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -1770,7 +1936,7 @@ CONFIG_CRYPTO=y
#
CONFIG_BITREVERSE=y
CONFIG_GENERIC_FIND_LAST_BIT=y
-CONFIG_CRC_CCITT=m
+CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC_T10DIF=m
# CONFIG_CRC_ITU_T is not set
@@ -1778,7 +1944,7 @@ CONFIG_CRC32=y
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=m
+CONFIG_ZLIB_DEFLATE=y
CONFIG_DECOMPRESS_GZIP=y
CONFIG_GENERIC_ALLOCATOR=y
CONFIG_HAS_IOMEM=y
diff --git a/recipes/linux/linux-davinci_git.bb b/recipes/linux/linux-davinci_git.bb
index 37d45ba25f..907003615f 100644
--- a/recipes/linux/linux-davinci_git.bb
+++ b/recipes/linux/linux-davinci_git.bb
@@ -3,25 +3,52 @@ require linux.inc
DESCRIPTION = "Linux kernel for Davinci processors"
KERNEL_IMAGETYPE = "uImage"
-COMPATIBLE_MACHINE = "(dm6446-evm|dm6467-evm|dm6467t-evm|dm355-evm|dm365-evm|da830-omapl137-evm|da850-omapl138-evm|davinci-sffsdr|dm355-leopard|hawkboard)"
+COMPATIBLE_MACHINE = "(dm355-evm|dm365-evm|dm6446-evm|dm6467-evm|dm6467t-evm|da830-omapl137-evm|da850-omapl138-evm|dm355-leopard|davinci-sffsdr|hawkboard)"
DEFAULT_PREFERENCE = "1"
-SRCREV = "835d1ac43b1c0428cb0f7f91fbaf708ba8e7e504"
+BRANCH = "master"
-# OMAPL commits for PSP 3.20.00.07 Release Tag
-SRCREV_da830-omapl137-evm = "b60234a5b0ee985912ecb59d3e689c1ed4baa46c"
-SRCREV_da850-omapl138-evm = "b60234a5b0ee985912ecb59d3e689c1ed4baa46c"
-SRCREV_hawkboard = "b60234a5b0ee985912ecb59d3e689c1ed4baa46c"
+# DAVINCI
-BRANCH = "master"
+# dm355-evm/dm365-evm/dm6446-evm/dm6467-evm/dm6467t-evm Davinci PSP.03.01.00.28 (Phase 3 Build r28)
+SRCREV_dm355-evm = "7b2683fd0168df1576fcea947ef9f63e905de807"
+SRCREV_dm365-evm = "7b2683fd0168df1576fcea947ef9f63e905de807"
+SRCREV_dm6446-evm = "7b2683fd0168df1576fcea947ef9f63e905de807"
+SRCREV_dm6467-evm = "7b2683fd0168df1576fcea947ef9f63e905de807"
+SRCREV_dm6467t-evm = "7b2683fd0168df1576fcea947ef9f63e905de807"
# The main PR is now using MACHINE_KERNEL_PR, for davinci see conf/machine/include/davinci.inc
-PV = "2.6.31+2.6.32-rc6-${PR}+gitr${SRCPV}"
+PV_dm355-evm = "2.6.31+2.6.32-rc2-${PR}+gitr${SRCPV}"
+PV_dm365-evm = "2.6.31+2.6.32-rc2-${PR}+gitr${SRCPV}"
+PV_dm6446-evm = "2.6.31+2.6.32-rc2-${PR}+gitr${SRCPV}"
+PV_dm6467-evm = "2.6.31+2.6.32-rc2-${PR}+gitr${SRCPV}"
+PV_dm6467t-evm = "2.6.31+2.6.32-rc2-${PR}+gitr${SRCPV}"
PE = "1"
-SRC_URI = "git://arago-project.org/git/projects/linux-davinci.git;protocol=git \
- file://defconfig"
+SRC_URI_dm355-evm = "git://arago-project.org/git/projects/linux-davinci.git;protocol=git \
+ file://defconfig"
+SRC_URI_dm365-evm = "git://arago-project.org/git/projects/linux-davinci.git;protocol=git \
+ file://defconfig"
+SRC_URI_dm6446-evm = "git://arago-project.org/git/projects/linux-davinci.git;protocol=git \
+ file://defconfig"
+SRC_URI_dm6467-evm = "git://arago-project.org/git/projects/linux-davinci.git;protocol=git \
+ file://defconfig"
+SRC_URI_dm6467t-evm = "git://arago-project.org/git/projects/linux-davinci.git;protocol=git \
+ file://defconfig"
+
+
+# OMAPL
+
+# da830-omapl137-evm/da850-omapl138-evm/hawkboard OMAPL PSP.3.20.00.07 (Beta)
+SRCREV_da830-omapl137-evm = "b60234a5b0ee985912ecb59d3e689c1ed4baa46c"
+SRCREV_da850-omapl138-evm = "b60234a5b0ee985912ecb59d3e689c1ed4baa46c"
+SRCREV_hawkboard = "b60234a5b0ee985912ecb59d3e689c1ed4baa46c"
+
+# The main PR is now using MACHINE_KERNEL_PR, for davinci see conf/machine/include/davinci.inc
+PV_da830-omapl137-evm = "2.6.31+2.6.32-rc6-${PR}+gitr${SRCPV}"
+PV_da850-omapl138-evm = "2.6.31+2.6.32-rc6-${PR}+gitr${SRCPV}"
+PV_hawkboard = "2.6.31+2.6.32-rc6-${PR}+gitr${SRCPV}"
SRC_URI_da830-omapl137-evm = "git://arago-project.org/git/people/sekhar/linux-omapl1.git;protocol=git;branch=${BRANCH} \
file://defconfig"
@@ -29,8 +56,8 @@ SRC_URI_da830-omapl137-evm = "git://arago-project.org/git/people/sekhar/linux-om
SRC_URI_da850-omapl138-evm = "git://arago-project.org/git/people/sekhar/linux-omapl1.git;protocol=git;branch=${BRANCH} \
file://defconfig"
-SRC_URI_hawkboard = "git://arago-project.org/git/people/sekhar/linux-omapl1.git;protocol=git;branch=${BRANCH} \
- file://patch_hawk.diff;patch=1 \
- file://defconfig"
+SRC_URI_hawkboard = "git://arago-project.org/git/people/sekhar/linux-omapl1.git;protocol=git;branch=${BRANCH} \
+ file://patch_hawk.diff;patch=1 \
+ file://defconfig"
S = "${WORKDIR}/git"
diff --git a/recipes/linux/linux-kirkwood/0003-ARM-Kirkwood-Sound-Sound-driver-added.patch b/recipes/linux/linux-kirkwood/0003-ARM-Kirkwood-Sound-Sound-driver-added.patch
new file mode 100644
index 0000000000..fc17a089c5
--- /dev/null
+++ b/recipes/linux/linux-kirkwood/0003-ARM-Kirkwood-Sound-Sound-driver-added.patch
@@ -0,0 +1,3514 @@
+From 89aa6dd15306a1ce11da0f2cb67bda74999e178e Mon Sep 17 00:00:00 2001
+From: Tanmay Upadhyay <tanmay.upadhyay@einfochips.com>
+Date: Tue, 24 Nov 2009 21:49:24 +0530
+Subject: [PATCH] ARM: Kirkwood: Sound: Sound driver added
+
+The driver is based on the Marvell kirkwood sound driver available in
+2.6.22.18 kernel.
+
+Signed-off-by: Tanmay Upadhyay <tanmay.upadhyay@einfochips.com>
+---
+ arch/arm/mach-kirkwood/common.c | 39 +
+ arch/arm/mach-kirkwood/common.h | 2 +
+ arch/arm/mach-kirkwood/include/mach/kirkwood.h | 3 +
+ arch/arm/mach-kirkwood/openrd_client-setup.c | 27 +
+ include/linux/mv88fx_audio.h | 111 ++
+ sound/soc/Kconfig | 1 +
+ sound/soc/Makefile | 1 +
+ sound/soc/kirkwood/Kconfig | 29 +
+ sound/soc/kirkwood/Makefile | 7 +
+ sound/soc/kirkwood/cs42l51.c | 304 +++++
+ sound/soc/kirkwood/cs42l51.h | 59 +
+ sound/soc/kirkwood/kirkwood_audio_hal.c | 821 +++++++++++++
+ sound/soc/kirkwood/kirkwood_audio_hal.h | 109 ++
+ sound/soc/kirkwood/kirkwood_audio_regs.h | 310 +++++
+ sound/soc/kirkwood/kirkwood_pcm.c | 1505 ++++++++++++++++++++++++
+ 15 files changed, 3328 insertions(+), 0 deletions(-)
+ create mode 100644 include/linux/mv88fx_audio.h
+ create mode 100644 sound/soc/kirkwood/Kconfig
+ create mode 100644 sound/soc/kirkwood/Makefile
+ create mode 100644 sound/soc/kirkwood/cs42l51.c
+ create mode 100644 sound/soc/kirkwood/cs42l51.h
+ create mode 100644 sound/soc/kirkwood/kirkwood_audio_hal.c
+ create mode 100644 sound/soc/kirkwood/kirkwood_audio_hal.h
+ create mode 100644 sound/soc/kirkwood/kirkwood_audio_regs.h
+ create mode 100644 sound/soc/kirkwood/kirkwood_pcm.c
+
+diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c
+index 0acb61f..4d66c06 100644
+--- a/arch/arm/mach-kirkwood/common.c
++++ b/arch/arm/mach-kirkwood/common.c
+@@ -15,6 +15,7 @@
+ #include <linux/mbus.h>
+ #include <linux/mv643xx_eth.h>
+ #include <linux/mv643xx_i2c.h>
++#include <linux/mv88fx_audio.h>
+ #include <linux/ata_platform.h>
+ #include <linux/mtd/nand.h>
+ #include <linux/spi/orion_spi.h>
+@@ -969,3 +970,41 @@ static int __init kirkwood_clock_gate(void)
+ return 0;
+ }
+ late_initcall(kirkwood_clock_gate);
++
++/*****************************************************************************
++ * Audio
++ ****************************************************************************/
++
++static struct resource kirkwood_audio_resources[] = {
++ [0] = {
++ .start = AUDIO_PHYS_BASE,
++ .end = AUDIO_PHYS_BASE + SZ_16K - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = IRQ_KIRKWOOD_I2S,
++ .end = IRQ_KIRKWOOD_I2S,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++static u64 kirkwood_audio_dmamask = 0xFFFFFFFFUL;
++
++static struct platform_device kirkwood_audio = {
++ .name = MV88FX_AUDIO_NAME,
++ .id = -1,
++ .num_resources = ARRAY_SIZE(kirkwood_audio_resources),
++ .resource = kirkwood_audio_resources,
++ .dev = {
++ .dma_mask = &kirkwood_audio_dmamask,
++ .coherent_dma_mask = 0xffffffff,
++ },
++};
++
++void __init kirkwood_audio_init(struct mv88fx_snd_platform_data *audio_data)
++{
++ kirkwood_clk_ctrl |= CGC_AUDIO;
++ kirkwood_audio.dev.platform_data = audio_data;
++
++ platform_device_register(&kirkwood_audio);
++}
+diff --git a/arch/arm/mach-kirkwood/common.h b/arch/arm/mach-kirkwood/common.h
+index d7de434..b79a25c 100644
+--- a/arch/arm/mach-kirkwood/common.h
++++ b/arch/arm/mach-kirkwood/common.h
+@@ -16,6 +16,7 @@ struct mv643xx_eth_platform_data;
+ struct mv_sata_platform_data;
+ struct mvsdio_platform_data;
+ struct mtd_partition;
++struct mv88fx_snd_platform_data;
+
+ /*
+ * Basic Kirkwood init functions used early by machine-setup.
+@@ -41,6 +42,7 @@ void kirkwood_i2c_init(void);
+ void kirkwood_uart0_init(void);
+ void kirkwood_uart1_init(void);
+ void kirkwood_nand_init(struct mtd_partition *parts, int nr_parts, int delay);
++void kirkwood_audio_init(struct mv88fx_snd_platform_data *audio_data);
+
+ extern int kirkwood_tclk;
+ extern struct sys_timer kirkwood_timer;
+diff --git a/arch/arm/mach-kirkwood/include/mach/kirkwood.h b/arch/arm/mach-kirkwood/include/mach/kirkwood.h
+index 54c1327..90ced65 100644
+--- a/arch/arm/mach-kirkwood/include/mach/kirkwood.h
++++ b/arch/arm/mach-kirkwood/include/mach/kirkwood.h
+@@ -95,6 +95,9 @@
+
+ #define SDIO_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x90000)
+
++#define AUDIO_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0xA0000)
++#define AUDIO_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0xA0000)
++
+ /*
+ * Supported devices and revisions.
+ */
+diff --git a/arch/arm/mach-kirkwood/openrd_client-setup.c b/arch/arm/mach-kirkwood/openrd_client-setup.c
+index a55a1bc..72acc22 100644
+--- a/arch/arm/mach-kirkwood/openrd_client-setup.c
++++ b/arch/arm/mach-kirkwood/openrd_client-setup.c
+@@ -14,11 +14,13 @@
+ #include <linux/mtd/partitions.h>
+ #include <linux/ata_platform.h>
+ #include <linux/mv643xx_eth.h>
++#include <linux/mv88fx_audio.h>
+ #include <linux/gpio.h>
+ #include <asm/mach-types.h>
+ #include <asm/mach/arch.h>
+ #include <mach/kirkwood.h>
+ #include <plat/mvsdio.h>
++#include <linux/autoconf.h>
+ #include "common.h"
+ #include "mpp.h"
+
+@@ -59,6 +61,21 @@ static unsigned int openrd_client_mpp_config[] __initdata = {
+ 0
+ };
+
++static struct mv88fx_snd_platform_data openrd_client_audio_data = {
++ .i2c_bus_no = 0,
++ .i2c_address = 0x4A,
++/* 0 - NA, 1 - mono, 2 - stereo */
++#ifdef CONFIG_SND_MV88FX_SOC_I2S
++ .i2s_rec = 1,
++ .i2s_play = 2,
++#else
++ .spdif_rec = 1,
++ .spdif_play = 2,
++#endif
++ .dram = &kirkwood_mbus_dram_info,
++ .base_offset = AUDIO_PHYS_BASE - KIRKWOOD_REGS_PHYS_BASE,
++};
++
+ static void __init openrd_client_init(void)
+ {
+ /*
+@@ -78,6 +95,16 @@ static void __init openrd_client_init(void)
+
+ kirkwood_sata_init(&openrd_client_sata_data);
+ kirkwood_sdio_init(&openrd_client_mvsdio_data);
++
++ /* initialize i2c */
++ kirkwood_i2c_init();
++
++#if defined(CONFIG_SND_MV88FX_SOC) || defined(CONFIG_SND_MV88FX_SOC_MODULE)
++ /* If built as a part of kernel or as a module
++ * initialize audio */
++ openrd_client_audio_data.tclk = kirkwood_tclk,
++ kirkwood_audio_init(&openrd_client_audio_data);
++#endif
+ }
+
+ MACHINE_START(OPENRD_CLIENT, "Marvell OpenRD Client Board")
+diff --git a/include/linux/mv88fx_audio.h b/include/linux/mv88fx_audio.h
+new file mode 100644
+index 0000000..6d36a3f
+--- /dev/null
++++ b/include/linux/mv88fx_audio.h
+@@ -0,0 +1,111 @@
++/*
++ *
++ * Marvell Orion Alsa Sound driver
++ *
++ * Author: Maen Suleiman
++ * Copyright (C) 2008 Marvell Ltd.
++ *
++ *
++ * 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.
++ *
++ */
++
++#ifndef __LINUX_MV88FX_SND_H
++#define __LINUX_MV88FX_SND_H
++
++#include <linux/mbus.h>
++
++#define MV88FX_AUDIO_NAME "mv88fx_snd"
++
++#undef MV88FX_SND_DEBUG
++#ifdef MV88FX_SND_DEBUG
++#define mv88fx_snd_debug(fmt, arg...) printk(KERN_DEBUG fmt, ##arg)
++#else
++ #define mv88fx_snd_debug(a...)
++#endif
++
++#define MV_AUDIO_MAX_ADDR_DECODE_WIN 2
++#define MV_AUDIO_RECORD_WIN_NUM 0
++#define MV_AUDIO_PLAYBACK_WIN_NUM 1
++
++#define MV_AUDIO_WIN_CTRL_REG(win) (0xA04 + ((win)<<3))
++#define MV_AUDIO_WIN_BASE_REG(win) (0xA00 + ((win)<<3))
++
++struct mv88fx_snd_platform_data {
++ u8 i2c_bus_no;
++ u16 i2c_address;
++ u32 spdif_rec;
++ u32 spdif_play;
++ u32 i2s_rec;
++ u32 i2s_play;
++ u32 tclk;
++ u32 base_offset;
++ struct mbus_dram_target_info *dram;
++};
++
++struct mv88fx_snd_stream {
++ struct snd_pcm_substream *substream;
++ struct device *dev;
++ int direction; /* playback or capture */
++ #define PLAYBACK 0
++ #define CAPTURE 1
++ unsigned int dig_mode; /* i2s,spdif,both */
++ #define I2S 1
++ #define SPDIF 2
++ int stereo; /* mono, stereo */
++ int mono_mode; /* both mono, left mono, right mono */
++ #define MONO_BOTH 0
++ #define MONO_LEFT 1
++ #define MONO_RIGHT 2
++ int clock_src;
++ #define DCO_CLOCK 0
++ #define SPCR_CLOCK 1
++ #define EXTERN_CLOCK 2
++ int rate;
++ int stat_mem; /* Channel status source*/
++ int format;
++ #define SAMPLE_32IN32 0
++ #define SAMPLE_24IN32 1
++ #define SAMPLE_20IN32 2
++ #define SAMPLE_16IN32 3
++ #define SAMPLE_16IN16 4
++ unsigned int dma_addr;
++ unsigned int dma_size;
++ unsigned int period_size;
++ unsigned int spdif_status[4]; /* SPDIF status */
++ unsigned char *area; /* virtual pointer */
++ dma_addr_t addr; /* physical address */
++};
++
++struct mv88fx_snd_chip {
++ struct mv88fx_snd_stream *stream[2]; /* run time values*/
++ struct mv88fx_snd_stream *stream_defaults[2]; /* default values*/
++ spinlock_t reg_lock; /* Register access spinlock */
++ struct resource *res; /* resource for IRQ and base*/
++ void __iomem *base; /* Audio base address of the host */
++ unsigned int audio_offset; /* Offset to audio base register
++ * from internal base register */
++ int irq;
++ int loopback; /* When Loopback is enabled, playback
++ * data is looped back to be recorded */
++ int ch_stat_valid; /* Playback SPDIF channel validity bit
++ * value when REG selected */
++ int burst; /* DMA Burst Size */
++
++ #define SPDIF_MEM_STAT 0
++ #define SPDIF_REG_STAT 1
++ unsigned int dco_ctrl_offst;
++ int pcm_mode; /* pcm, nonpcm*/
++ #define PCM 0
++ #define NON_PCM 1
++ int stereo;
++};
++
++#define MV88FX_SND_MIN_PERIODS 8
++#define MV88FX_SND_MAX_PERIODS 16
++#define MV88FX_SND_MIN_PERIOD_BYTES 0x4000
++#define MV88FX_SND_MAX_PERIOD_BYTES 0x4000
++
++#endif /* __LINUX_MV88FX_SND_H */
+diff --git a/sound/soc/Kconfig b/sound/soc/Kconfig
+index b1749bc..9fc88d8 100644
+--- a/sound/soc/Kconfig
++++ b/sound/soc/Kconfig
+@@ -36,6 +36,7 @@ source "sound/soc/s3c24xx/Kconfig"
+ source "sound/soc/s6000/Kconfig"
+ source "sound/soc/sh/Kconfig"
+ source "sound/soc/txx9/Kconfig"
++source "sound/soc/kirkwood/Kconfig"
+
+ # Supported codecs
+ source "sound/soc/codecs/Kconfig"
+diff --git a/sound/soc/Makefile b/sound/soc/Makefile
+index 0c5eac0..664850d 100644
+--- a/sound/soc/Makefile
++++ b/sound/soc/Makefile
+@@ -14,3 +14,4 @@ obj-$(CONFIG_SND_SOC) += s3c24xx/
+ obj-$(CONFIG_SND_SOC) += s6000/
+ obj-$(CONFIG_SND_SOC) += sh/
+ obj-$(CONFIG_SND_SOC) += txx9/
++obj-$(CONFIG_SND_SOC) += kirkwood/
+diff --git a/sound/soc/kirkwood/Kconfig b/sound/soc/kirkwood/Kconfig
+new file mode 100644
+index 0000000..d6a7e2f
+--- /dev/null
++++ b/sound/soc/kirkwood/Kconfig
+@@ -0,0 +1,29 @@
++config SND_MV88FX_SOC
++ tristate "SoC Audio for the Marvell 88FX chip"
++ depends on ARCH_KIRKWOOD
++ help
++ Say Y or M if you want to add support for codecs attached to
++ the MV88FX I2S or SPD interface. You will also need
++ to select the audio interfaces to support below.
++
++choice
++ prompt "Audio Interface"
++ default SND_MV88FX_SOC_I2S
++ depends on SND_MV88FX_SOC
++
++config SND_MV88FX_SOC_I2S
++ bool "I2S"
++
++config SND_MV88FX_SOC_SPDIF
++ bool "SPDIF"
++
++endchoice
++
++choice
++ prompt "Codec IC"
++ default SND_SOC_CS42L51
++ depends on SND_MV88FX_SOC
++
++config SND_SOC_CS42L51
++ bool "CS42L51"
++endchoice
+diff --git a/sound/soc/kirkwood/Makefile b/sound/soc/kirkwood/Makefile
+new file mode 100644
+index 0000000..57674ad
+--- /dev/null
++++ b/sound/soc/kirkwood/Makefile
+@@ -0,0 +1,7 @@
++
++snd-soc-kirkwood-objs := kirkwood_pcm.o kirkwood_audio_hal.o
++ifdef CONFIG_SND_SOC_CS42L51
++snd-soc-kirkwood-objs += cs42l51.o
++endif
++
++obj-$(CONFIG_SND_MV88FX_SOC) += snd-soc-kirkwood.o
+diff --git a/sound/soc/kirkwood/cs42l51.c b/sound/soc/kirkwood/cs42l51.c
+new file mode 100644
+index 0000000..f5a22f9
+--- /dev/null
++++ b/sound/soc/kirkwood/cs42l51.c
+@@ -0,0 +1,304 @@
++/*
++ *
++ * Marvell Orion Alsa Sound driver
++ *
++ * Author: Maen Suleiman
++ * Copyright (C) 2008 Marvell Ltd.
++ *
++ *
++ * 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/ioport.h>
++#include <linux/platform_device.h>
++#include <linux/init.h>
++#include <linux/slab.h>
++#include <linux/version.h>
++#include <linux/i2c.h>
++#include <sound/core.h>
++#include <sound/initval.h>
++#include <sound/control.h>
++#include <sound/pcm.h>
++#include <sound/asoundef.h>
++#include <sound/asound.h>
++
++#include "cs42l51.h"
++
++/* FIXME: This code is not written in driver module style. This is written as
++ * helper for SOC driver */
++
++struct i2c_client *client;
++
++static int cs42l51_add_i2c_device(unsigned char i2c_bus_no,
++ unsigned short i2c_add)
++{
++ struct i2c_board_info info;
++ struct i2c_adapter *adapter;
++
++ memset(&info, 0, sizeof(struct i2c_board_info));
++ info.addr = i2c_add;
++ strlcpy(info.type, "cs42l51", I2C_NAME_SIZE);
++
++ adapter = i2c_get_adapter(i2c_bus_no);
++ if (!adapter) {
++ snd_printk("can't get i2c adapter\n");
++ return -ENODEV;
++ }
++
++ client = i2c_new_device(adapter, &info);
++ i2c_put_adapter(adapter);
++ if (!client) {
++ snd_printk("can't add i2c device\n");
++ return -ENODEV;
++ }
++
++ return 0;
++}
++
++void cs42l51_del_i2c_device(void)
++{
++ if (client)
++ i2c_unregister_device(client);
++ client = NULL;
++}
++
++/*
++ * offset: Register offset to start reading with
++ * buf : Pointer to the buffer to store the read data
++ * num : Number of registers to read
++ *
++ * Returns -ve errorno else number of registers read
++ */
++
++int cs42l51_reg_read(unsigned char offset, unsigned char *buf, int num)
++{
++ int ret = 0;
++
++ /* Set autoincrement bit */
++ offset |= CODEC_INCR_ADDR;
++
++ /* Send register offset */
++ ret = i2c_master_send(client, &offset, 1);
++ if (ret != 1) {
++ snd_printd("Could not write register offset\n");
++ return 0;
++ }
++
++ return i2c_master_recv(client, buf, num);
++}
++
++/*
++ * offset: Register offset to write
++ * data : Data to be written
++ *
++ * Returns -ve errorno else number of registers written (=1)
++ */
++
++int cs42l51_reg_write(unsigned char offset, unsigned char data)
++{
++ int ret = 0;
++ unsigned char buf[2];
++
++ buf[0] = offset;
++ buf[1] = data;
++
++ /* Send register offset & data */
++ ret = i2c_master_send(client, &buf[0], 2);
++
++ return (ret == 2) ? 1 : ret;
++}
++
++int codec_init(int adc_mode, int digital_if_format,
++ unsigned char i2c_bus_no, unsigned short i2c_add)
++{
++ unsigned char reg_data;
++
++ if (cs42l51_add_i2c_device(i2c_bus_no, i2c_add))
++ return 1;
++
++ if (cs42l51_reg_read(CODEC_ID_REG, &reg_data, 1) < 0)
++ goto codec_init_error;
++
++ if (CODEC_CHIP_ID != (reg_data >> 3) ||
++ CODEC_REV_ID != (reg_data & 0x7)) {
++ snd_printd("Error: Invalid Cirrus Logic chip/rev ID!\n");
++ return 1;
++ }
++
++ if (cs42l51_reg_read(CODEC_IF_CTRL_REG, &reg_data, 1) < 0)
++ goto codec_init_error;
++
++ reg_data = (reg_data & ~(0x7<<3)) | (digital_if_format << 3);
++
++ if (LEFT_JUSTIFIED_MODE == adc_mode)
++ reg_data &= (~0x4);
++ else
++ reg_data |= 0x4;
++
++ if (cs42l51_reg_write(CODEC_IF_CTRL_REG, reg_data) < 0)
++ goto codec_init_error;
++
++ return 0;
++
++codec_init_error:
++ snd_printd("I2C error\n");
++ return 1;
++}
++
++/*
++ * Initialize the audio decoder.
++ */
++
++int cs42l51_init(int adc_mode, int digital_if_format, int rec,
++ unsigned char i2c_bus_no, unsigned short i2c_add)
++{
++ if (codec_init(adc_mode, digital_if_format, i2c_bus_no, i2c_add)) {
++ snd_printk("Error: Audio Codec init failed\n");
++ return 1;
++ }
++
++ /* Use the signal processor */
++ if (cs42l51_reg_write(0x9, 0x40) < 0)
++ goto error;
++
++ /* Unmute PCM-A & PCM-B and set default */
++ if (cs42l51_reg_write(0x10, 0x60) < 0)
++ goto error;
++ if (cs42l51_reg_write(0x11, 0x60) < 0)
++ goto error;
++
++ /* default for AOUTx */
++ if (cs42l51_reg_write(0x16, 0x05) < 0)
++ goto error;
++ if (cs42l51_reg_write(0x17, 0x05) < 0)
++ goto error;
++
++ /* swap channels */
++ if (cs42l51_reg_write(0x18, 0xff) < 0)
++ goto error;
++
++ /* MIC Power Control: power down mIC in channel B, power on channel A
++ * Recommended seq. in datasheet:
++ * 1. Enable the PDN bit
++ * 2. Enable power-down for the selected channels
++ * 3. Disable the PDN bit */
++
++ /* Note: Tested for mono recording only */
++ if (!rec) {
++ /* Enable power down */
++ if (cs42l51_reg_write(0x2, 0x11) < 0)
++ goto error;
++
++ /* No record - Power down both channels */
++ if (cs42l51_reg_write(0x2, 0x17) < 0)
++ goto error;
++
++ /* Disable power down */
++ if (cs42l51_reg_write(0x2, 0x16) < 0)
++ goto error;
++ } else {
++ if (rec == 2) {
++ /* Setreo recording - by default both channels are up */
++
++ /* MIC In channel selection - Select channel 3
++ * unmute both channels */
++ if (cs42l51_reg_write(0x7, 0xF0) < 0)
++ goto error;
++
++ /* Power up mic pre-amplifier for both channels */
++ if (cs42l51_reg_write(0x3, 0xA0) < 0)
++ goto error;
++ } else {
++ /* Enable power down */
++ if (cs42l51_reg_write(0x2, 0x11) < 0)
++ goto error;
++
++ /* Mono recording - Power down Channel B */
++ if (cs42l51_reg_write(0x2, 0x15) < 0)
++ goto error;
++
++ /* Disable power down */
++ if (cs42l51_reg_write(0x2, 0x14) < 0)
++ goto error;
++
++ /* MIC In channel selection - Select channel 3
++ * Mute Channel B */
++ if (cs42l51_reg_write(0x7, 0xF2) < 0)
++ goto error;
++
++ /* Power down mic pre-amplifier for Channel B*/
++ if (cs42l51_reg_write(0x3, 0xA8) < 0)
++ goto error;
++ }
++ }
++
++ return 0;
++error:
++ snd_printk("I2C error\n");
++ return 1;
++}
++
++#define AUD_NUM_VOLUME_STEPS (40)
++static unsigned char auddec_volume_mapping[AUD_NUM_VOLUME_STEPS] =
++{
++ 0x19, 0xB2, 0xB7, 0xBD, 0xC3, 0xC9, 0xCF, 0xD5,
++ 0xD8, 0xE1, 0xE7, 0xED, 0xF3, 0xF9, 0xFF, 0x00,
++ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
++ 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10,
++ 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18
++};
++
++
++/*
++ * Get the audio decoder volume for both channels.
++ * 0 is lowest volume, AUD_NUM_VOLUME_STEPS-1 is the highest volume.
++ */
++
++void cs42l51_vol_get(unsigned char *vol_list)
++{
++ unsigned char reg_data[2];
++ unsigned char i, vol_idx = 0;
++
++ if (cs42l51_reg_read(0x16 + vol_idx, reg_data, 2) < 0) {
++ snd_printd("I2C error\n");
++ snd_printk("Couldn't get volume\n");
++ return;
++ }
++
++ for (; vol_idx < 2; vol_idx++) {
++ /* Look for the index that mapps to this dB value. */
++ for (i = 0; i < AUD_NUM_VOLUME_STEPS; i++) {
++ if (reg_data[vol_idx] == auddec_volume_mapping[i])
++ break;
++ if ((auddec_volume_mapping[i] >
++ auddec_volume_mapping[AUD_NUM_VOLUME_STEPS-1])
++ && (reg_data[vol_idx] > auddec_volume_mapping[i])
++ && (reg_data[vol_idx] < auddec_volume_mapping[i+1]))
++ break;
++ }
++ vol_list[vol_idx] = i;
++ }
++}
++
++/*
++ * Set the audio decoder volume for both channels.
++ * 0 is lowest volume, AUD_NUM_VOLUME_STEPS-1 is the highest volume.
++ */
++void cs42l51_vol_set(unsigned char *vol_list)
++{
++ unsigned int vol_idx;
++
++ for (vol_idx = 0; vol_idx < 2; vol_idx++) {
++ if (vol_list[vol_idx] >= AUD_NUM_VOLUME_STEPS)
++ vol_list[vol_idx] = AUD_NUM_VOLUME_STEPS - 1;
++
++ if (cs42l51_reg_write(0x16 + vol_idx,
++ auddec_volume_mapping[vol_list[vol_idx]]) < 0) {
++ snd_printd("I2C error\n");
++ snd_printk("Couldn't set volume\n");
++ return;
++ }
++ }
++}
+diff --git a/sound/soc/kirkwood/cs42l51.h b/sound/soc/kirkwood/cs42l51.h
+new file mode 100644
+index 0000000..f4e7951
+--- /dev/null
++++ b/sound/soc/kirkwood/cs42l51.h
+@@ -0,0 +1,59 @@
++/*
++ * Audio codec CS42L51 data definition file
++ */
++
++#ifndef _CS42L51_H_
++#define _CS42L51_H_
++
++#define CODEC_CHIP_ID 0x1B
++#define CODEC_REV_ID 0x1
++
++#define CODEC_ID_REG 0x1
++#define CODEC_IF_CTRL_REG 0x4
++#define CODEC_ADC_INPUT_INV_MUTE_REG 0x7
++#define CODEC_DAC_OUTPUT_CTRL_REG 0x8
++#define CODEC_DAC_CTRL_REG 0x9
++#define CODEC_PGAA_VOL_CTRL_REG 0xa
++#define CODEC_TONE_CTRL_REG 0x15
++#define CODEC_VOL_OUTA_CTRL_REG 0x16
++
++/* Set bit # 7 to 1 to get into auto incremental addressing mode */
++#define CODEC_INCR_ADDR 0x80
++
++#define FALSE 0
++#define TRUE 1
++
++/* Selects the digital interface format used for the data in on SDIN. */
++enum dac_digital_if_format {
++ L_JUSTIFIED_UP_TO_24_BIT,
++ I2S_UP_TO_24_BIT,
++ R_JUSTIFIED_UP_TO_24_BIT,
++ R_JUSTIFIED_20_BIT,
++ R_JUSTIFIED_18_BIT,
++ R_JUSTIFIED_16_BIT
++
++};
++
++/* Selects either the I2S or Left-Justified digital interface format for the
++ data on SDOUT. */
++enum adc_mode {
++ LEFT_JUSTIFIED_MODE,
++ I2S_MODE
++};
++
++/* Initialize the Cirrus Logic device */
++int cs42l51_init(int adc_mode, int digital_if_format, int rec,
++ unsigned char i2c_bus_no, unsigned short i2c_add);
++
++/* Function to control output volume (playback) */
++void cs42l51_vol_get(unsigned char *vol_list);
++void cs42l51_vol_set(unsigned char *vol_list);
++
++/* Function to access the Cirrus Logic CODEC registers */
++int cs42l51_reg_read(unsigned char offset, unsigned char *buf, int num);
++int cs42l51_reg_write(unsigned char offset, unsigned char data);
++
++
++void cs42l51_del_i2c_device(void);
++#endif /* _CS42L51_H_ */
++
+diff --git a/sound/soc/kirkwood/kirkwood_audio_hal.c b/sound/soc/kirkwood/kirkwood_audio_hal.c
+new file mode 100644
+index 0000000..28305e3
+--- /dev/null
++++ b/sound/soc/kirkwood/kirkwood_audio_hal.c
+@@ -0,0 +1,821 @@
++/*
++ * Sound driver for Marvell Kirkwood family SOCs
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2
++ * of the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++ */
++
++#include <linux/io.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <linux/spinlock.h>
++#include <linux/mv88fx_audio.h>
++#include "kirkwood_audio_hal.h"
++
++static void mv_audio_init(void __iomem *base);
++static void audio_setup_wins(void __iomem *base,
++ struct mbus_dram_target_info *dram);
++static int set_window_as_per_baseadd(void __iomem *base, unsigned int baseadd,
++ unsigned int audio_offset, int win_num);
++
++/* Clocks Control and Status related*/
++static int mv_audio_dco_ctrl_set(struct mv_audio_freq_data *dcoCtrl,
++ void __iomem *base);
++
++/* Audio PlayBack related*/
++static int mv_audio_playback_control_set(void __iomem *base, unsigned int
++ audio_offset, struct mv_audio_playback_ctrl *ctrl);
++
++/* Audio SPDIF PlayBack related*/
++static void mv_spdif_playback_ctrl_set(void __iomem *base,
++ struct mv_spdif_playback_ctrl *ctrl);
++
++/* Audio I2S PlayBack related*/
++static int mv_i2s_playback_ctrl_set(void __iomem *base,
++ struct mv_i2s_playback_ctrl *ctrl);
++
++/* Audio Recording*/
++static int mv_audio_record_control_set(struct mv_audio_record_ctrl *ctrl,
++ unsigned int audio_offset, void __iomem *base);
++
++/* SPDIF Recording Related*/
++static int spdif_record_tclock_set(void __iomem *base, unsigned int tclk);
++
++/* I2S Recording Related*/
++static int mv_i2s_record_cntrl_set(struct mv_i2s_record_ctrl *ctrl,
++ void __iomem *base);
++
++static inline int audio_burst_bytes_num_get(int burst)
++{
++ switch (burst) {
++ case AUDIO_32BYTE_BURST:
++ return 32;
++ case AUDIO_128BYTE_BURST:
++ return 128;
++ default:
++ return 0xffffffff;
++ }
++}
++
++int mv88fx_snd_hw_init(struct snd_card *card)
++{
++ void __iomem *base = chip->base;
++ struct mv88fx_snd_platform_data *platform_data =
++ card->dev->platform_data;
++
++ if (platform_data->i2s_rec || platform_data->i2s_play)
++ if (codec_init(I2S_MODE, I2S_UP_TO_24_BIT,
++ platform_data->i2s_rec, platform_data->i2c_bus_no,
++ platform_data->i2c_address)) {
++ snd_printk("Initializing CS42L51 failed\n");
++ return 1;
++ }
++
++ writel(0xffffffff, (base + MV_AUDIO_INT_CAUSE_REG));
++ writel(0, (base + MV_AUDIO_INT_MASK_REG));
++ writel(0, (base + MV_AUDIO_SPDIF_REC_INT_CAUSE_MASK_REG));
++
++ mv_audio_init(base);
++
++ audio_setup_wins(base, platform_data->dram);
++
++ /* Disable all playback/recording */
++ writel(readl(base + MV_AUDIO_PLAYBACK_CTRL_REG) &
++ (~(APCR_PLAY_I2S_ENABLE_MASK | APCR_PLAY_SPDIF_ENABLE_MASK)),
++ (base + MV_AUDIO_PLAYBACK_CTRL_REG));
++
++ writel(readl(base + MV_AUDIO_RECORD_CTRL_REG) &
++ (~(ARCR_RECORD_SPDIF_EN_MASK | ARCR_RECORD_I2S_EN_MASK)),
++ (base + MV_AUDIO_RECORD_CTRL_REG));
++
++ if (spdif_record_tclock_set(base, platform_data->tclk)) {
++ snd_printk("Marvell ALSA driver ERR. SPDIF clock set failed\n");
++ return 1;
++ }
++
++ return 0;
++}
++
++int mv88fx_snd_hw_playback_set(struct mv88fx_snd_chip *chip)
++{
++ struct mv88fx_snd_stream *audio_stream = chip->stream[PLAYBACK];
++ struct snd_pcm_substream *substream = audio_stream->substream;
++ struct snd_pcm_runtime *runtime = substream->runtime;
++
++ struct mv_audio_playback_ctrl pcm_play_ctrl;
++ struct mv_i2s_playback_ctrl i2s_play_ctrl;
++ struct mv_spdif_playback_ctrl spdif_play_ctrl;
++ struct mv_audio_freq_data dco_ctrl;
++
++ dco_ctrl.offset = chip->dco_ctrl_offst;
++
++ switch (audio_stream->rate) {
++ case 44100:
++ dco_ctrl.baseFreq = AUDIO_FREQ_44_1KH;
++ break;
++ case 48000:
++ dco_ctrl.baseFreq = AUDIO_FREQ_48KH;
++ break;
++ case 96000:
++ dco_ctrl.baseFreq = AUDIO_FREQ_96KH;
++ break;
++ default:
++ snd_printk("Requested rate %d is not supported\n",
++ runtime->rate); return -1;
++ }
++
++ pcm_play_ctrl.burst = (chip->burst == 128) ? AUDIO_128BYTE_BURST :
++ AUDIO_32BYTE_BURST;
++
++ pcm_play_ctrl.loopBack = chip->loopback;
++
++ if (audio_stream->stereo) {
++ pcm_play_ctrl.monoMode = AUDIO_PLAY_MONO_OFF;
++ } else {
++ switch (audio_stream->mono_mode) {
++ case MONO_LEFT:
++ pcm_play_ctrl.monoMode = AUDIO_PLAY_LEFT_MONO;
++ break;
++ case MONO_RIGHT:
++ pcm_play_ctrl.monoMode = AUDIO_PLAY_RIGHT_MONO;
++ break;
++ case MONO_BOTH:
++ default:
++ pcm_play_ctrl.monoMode = AUDIO_PLAY_BOTH_MONO;
++ break;
++ }
++ }
++
++ if (audio_stream->format == SAMPLE_16IN16) {
++ pcm_play_ctrl.sampleSize = SAMPLE_16BIT;
++ i2s_play_ctrl.sampleSize = SAMPLE_16BIT;
++ } else if (audio_stream->format == SAMPLE_24IN32) {
++ pcm_play_ctrl.sampleSize = SAMPLE_24BIT;
++ i2s_play_ctrl.sampleSize = SAMPLE_24BIT;
++ } else if (audio_stream->format == SAMPLE_32IN32) {
++ pcm_play_ctrl.sampleSize = SAMPLE_32BIT;
++ i2s_play_ctrl.sampleSize = SAMPLE_32BIT;
++ } else {
++ snd_printk("Requested format %d is not supported\n",
++ runtime->format);
++ return -1;
++ }
++
++ /* buffer and period sizes in frame */
++ pcm_play_ctrl.bufferPhyBase = audio_stream->dma_addr;
++ pcm_play_ctrl.bufferSize = audio_stream->dma_size;
++ pcm_play_ctrl.intByteCount = audio_stream->period_size;
++
++ /* I2S playback streem stuff */
++ /*i2s_play_ctrl.sampleSize = pcm_play_ctrl.sampleSize;*/
++ i2s_play_ctrl.justification = I2S_JUSTIFIED;
++ i2s_play_ctrl.sendLastFrame = 0;
++
++ spdif_play_ctrl.nonPcm = FALSE;
++
++ spdif_play_ctrl.validity = chip->ch_stat_valid;
++
++ if (audio_stream->stat_mem) {
++ spdif_play_ctrl.userBitsFromMemory = TRUE;
++ spdif_play_ctrl.validityFromMemory = TRUE;
++ spdif_play_ctrl.blockStartInternally = FALSE;
++ } else {
++ spdif_play_ctrl.userBitsFromMemory = FALSE;
++ spdif_play_ctrl.validityFromMemory = FALSE;
++ spdif_play_ctrl.blockStartInternally = TRUE;
++ }
++
++ /* If this is non-PCM sound, mute I2S channel */
++ spin_lock_irq(&chip->reg_lock);
++
++ if (!(readl(chip->base + MV_AUDIO_PLAYBACK_CTRL_REG) &
++ (APCR_PLAY_I2S_ENABLE_MASK | APCR_PLAY_SPDIF_ENABLE_MASK))) {
++
++ if (mv_audio_dco_ctrl_set(&dco_ctrl, chip->base)) {
++ snd_printk("Failed to initialize DCO clock control.\n");
++ goto error;
++ }
++ }
++
++ if (audio_stream->clock_src == DCO_CLOCK)
++ while ((readl(chip->base + MV_AUDIO_SPCR_DCO_STATUS_REG) &
++ ASDSR_DCO_LOCK_MASK) == 0)
++ cpu_relax();
++ else if (audio_stream->clock_src == SPCR_CLOCK)
++ while ((readl(chip->base + MV_AUDIO_SPCR_DCO_STATUS_REG) &
++ ASDSR_SPCR_LOCK_MASK) == 0)
++ cpu_relax();
++
++ if (mv_audio_playback_control_set(chip->base, chip->audio_offset,
++ &pcm_play_ctrl)) {
++ snd_printk("Failed to initialize PCM playback control.\n");
++ goto error;
++ }
++
++ if (mv_i2s_playback_ctrl_set(chip->base, &i2s_play_ctrl)) {
++ snd_printk("Failed to initialize I2S playback control.\n");
++ goto error;
++ }
++
++ mv_spdif_playback_ctrl_set(chip->base, &spdif_play_ctrl);
++
++ spin_unlock_irq(&chip->reg_lock);
++
++ return 0;
++error:
++ spin_unlock_irq(&chip->reg_lock);
++ return -1;
++}
++
++int mv88fx_snd_hw_capture_set(struct mv88fx_snd_chip *chip)
++{
++ struct mv88fx_snd_stream *audio_stream = chip->stream[CAPTURE];
++ struct snd_pcm_substream *substream = audio_stream->substream;
++ struct snd_pcm_runtime *runtime = substream->runtime;
++
++ struct mv_audio_record_ctrl pcm_rec_ctrl;
++ struct mv_i2s_record_ctrl i2s_rec_ctrl;
++ struct mv_audio_freq_data dco_ctrl;
++
++ dco_ctrl.offset = chip->dco_ctrl_offst;
++
++ switch (audio_stream->rate) {
++ case 44100:
++ dco_ctrl.baseFreq = AUDIO_FREQ_44_1KH;
++ break;
++ case 48000:
++ dco_ctrl.baseFreq = AUDIO_FREQ_48KH;
++ break;
++ case 96000:
++ dco_ctrl.baseFreq = AUDIO_FREQ_96KH;
++ break;
++ default:
++ snd_printk("Requested rate %d is not supported\n",
++ runtime->rate); return -1;
++ }
++
++ pcm_rec_ctrl.burst = (chip->burst == 128) ? AUDIO_128BYTE_BURST :
++ AUDIO_32BYTE_BURST;
++
++ if (audio_stream->format == SAMPLE_16IN16) {
++ pcm_rec_ctrl.sampleSize = SAMPLE_16BIT;
++ } else if (audio_stream->format == SAMPLE_24IN32) {
++ pcm_rec_ctrl.sampleSize = SAMPLE_24BIT;
++ } else if (audio_stream->format == SAMPLE_32IN32) {
++ pcm_rec_ctrl.sampleSize = SAMPLE_32BIT;
++ } else {
++ snd_printk("Requested format %d is not supported\n",
++ runtime->format);
++ return -1;
++ }
++
++ /* If request for tereo record comes on the boards that doesn't
++ * support stereo recording */
++ if ((!chip->stereo) && audio_stream->stereo) {
++ snd_printk("Stereo recording is not supported\n");
++ return -1;
++ }
++
++ pcm_rec_ctrl.mono = (audio_stream->stereo) ? FALSE : TRUE;
++
++ if (pcm_rec_ctrl.mono) {
++ switch (audio_stream->mono_mode) {
++ case MONO_LEFT:
++ pcm_rec_ctrl.monoChannel = AUDIO_REC_LEFT_MONO;
++ break;
++ default:
++ case MONO_RIGHT:
++ pcm_rec_ctrl.monoChannel = AUDIO_REC_RIGHT_MONO;
++ break;
++ }
++
++ } else {
++ pcm_rec_ctrl.monoChannel = AUDIO_REC_LEFT_MONO;
++ }
++
++
++ pcm_rec_ctrl.bufferPhyBase = audio_stream->dma_addr;
++ pcm_rec_ctrl.bufferSize = audio_stream->dma_size;
++
++ pcm_rec_ctrl.intByteCount = audio_stream->period_size;
++
++ /* I2S record streem stuff */
++ i2s_rec_ctrl.sample = pcm_rec_ctrl.sampleSize;
++ i2s_rec_ctrl.justf = I2S_JUSTIFIED;
++
++ spin_lock_irq(&chip->reg_lock);
++
++ /* set clock only if record is not enabled*/
++ if (!(readl(chip->base + MV_AUDIO_RECORD_CTRL_REG) &
++ (ARCR_RECORD_SPDIF_EN_MASK | ARCR_RECORD_I2S_EN_MASK))) {
++
++ if (mv_audio_dco_ctrl_set(&dco_ctrl, chip->base)) {
++ snd_printk("Failed to initialize DCO clock control.\n");
++ return -1;
++ }
++ }
++
++ if (mv_audio_record_control_set(&pcm_rec_ctrl, chip->audio_offset,
++ chip->base)) {
++ snd_printk("Failed to initialize PCM record control.\n");
++ return -1;
++ }
++
++ if (mv_i2s_record_cntrl_set(&i2s_rec_ctrl, chip->base)) {
++ snd_printk("Failed to initialize I2S record control.\n");
++ return -1;
++ }
++ spin_unlock_irq(&chip->reg_lock);
++
++ return 0;
++}
++
++static void mv_audio_init(void __iomem *base)
++{
++ int timeout = 10000000;
++ unsigned int reg_data;
++
++ reg_data = readl(base + 0x1200);
++ reg_data &= (~(0x333FF8));
++ reg_data |= 0x111D18;
++
++ writel(reg_data, base + 0x1200);
++
++ do {
++ timeout--;
++ } while (timeout);
++
++ reg_data = readl(base + 0x1200);
++ reg_data &= (~(0x333FF8));
++ reg_data |= 0x111D18;
++
++ writel(reg_data, base + 0x1200);
++}
++
++static void audio_setup_wins(void __iomem *base,
++ struct mbus_dram_target_info *dram)
++{
++ int win_num;
++
++ /* First disable and clear windows */
++ for (win_num = 0; win_num < MV_AUDIO_MAX_ADDR_DECODE_WIN; win_num++) {
++ writel(0, base + MV_AUDIO_WIN_CTRL_REG(win_num));
++ writel(0, base + MV_AUDIO_WIN_BASE_REG(win_num));
++ }
++
++ /* Setup windows for DDR */
++ for (win_num = 0; win_num < MV_AUDIO_MAX_ADDR_DECODE_WIN; win_num++) {
++ /* We will set the Window to DRAM_CS1 in default */
++ struct mbus_dram_window *cs = &dram->cs[1];
++
++ writel(cs->base & 0xffff0000,
++ base + MV_AUDIO_WIN_BASE_REG(win_num));
++ writel(((cs->size - 1) & 0xffff0000) |
++ (cs->mbus_attr << 8) |
++ (dram->mbus_dram_target_id << 4) | 1,
++ base + MV_AUDIO_WIN_CTRL_REG(win_num));
++ }
++}
++
++#define MV_BOARD_TCLK_133MHZ 133333333
++#define MV_BOARD_TCLK_150MHZ 150000000
++#define MV_BOARD_TCLK_166MHZ 166666667
++#define MV_BOARD_TCLK_200MHZ 200000000
++
++static int spdif_record_tclock_set(void __iomem *base, unsigned int tclk)
++{
++ unsigned int reg_data;
++
++ reg_data = readl(base + MV_AUDIO_SPDIF_REC_GEN_REG);
++
++ switch (tclk) {
++ case MV_BOARD_TCLK_133MHZ:
++ reg_data |= ASRGR_CORE_CLK_FREQ_133MHZ;
++ break;
++ case MV_BOARD_TCLK_150MHZ:
++ reg_data |= ASRGR_CORE_CLK_FREQ_150MHZ;
++ break;
++ case MV_BOARD_TCLK_166MHZ:
++ reg_data |= ASRGR_CORE_CLK_FREQ_166MHZ;
++ break;
++ case MV_BOARD_TCLK_200MHZ:
++ reg_data |= ASRGR_CORE_CLK_FREQ_200MHZ;
++ break;
++ default:
++ snd_printk("Not supported core clock %d\n", tclk);
++ return 1;
++ }
++
++ writel(reg_data, base + MV_AUDIO_SPDIF_REC_GEN_REG);
++
++ return 0;
++}
++
++static int mv_audio_record_control_set(struct mv_audio_record_ctrl *ctrl,
++ unsigned int audio_offset, void __iomem *base)
++{
++ unsigned int reg, buff_start, buff_end;
++ unsigned int win_base, win_size;
++
++ if (ctrl->monoChannel > AUDIO_REC_RIGHT_MONO) {
++ snd_printk("Error: Illegal monoChannel %x\n",
++ ctrl->monoChannel);
++
++ return 1;
++ }
++
++ if ((ctrl->burst != AUDIO_32BYTE_BURST) &&
++ (ctrl->burst != AUDIO_128BYTE_BURST)) {
++ snd_printk("Error: Illegal burst %x\n",
++ ctrl->burst);
++
++ return 1;
++ }
++
++ if (ctrl->bufferPhyBase & (MV_AUDIO_BUFFER_MIN_ALIGN - 1)) {
++ snd_printk("Error bufferPhyBase is not aligned to 0x%x"\
++ " bytes\n", MV_AUDIO_BUFFER_MIN_ALIGN);
++
++ return 1;
++ }
++
++ if ((ctrl->bufferSize <= audio_burst_bytes_num_get(ctrl->burst)) |
++ (ctrl->bufferSize & (audio_burst_bytes_num_get(ctrl->burst) - 1)) ||
++ (ctrl->bufferSize > AUDIO_REG_TO_SIZE(APBBCR_SIZE_MAX))) {
++ snd_printk("Error bufferSize smaller than or not multiple "\
++ "of 0x%x bytes or larger than 0x%x\n",
++ audio_burst_bytes_num_get(ctrl->burst),
++ AUDIO_REG_TO_SIZE(APBBCR_SIZE_MAX));
++
++ return 1;
++ }
++
++ reg = readl(base + MV_AUDIO_RECORD_CTRL_REG);
++ reg &= ~(ARCR_RECORD_BURST_SIZE_MASK | ARCR_RECORDED_MONO_CHNL_MASK |
++ ARCR_RECORD_SAMPLE_SIZE_MASK);
++
++ switch (ctrl->sampleSize) {
++ case SAMPLE_16BIT:
++ case SAMPLE_16BIT_NON_COMPACT:
++ case SAMPLE_20BIT:
++ case SAMPLE_24BIT:
++ case SAMPLE_32BIT:
++ reg |= ctrl->sampleSize << ARCR_RECORD_SAMPLE_SIZE_OFFS;
++ break;
++ default:
++ snd_printk("Error: Illegal sampleSize %x\n",
++ ctrl->sampleSize);
++
++ return 1;
++ }
++
++ reg |= ctrl->burst << ARCR_RECORD_BURST_SIZE_OFFS;
++ reg |= ctrl->monoChannel << ARCR_RECORDED_MONO_CHNL_OFFS;
++
++ if (ctrl->mono)
++ reg |= ARCR_RECORD_MONO_MASK;
++ else
++ reg &= (~ARCR_RECORD_MONO_MASK);
++
++ writel(reg, base + MV_AUDIO_RECORD_CTRL_REG);
++
++ /* Get the details of the Record address window*/
++ win_base = readl(base + MV_AUDIO_WIN_BASE_REG(MV_AUDIO_RECORD_WIN_NUM));
++ win_size = readl(base + MV_AUDIO_WIN_CTRL_REG(MV_AUDIO_RECORD_WIN_NUM));
++
++ /* Window size bits are 31:16. Where size =
++ * (2 ^ no of ones) * 64 KB. e.g. 0x0FF says 16MB */
++ win_size = ((win_size >> 16) + 1) << 16;
++
++ buff_start = ctrl->bufferPhyBase;
++ buff_end = buff_start + ctrl->bufferSize - 1;
++
++ /* If buffer address is not within window boundries then try to set a
++ * new value to the Record window by geting the target of where the
++ * buffer exist, if the buffer is within the window of the new target
++ * then set the Record window to that target else return Fail
++ */
++
++ if (!(((buff_start >= win_base) &&
++ (buff_start <= (win_base + win_size - 1))) ||
++ ((buff_end >= win_base) &&
++ (buff_end <= (win_base + win_size - 1))))) {
++ snd_printd("Audio record buffer is not within window");
++
++ /* Set the window for the buffer that user require
++ for the palyback\recording window to the target window */
++ if (set_window_as_per_baseadd(base, ctrl->bufferPhyBase,
++ audio_offset, MV_AUDIO_RECORD_WIN_NUM)) {
++ snd_printk("Playback buffer (%#x) is not "
++ "within a valid target\n",
++ ctrl->bufferPhyBase);
++ return 1;
++ }
++ }
++
++ /* Set the interrupt byte count */
++ reg = ctrl->intByteCount & ARBCI_BYTE_COUNT_MASK;
++ writel(reg, base + MV_AUDIO_RECORD_BYTE_CNTR_INT_REG);
++
++ writel(ctrl->bufferPhyBase, base + MV_AUDIO_RECORD_START_ADDR_REG);
++ writel(AUDIO_SIZE_TO_REG(ctrl->bufferSize),
++ base + MV_AUDIO_RECORD_BUFF_SIZE_REG);
++
++
++ return 0;
++}
++
++static int mv_i2s_record_cntrl_set(struct mv_i2s_record_ctrl *ctrl,
++ void __iomem *base)
++{
++ unsigned int reg;
++
++ reg = readl(base + MV_AUDIO_I2S_REC_CTRL_REG);
++ reg &= ~(AIRCR_I2S_RECORD_JUSTF_MASK|AIRCR_I2S_SAMPLE_SIZE_MASK);
++
++ switch (ctrl->justf) {
++ case I2S_JUSTIFIED:
++ case LEFT_JUSTIFIED:
++ case RIGHT_JUSTIFIED:
++ case RISE_BIT_CLCK_JUSTIFIED:
++ reg |= ctrl->justf << AIRCR_I2S_RECORD_JUSTF_OFFS;
++ break;
++ default:
++ return 1;
++ }
++
++ reg |= ctrl->sample << AIRCR_I2S_SAMPLE_SIZE_OFFS;
++
++ writel(reg, base + MV_AUDIO_I2S_REC_CTRL_REG);
++ return 0;
++}
++
++/* We trust the value set in the window registers and don't check them.
++ * As there is some value already present in the register, we assume
++ * base and size are aligned */
++
++static int set_window_as_per_baseadd(void __iomem *base, unsigned int baseadd,
++ unsigned int audio_offset, int win_num)
++{
++ int dram_cs, win;
++ unsigned int win_base, win_size, size;
++ unsigned char dram_attr[4] = {0x0E, 0x0D, 0x0B, 0x07};
++
++ /* Base passed is Audio base address. Audio base address is
++ * Internal register base address + audio_offset */
++ void __iomem *internal_reg_base = base - audio_offset;
++
++ for (dram_cs = 0; dram_cs < 4; dram_cs++) {
++ win_base = readl(internal_reg_base + 0x1500 + (8 * dram_cs));
++ win_size = readl(internal_reg_base + 0x1504 + (8 * dram_cs));
++
++ /* skip if window is disabled */
++ if (!(win_size & 1))
++ continue;
++
++ /* Window size bits are 31:24. Where size =
++ * (2 ^ no of ones) * 16 MB. e.g. 0x0F says 256MB */
++ size = ((win_size >> 24) + 1) << 24;
++
++ if ((baseadd >= win_base) && (baseadd < (win_base + size))) {
++ snd_printd("DRAM window %d set for %s window",
++ dram_cs, win_num ? "plaback" : "record");
++ writel(win_base,
++ base + MV_AUDIO_WIN_BASE_REG(win_num));
++
++ /* DRAM window ctrl regs are bit different than Audio
++ * Set size, attribute and target ID */
++ win_size = ((size - 1) & 0xffff0000) | 1;
++ win_size |= (dram_attr[dram_cs] << 8); /* Atribute */
++ win_size &= (~(0xF << 4)); /* Target ID */
++
++ writel(win_size,
++ base + MV_AUDIO_WIN_CTRL_REG(win_num));
++ snd_printd("win_base 0x%08x\twin_size 0x%08x",
++ win_base, win_size);
++ return 0;
++ }
++ }
++
++ for (win = 0; win < 8; win++) {
++ win_base = readl(internal_reg_base + 0x2004 + (0x10 * win));
++ win_size = readl(internal_reg_base + 0x2008 + (0x10 * win));
++
++ /* skip if window is disabled */
++ if (!(win_size & 1))
++ continue;
++
++ /* Window size bits are 31:16. Where size =
++ * (2 ^ no of ones) * 64 KB. e.g. 0x0FF says 16MB */
++ size = ((win_size >> 16) + 1) << 16;
++ if ((baseadd >= win_base) && (baseadd < (win_base + size))) {
++ snd_printd("CPU window %d set for %s window",
++ win_base, win_num ? "plaback" : "record");
++ writel(win_base,
++ base + MV_AUDIO_WIN_BASE_REG(win_num));
++ writel(win_size,
++ base + MV_AUDIO_WIN_CTRL_REG(win_num));
++ return 0;
++ }
++ }
++
++ return 1;
++}
++
++static int mv_audio_playback_control_set(void __iomem *base, unsigned int
++ audio_offset, struct mv_audio_playback_ctrl *ctrl)
++{
++ unsigned int reg, buff_start, buff_end;
++ unsigned int win_base, win_size;
++
++ if (ctrl->monoMode >= AUDIO_PLAY_OTHER_MONO) {
++ snd_printk("Error: Illegal monoMode %x\n", ctrl->monoMode);
++ return 1;
++ }
++
++ if ((ctrl->burst != AUDIO_32BYTE_BURST) &&
++ (ctrl->burst != AUDIO_128BYTE_BURST)) {
++ snd_printk("Error: Illegal burst %x\n", ctrl->burst);
++ return 1;
++ }
++
++ if (ctrl->bufferPhyBase & (MV_AUDIO_BUFFER_MIN_ALIGN - 1)) {
++ snd_printk("Error, bufferPhyBase is not aligned to 0x%x "\
++ "bytes\n", MV_AUDIO_BUFFER_MIN_ALIGN);
++ return 1;
++ }
++
++ if ((ctrl->bufferSize <= audio_burst_bytes_num_get(ctrl->burst)) ||
++ (ctrl->bufferSize & (audio_burst_bytes_num_get(ctrl->burst) - 1)) ||
++ (ctrl->bufferSize > AUDIO_REG_TO_SIZE(APBBCR_SIZE_MAX))) {
++ snd_printk("Error, bufferSize smaller than or not multiple "\
++ "of 0x%x bytes or larger than 0x%x",
++ audio_burst_bytes_num_get(ctrl->burst),
++ AUDIO_REG_TO_SIZE(APBBCR_SIZE_MAX));
++ return 1;
++ }
++
++ reg = readl(base + MV_AUDIO_PLAYBACK_CTRL_REG);
++ reg &= ~(APCR_PLAY_BURST_SIZE_MASK | APCR_LOOPBACK_MASK |
++ APCR_PLAY_MONO_MASK | APCR_PLAY_SAMPLE_SIZE_MASK);
++ reg |= ctrl->burst << APCR_PLAY_BURST_SIZE_OFFS;
++ reg |= ctrl->loopBack << APCR_LOOPBACK_OFFS;
++ reg |= ctrl->monoMode << APCR_PLAY_MONO_OFFS;
++ reg |= ctrl->sampleSize << APCR_PLAY_SAMPLE_SIZE_OFFS;
++ writel(reg, base + MV_AUDIO_PLAYBACK_CTRL_REG);
++
++ /* Get the details of the Playback address window*/
++ win_base = readl(base +
++ MV_AUDIO_WIN_BASE_REG(MV_AUDIO_PLAYBACK_WIN_NUM));
++ win_size = readl(base +
++ MV_AUDIO_WIN_CTRL_REG(MV_AUDIO_PLAYBACK_WIN_NUM));
++
++ /* Window size bits are 31:16. Where size =
++ * (2 ^ no of ones) * 64 KB. e.g. 0x0FF says 16MB */
++ win_size = ((win_size >> 16) + 1) << 16;
++
++ buff_start = ctrl->bufferPhyBase;
++ buff_end = buff_start + ctrl->bufferSize - 1;
++
++ /* If Playback window is not enabled or buffer address is not within
++ * window boundries then try to set a new value to the Playback window*/
++
++ if (!(((buff_start >= win_base) &&
++ (buff_start <= (win_base + win_size - 1))) ||
++ ((buff_end >= win_base) &&
++ (buff_end <= (win_base + win_size - 1))))) {
++ snd_printd("Audio playback buffer is not within window\n");
++
++ /* Set the window for the buffer that user require
++ for the palyback\recording window to the target window */
++ if (set_window_as_per_baseadd(base, ctrl->bufferPhyBase,
++ audio_offset, MV_AUDIO_PLAYBACK_WIN_NUM)) {
++ snd_printk("Record buffer (%#x) is not "
++ "within a valid target\n",
++ ctrl->bufferPhyBase);
++ return 1;
++ }
++ }
++
++ /* Set the interrupt byte count */
++ reg = ctrl->intByteCount & APBCI_BYTE_COUNT_MASK;
++ writel(reg, base + MV_AUDIO_PLAYBACK_BYTE_CNTR_INT_REG);
++
++ writel(ctrl->bufferPhyBase,
++ base + MV_AUDIO_PLAYBACK_BUFF_START_REG);
++ writel(AUDIO_SIZE_TO_REG(ctrl->bufferSize),
++ base + MV_AUDIO_PLAYBACK_BUFF_SIZE_REG);
++
++ return 0;
++}
++
++static int mv_i2s_playback_ctrl_set(void __iomem *base,
++ struct mv_i2s_playback_ctrl *ctrl)
++{
++ unsigned int reg_data;
++
++ reg_data = readl(base + MV_AUDIO_I2S_PLAY_CTRL_REG);
++ reg_data &= ~(AIPCR_I2S_PB_JUSTF_MASK | AIPCR_I2S_PB_SAMPLE_SIZE_MASK);
++
++ if (ctrl->sampleSize > SAMPLE_16BIT) {
++ snd_printk("Illigal sample size\n");
++ return 1;
++ }
++
++ reg_data |= ctrl->sampleSize << AIPCR_I2S_PB_SAMPLE_SIZE_OFFS;
++
++ if (ctrl->sendLastFrame)
++ reg_data |= AIPCR_I2S_SEND_LAST_FRM_MASK;
++ else
++ reg_data &= ~AIPCR_I2S_SEND_LAST_FRM_MASK;
++
++ switch (ctrl->justification) {
++ case I2S_JUSTIFIED:
++ case LEFT_JUSTIFIED:
++ case RIGHT_JUSTIFIED:
++ reg_data |= ctrl->justification << AIPCR_I2S_PB_JUSTF_OFFS;
++ break;
++ default:
++ snd_printk("Illigal justification value\n");
++ return 1;
++ }
++
++ writel(reg_data, base + MV_AUDIO_I2S_PLAY_CTRL_REG);
++
++ return 0;
++}
++
++static void mv_spdif_playback_ctrl_set(void __iomem *base,
++ struct mv_spdif_playback_ctrl *ctrl)
++{
++ unsigned int reg_data;
++
++ reg_data = readl(base + MV_AUDIO_SPDIF_PLAY_CTRL_REG);
++
++ if (ctrl->blockStartInternally)
++ reg_data |= ASPCR_SPDIF_BLOCK_START_MASK;
++ else
++ reg_data &= ~ASPCR_SPDIF_BLOCK_START_MASK;
++
++ if (ctrl->validityFromMemory)
++ reg_data |= ASPCR_SPDIF_PB_EN_MEM_VALIDITY_MASK;
++ else
++ reg_data &= ~ASPCR_SPDIF_PB_EN_MEM_VALIDITY_MASK;
++
++ if (ctrl->userBitsFromMemory)
++ reg_data |= ASPCR_SPDIF_PB_MEM_USR_EN_MASK;
++ else
++ reg_data &= ~ASPCR_SPDIF_PB_MEM_USR_EN_MASK;
++
++ if (ctrl->validity)
++ reg_data |= ASPCR_SPDIF_PB_REG_VALIDITY_MASK;
++ else
++ reg_data &= ~ASPCR_SPDIF_PB_REG_VALIDITY_MASK;
++
++ if (ctrl->nonPcm)
++ reg_data |= ASPCR_SPDIF_PB_NONPCM_MASK;
++ else
++ reg_data &= ~ASPCR_SPDIF_PB_NONPCM_MASK;
++
++ writel(reg_data, base + MV_AUDIO_SPDIF_PLAY_CTRL_REG);
++}
++
++static int mv_audio_dco_ctrl_set(struct mv_audio_freq_data *dcoCtrl,
++ void __iomem *base)
++{
++ unsigned int reg;
++
++ /* Check parameters*/
++ if (dcoCtrl->baseFreq > AUDIO_FREQ_96KH) {
++ snd_printk("dcoCtrl->baseFreq value (0x%x) invalid\n",
++ dcoCtrl->baseFreq);
++ return 1;
++ }
++
++ if ((dcoCtrl->offset > 0xFD0) || (dcoCtrl->offset < 0x20)) {
++ snd_printk("dcoCtrl->offset value (0x%x) invalid\n",
++ dcoCtrl->baseFreq);
++ return 1;
++ }
++
++ reg = readl(base + MV_AUDIO_DCO_CTRL_REG);
++
++ reg &= ~(ADCR_DCO_CTRL_FS_MASK | ADCR_DCO_CTRL_OFFSET_MASK);
++ reg |= ((dcoCtrl->baseFreq << ADCR_DCO_CTRL_FS_OFFS) |
++ (dcoCtrl->offset << ADCR_DCO_CTRL_OFFSET_OFFS));
++
++ writel(reg, base + MV_AUDIO_DCO_CTRL_REG);
++
++ return 0;
++}
+diff --git a/sound/soc/kirkwood/kirkwood_audio_hal.h b/sound/soc/kirkwood/kirkwood_audio_hal.h
+new file mode 100644
+index 0000000..ce08102
+--- /dev/null
++++ b/sound/soc/kirkwood/kirkwood_audio_hal.h
+@@ -0,0 +1,109 @@
++/*
++ * Sound driver data definition file for Marvell Kirkwood family SOCs
++ */
++
++#ifndef __AUDIO_HAL_H
++#define __AUDIO_HAL_H
++
++#include "kirkwood_audio_regs.h"
++
++#ifdef CONFIG_SND_SOC_CS42L51
++#include "cs42l51.h"
++
++#define codec_init cs42l51_init
++#define codec_vol_get cs42l51_vol_get
++#define codec_vol_set cs42l51_vol_set
++#define codec_del_i2c_device cs42l51_del_i2c_device
++#endif
++
++#define CODEC_I2C_BUS_NO 0
++#define CODEC_I2C_ADD 0x4A
++
++/*********************************/
++/* General enums and structures */
++/*******************************/
++/* Type of Audio operations*/
++enum mv_audio_operation {
++ AUDIO_PLAYBACK = 0,
++ AUDIO_RECORD = 1
++};
++
++struct mv_audio_freq_data{
++ int baseFreq; /* Control FS, selects the base frequency
++ * of the DCO */
++ u32 offset; /* Offset control in which each step equals to
++ * 0.9536 ppm */
++};
++
++
++/***********************************/
++/* Play Back related structures */
++/*********************************/
++
++struct mv_audio_playback_ctrl {
++ int burst; /* Specifies the Burst Size of the DMA */
++ bool loopBack; /* When Loopback is enabled, playback data
++ * is looped back to be recorded */
++ int monoMode; /* Mono Mode is used */
++ unsigned int bufferPhyBase; /* Physical Address of DMA buffer */
++ unsigned int bufferSize; /* Size of DMA buffer */
++ unsigned int intByteCount; /* Number of bytes after which an
++ * interrupt will be issued.*/
++ int sampleSize; /* Playback Sample Size*/
++};
++
++struct mv_spdif_playback_ctrl {
++ bool nonPcm; /* PCM or non-PCM mode*/
++ bool validity; /* Validity bit value when using
++ * registers (userBitsFromMemory=0) */
++ bool underrunData; /* If true send last frame on mute/pause/
++ * underrun otherwise send 24 binary */
++ bool userBitsFromMemory; /* otherwise from intenal registers */
++ bool validityFromMemory; /* otherwise from internal registers */
++ bool blockStartInternally; /* When user and valid bits are form
++ * registers then this bit should be zero */
++};
++
++struct mv_i2s_playback_ctrl {
++ int sampleSize;
++ int justification;
++ bool sendLastFrame; /* If true send last frame on
++ * mute/pause/underrun
++ * otherwise send 64 binary*/
++};
++
++
++/*********************************/
++/* Recording related structures */
++/*********************************/
++
++struct mv_audio_record_ctrl {
++ int burst; /* Recording DMA Burst Size */
++ int sampleSize; /*Recording Sample Size */
++ bool mono; /* If true then recording mono else
++ * recording stereo */
++ int monoChannel; /* Left or right moono */
++ u32 bufferPhyBase; /* Physical Address of DMA buffer */
++ u32 bufferSize; /* Size of DMA buffer */
++
++ u32 intByteCount; /* Number of bytes after which an
++ * interrupt will be issued.*/
++
++};
++
++struct mv_i2s_record_ctrl {
++ int sample; /* I2S Recording Sample Size*/
++ int justf;
++};
++
++/******************/
++/* Functions API */
++/****************/
++
++extern struct mv88fx_snd_chip *chip;
++
++int mv88fx_snd_hw_init(struct snd_card *card);
++int mv88fx_snd_hw_capture_set(struct mv88fx_snd_chip *chip);
++int mv88fx_snd_hw_playback_set(struct mv88fx_snd_chip *chip);
++
++#endif
+diff --git a/sound/soc/kirkwood/kirkwood_audio_regs.h b/sound/soc/kirkwood/kirkwood_audio_regs.h
+new file mode 100644
+index 0000000..1d3df15
+--- /dev/null
++++ b/sound/soc/kirkwood/kirkwood_audio_regs.h
+@@ -0,0 +1,310 @@
++/*
++ * Audio registers for Marvell Kirkwood family SOCs
++ */
++
++#ifndef __KW_AUDIO_REGS_H
++#define __KW_AUDIO_REGS_H
++
++enum mv_audio_freq {
++ AUDIO_FREQ_44_1KH = 0, /* 11.2896Mhz */
++ AUDIO_FREQ_48KH = 1, /* 12.288Mhz */
++ AUDIO_FREQ_96KH = 2, /* 24.576Mhz */
++ AUDIO_FREQ_LOWER_44_1KH = 3 , /* Lower than 11.2896MHz */
++ AUDIO_FREQ_HIGHER_96KH = 4, /* Higher than 24.576MHz */
++ AUDIO_FREQ_OTHER = 7, /* Other frequency */
++};
++
++enum mv_audio_burst_size {
++ AUDIO_32BYTE_BURST = 1,
++ AUDIO_128BYTE_BURST = 2,
++};
++
++enum mv_audio_playback_mono {
++ AUDIO_PLAY_MONO_OFF = 0,
++ AUDIO_PLAY_LEFT_MONO = 1,
++ AUDIO_PLAY_RIGHT_MONO = 2,
++ AUDIO_PLAY_BOTH_MONO = 3,
++ AUDIO_PLAY_OTHER_MONO = 4
++};
++
++enum mv_audio_record_mono {
++ AUDIO_REC_LEFT_MONO = 0,
++ AUDIO_REC_RIGHT_MONO = 1,
++};
++
++enum mv_audio_sample_size {
++ SAMPLE_32BIT = 0,
++ SAMPLE_24BIT = 1,
++ SAMPLE_20BIT = 2,
++ SAMPLE_16BIT = 3,
++ SAMPLE_16BIT_NON_COMPACT = 7
++};
++
++enum mv_audio_i2s_justification {
++ LEFT_JUSTIFIED = 0,
++ I2S_JUSTIFIED = 5,
++ RISE_BIT_CLCK_JUSTIFIED = 7,
++ RIGHT_JUSTIFIED = 8,
++};
++
++#define APBBCR_SIZE_MAX 0x3FFFFF
++#define APBBCR_SIZE_SHIFT 0x2
++
++#define AUDIO_REG_TO_SIZE(reg) (((reg) + 1) << APBBCR_SIZE_SHIFT)
++#define AUDIO_SIZE_TO_REG(size) (((size) >> APBBCR_SIZE_SHIFT) - 1)
++
++#define MV_AUDIO_BUFFER_MIN_ALIGN 0x8
++
++/********************/
++/* Clocking Control*/
++/*******************/
++
++#define MV_AUDIO_DCO_CTRL_REG 0x1204
++#define MV_AUDIO_SPCR_DCO_STATUS_REG 0x120c
++#define MV_AUDIO_SAMPLE_CNTR_CTRL_REG 0x1220
++#define MV_AUDIO_PLAYBACK_SAMPLE_CNTR_REG 0x1224
++#define MV_AUDIO_RECORD_SAMPLE_CNTR_REG 0x1228
++#define MV_AUDIO_CLOCK_CTRL_REG 0x1230
++
++/* MV_AUDIO_DCO_CTRL_REG */
++#define ADCR_DCO_CTRL_FS_OFFS 0
++#define ADCR_DCO_CTRL_FS_MASK (0x3 << ADCR_DCO_CTRL_FS_OFFS)
++#define ADCR_DCO_CTRL_FS_44_1KHZ (0x0 << ADCR_DCO_CTRL_FS_OFFS)
++#define ADCR_DCO_CTRL_FS_48KHZ (0x1 << ADCR_DCO_CTRL_FS_OFFS)
++#define ADCR_DCO_CTRL_FS_96KHZ (0x2 << ADCR_DCO_CTRL_FS_OFFS)
++
++
++#define ADCR_DCO_CTRL_OFFSET_OFFS 2
++#define ADCR_DCO_CTRL_OFFSET_MASK (0xfff << ADCR_DCO_CTRL_OFFSET_OFFS)
++
++/* MV_AUDIO_SPCR_DCO_STATUS_REG */
++#define ASDSR_SPCR_CTRLFS_OFFS 0
++#define ASDSR_SPCR_CTRLFS_MASK (0x7 << ASDSR_SPCR_CTRLFS_OFFS)
++#define ASDSR_SPCR_CTRLFS_44_1KHZ (0x0 << ASDSR_SPCR_CTRLFS_OFFS)
++#define ASDSR_SPCR_CTRLFS_48KHZ (0x1 << ASDSR_SPCR_CTRLFS_OFFS)
++#define ASDSR_SPCR_CTRLFS_96KHZ (0x2 << ASDSR_SPCR_CTRLFS_OFFS)
++#define ASDSR_SPCR_CTRLFS_44_1KHZ_LESS (0x3 << ASDSR_SPCR_CTRLFS_OFFS)
++#define ASDSR_SPCR_CTRLFS_96KHZ_MORE (0x4 << ASDSR_SPCR_CTRLFS_OFFS)
++#define ASDSR_SPCR_CTRLFS_OTHER (0x7 << ASDSR_SPCR_CTRLFS_OFFS)
++
++
++#define ASDSR_SPCR_CTRLOFFSET_OFFS 3
++#define ASDSR_SPCR_CTRLOFFSET_MASK (0xfff << ASDSR_SPCR_CTRLOFFSET_OFFS)
++
++#define ASDSR_SPCR_LOCK_OFFS 15
++#define ASDSR_SPCR_LOCK_MASK (0x1 << ASDSR_SPCR_LOCK_OFFS)
++
++#define ASDSR_DCO_LOCK_OFFS 16
++#define ASDSR_DCO_LOCK_MASK (0x1 << ASDSR_DCO_LOCK_OFFS)
++
++#define ASDSR_PLL_LOCK_OFFS 17
++#define ASDSR_PLL_LOCK_MASK (0x1 << ASDSR_PLL_LOCK_OFFS)
++
++/*MV_AUDIO_SAMPLE_CNTR_CTRL_REG */
++
++#define ASCCR_CLR_PLAY_CNTR_OFFS 9
++#define ASCCR_CLR_PLAY_CNTR_MASK (0x1 << ASCCR_CLR_PLAY_CNTR_OFFS)
++
++#define ASCCR_CLR_REC_CNTR_OFFS 8
++#define ASCCR_CLR_REC_CNTR_MASK (0x1 << ASCCR_CLR_REC_CNTR_OFFS)
++
++#define ASCCR_ACTIVE_PLAY_CNTR_OFFS 1
++#define ASCCR_ACTIVE_PLAY_CNTR_MASK (0x1 << ASCCR_ACTIVE_PLAY_CNTR_OFFS)
++
++#define ASCCR_ACTIVE_REC_CNTR_OFFS 0
++#define ASCCR_ACTIVE_REC_CNTR_MASK (0x1 << ASCCR_ACTIVE_REC_CNTR_OFFS)
++
++/* MV_AUDIO_CLOCK_CTRL_REG */
++#define ACCR_MCLK_SOURCE_OFFS 0
++#define ACCR_MCLK_SOURCE_MASK (0x3 << ACCR_MCLK_SOURCE_OFFS)
++#define ACCR_MCLK_SOURCE_DCO (0x0 << ACCR_MCLK_SOURCE_OFFS)
++#define ACCR_MCLK_SOURCE_SPCR (0x2 << ACCR_MCLK_SOURCE_OFFS)
++#define ACCR_MCLK_SOURCE_EXT (0x3 << ACCR_MCLK_SOURCE_OFFS)
++
++
++/*********************/
++/* Interrupts */
++/*******************/
++#define MV_AUDIO_ERROR_CAUSE_REG 0x1300
++#define MV_AUDIO_ERROR_MASK_REG 0x1304
++#define MV_AUDIO_INT_CAUSE_REG 0x1308
++#define MV_AUDIO_INT_MASK_REG 0x130C
++#define MV_AUDIO_RECORD_BYTE_CNTR_INT_REG 0x1310
++#define MV_AUDIO_PLAYBACK_BYTE_CNTR_INT_REG 0x1314
++
++/* MV_AUDIO_INT_CAUSE_REG*/
++#define AICR_RECORD_BYTES_INT (0x1 << 13)
++#define AICR_PLAY_BYTES_INT (0x1 << 14)
++
++#define ARBCI_BYTE_COUNT_MASK 0xFFFFFF
++#define APBCI_BYTE_COUNT_MASK 0xFFFFFF
++
++/*********************/
++/* Audio Playback */
++/*******************/
++/* General */
++#define MV_AUDIO_PLAYBACK_CTRL_REG 0x1100
++#define MV_AUDIO_PLAYBACK_BUFF_START_REG 0x1104
++#define MV_AUDIO_PLAYBACK_BUFF_SIZE_REG 0x1108
++#define MV_AUDIO_PLAYBACK_BUFF_BYTE_CNTR_REG 0x110c
++
++/* SPDIF */
++#define MV_AUDIO_SPDIF_PLAY_CTRL_REG 0x2204
++#define MV_AUDIO_SPDIF_PLAY_CH_STATUS_LEFT_REG(ind) \
++ (0x2280 + (ind << 2))
++#define MV_AUDIO_SPDIF_PLAY_CH_STATUS_RIGHT_REG(ind) \
++ (0x22a0 + (ind << 2))
++#define MV_AUDIO_SPDIF_PLAY_USR_BITS_LEFT_REG(ind) \
++ (0x22c0 + (ind << 2))
++#define MV_AUDIO_SPDIF_PLAY_USR_BITS_RIGHT_REG(ind) \
++ (0x22e0 + (ind << 2))
++
++/* I2S */
++#define MV_AUDIO_I2S_PLAY_CTRL_REG 0x2508
++
++
++/* MV_AUDIO_PLAYBACK_CTRL_REG */
++#define APCR_PLAY_SAMPLE_SIZE_OFFS 0
++#define APCR_PLAY_SAMPLE_SIZE_MASK (0x7 << APCR_PLAY_SAMPLE_SIZE_OFFS)
++
++#define APCR_PLAY_I2S_ENABLE_OFFS 3
++#define APCR_PLAY_I2S_ENABLE_MASK (0x1 << APCR_PLAY_I2S_ENABLE_OFFS)
++
++#define APCR_PLAY_SPDIF_ENABLE_OFFS 4
++#define APCR_PLAY_SPDIF_ENABLE_MASK (0x1 << APCR_PLAY_SPDIF_ENABLE_OFFS)
++
++#define APCR_PLAY_MONO_OFFS 5
++#define APCR_PLAY_MONO_MASK (0x3 << APCR_PLAY_MONO_OFFS)
++
++#define APCR_PLAY_I2S_MUTE_OFFS 7
++#define APCR_PLAY_I2S_MUTE_MASK (0x1 << APCR_PLAY_I2S_MUTE_OFFS)
++
++#define APCR_PLAY_SPDIF_MUTE_OFFS 8
++#define APCR_PLAY_SPDIF_MUTE_MASK (0x1 << APCR_PLAY_SPDIF_MUTE_OFFS)
++
++#define APCR_PLAY_PAUSE_OFFS 9
++#define APCR_PLAY_PAUSE_MASK (0x1 << APCR_PLAY_PAUSE_OFFS)
++
++#define APCR_LOOPBACK_OFFS 10
++#define APCR_LOOPBACK_MASK (0x1 << APCR_LOOPBACK_OFFS)
++
++#define APCR_PLAY_BURST_SIZE_OFFS 11
++#define APCR_PLAY_BURST_SIZE_MASK (0x3 << APCR_PLAY_BURST_SIZE_OFFS)
++
++#define APCR_PLAY_BUSY_OFFS 16
++#define APCR_PLAY_BUSY_MASK (0x1 << APCR_PLAY_BUSY_OFFS)
++
++/* MV_AUDIO_PLAYBACK_BUFF_BYTE_CNTR_REG */
++#define APBBCR_SIZE_MAX 0x3FFFFF
++#define APBBCR_SIZE_SHIFT 0x2
++
++
++/* MV_AUDIO_SPDIF_PLAY_CTRL_REG */
++#define ASPCR_SPDIF_BLOCK_START_OFFS 0x0
++#define ASPCR_SPDIF_BLOCK_START_MASK (0x1 << ASPCR_SPDIF_BLOCK_START_OFFS)
++
++#define ASPCR_SPDIF_PB_EN_MEM_VALIDITY_OFFS 0x1
++#define ASPCR_SPDIF_PB_EN_MEM_VALIDITY_MASK (0x1 << \
++ ASPCR_SPDIF_PB_EN_MEM_VALIDITY_OFFS)
++
++#define ASPCR_SPDIF_PB_MEM_USR_EN_OFFS 0x2
++#define ASPCR_SPDIF_PB_MEM_USR_EN_MASK (0x1 << ASPCR_SPDIF_PB_MEM_USR_EN_OFFS)
++
++#define ASPCR_SPDIF_UNDERRUN_DATA_OFFS 0x5
++#define ASPCR_SPDIF_UNDERRUN_DATA_MASK (0x1 << ASPCR_SPDIF_UNDERRUN_DATA_OFFS)
++
++#define ASPCR_SPDIF_PB_REG_VALIDITY_OFFS 16
++#define ASPCR_SPDIF_PB_REG_VALIDITY_MASK (0x1 << \
++ ASPCR_SPDIF_PB_REG_VALIDITY_OFFS)
++
++#define ASPCR_SPDIF_PB_NONPCM_OFFS 17
++#define ASPCR_SPDIF_PB_NONPCM_MASK (0x1 << ASPCR_SPDIF_PB_NONPCM_OFFS)
++
++
++/* MV_AUDIO_I2S_PLAY_CTRL_REG */
++#define AIPCR_I2S_SEND_LAST_FRM_OFFS 23
++#define AIPCR_I2S_SEND_LAST_FRM_MASK (1 << AIPCR_I2S_SEND_LAST_FRM_OFFS)
++
++#define AIPCR_I2S_PB_JUSTF_OFFS 26
++#define AIPCR_I2S_PB_JUSTF_MASK (0xf << AIPCR_I2S_PB_JUSTF_OFFS)
++
++#define AIPCR_I2S_PB_SAMPLE_SIZE_OFFS 30
++#define AIPCR_I2S_PB_SAMPLE_SIZE_MASK (0x3 << AIPCR_I2S_PB_SAMPLE_SIZE_OFFS)
++
++/*********************/
++/* Audio Recordnig */
++/*******************/
++/* General */
++#define MV_AUDIO_RECORD_CTRL_REG 0x1000
++#define MV_AUDIO_RECORD_START_ADDR_REG 0x1004
++#define MV_AUDIO_RECORD_BUFF_SIZE_REG 0x1008
++#define MV_AUDIO_RECORD_BUF_BYTE_CNTR_REG 0x100C
++
++/* SPDIF */
++#define MV_AUDIO_SPDIF_REC_GEN_REG 0x2004
++#define MV_AUDIO_SPDIF_REC_INT_CAUSE_MASK_REG 0x2008
++#define MV_AUDIO_SPDIF_REC_CH_STATUS_LEFT_REG(ind) \
++ (0x2180 + ((ind) << 2))
++#define MV_AUDIO_SPDIF_REC_CH_STATUS_RIGHT_REG(ind) \
++ (0x21a0 + ((ind) << 2))
++#define MV_AUDIO_SPDIF_REC_USR_BITS_LEFT_REG(ind) \
++ (0x21c0 + ((ind) << 2))
++#define MV_AUDIO_SPDIF_REC_USR_BITS_RIGHT_REG(ind) \
++ (0x21e0 + ((ind) << 2))
++
++/* I2S */
++#define MV_AUDIO_I2S_REC_CTRL_REG 0x2408
++
++
++/* MV_AUDIO_RECORD_CTRL_REG*/
++#define ARCR_RECORD_SAMPLE_SIZE_OFFS 0
++#define ARCR_RECORD_SAMPLE_SIZE_MASK (0x7 << ARCR_RECORD_SAMPLE_SIZE_OFFS)
++
++#define ARCR_RECORDED_MONO_CHNL_OFFS 3
++#define ARCR_RECORDED_MONO_CHNL_MASK (0x1 << ARCR_RECORDED_MONO_CHNL_OFFS)
++
++#define ARCR_RECORD_MONO_OFFS 4
++#define ARCR_RECORD_MONO_MASK (0x1 << ARCR_RECORD_MONO_OFFS)
++
++#define ARCR_RECORD_BURST_SIZE_OFFS 5
++#define ARCR_RECORD_BURST_SIZE_MASK (0x3 << ARCR_RECORD_BURST_SIZE_OFFS)
++
++#define ARCR_RECORD_MUTE_OFFS 8
++#define ARCR_RECORD_MUTE_MASK (0x1 << ARCR_RECORD_MUTE_OFFS)
++
++#define ARCR_RECORD_PAUSE_OFFS 9
++#define ARCR_RECORD_PAUSE_MASK (0x1 << ARCR_RECORD_PAUSE_OFFS)
++
++#define ARCR_RECORD_I2S_EN_OFFS 10
++#define ARCR_RECORD_I2S_EN_MASK (0x1 << ARCR_RECORD_I2S_EN_OFFS)
++
++#define ARCR_RECORD_SPDIF_EN_OFFS 11
++#define ARCR_RECORD_SPDIF_EN_MASK (0x1 << ARCR_RECORD_SPDIF_EN_OFFS)
++
++
++/* MV_AUDIO_SPDIF_REC_GEN_REG*/
++#define ASRGR_CORE_CLK_FREQ_OFFS 1
++#define ASRGR_CORE_CLK_FREQ_MASK (0x3 << ASRGR_CORE_CLK_FREQ_OFFS)
++#define ASRGR_CORE_CLK_FREQ_133MHZ (0x0 << ASRGR_CORE_CLK_FREQ_OFFS)
++#define ASRGR_CORE_CLK_FREQ_150MHZ (0x1 << ASRGR_CORE_CLK_FREQ_OFFS)
++#define ASRGR_CORE_CLK_FREQ_166MHZ (0x2 << ASRGR_CORE_CLK_FREQ_OFFS)
++#define ASRGR_CORE_CLK_FREQ_200MHZ (0x3 << ASRGR_CORE_CLK_FREQ_OFFS)
++
++#define ASRGR_VALID_PCM_INFO_OFFS 7
++#define ASRGR_VALID_PCM_INFO_MASK (0x1 << ASRGR_VALID_PCM_INFO_OFFS)
++
++#define ASRGR_SAMPLE_FREQ_OFFS 8
++#define ASRGR_SAMPLE_FREQ_MASK (0xf << ASRGR_SAMPLE_FREQ_OFFS)
++
++#define ASRGR_NON_PCM_OFFS 14
++#define ASRGR_NON_PCM_MASK (1 << ASRGR_NON_PCM_OFFS)
++
++/* MV_AUDIO_I2S_REC_CTRL_REG*/
++#define AIRCR_I2S_RECORD_JUSTF_OFFS 26
++#define AIRCR_I2S_RECORD_JUSTF_MASK (0xf << AIRCR_I2S_RECORD_JUSTF_OFFS)
++
++#define AIRCR_I2S_SAMPLE_SIZE_OFFS 30
++#define AIRCR_I2S_SAMPLE_SIZE_MASK (0x3 << AIRCR_I2S_SAMPLE_SIZE_OFFS)
++
++#endif /* __KW_AUDIO_REGS_H */
++
+diff --git a/sound/soc/kirkwood/kirkwood_pcm.c b/sound/soc/kirkwood/kirkwood_pcm.c
+new file mode 100644
+index 0000000..ed35851
+--- /dev/null
++++ b/sound/soc/kirkwood/kirkwood_pcm.c
+@@ -0,0 +1,1505 @@
++/*
++ *
++ * Marvell Orion Alsa Sound driver
++ *
++ * Author: Maen Suleiman
++ * Copyright (C) 2008 Marvell Ltd.
++ *
++ *
++ * 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/interrupt.h>
++#include <linux/dma-mapping.h>
++#include <linux/platform_device.h>
++#include <linux/mv88fx_audio.h>
++
++#include <sound/core.h>
++#include <sound/control.h>
++#include <sound/pcm.h>
++#include <sound/asoundef.h>
++
++#include "kirkwood_audio_hal.h"
++
++struct mv88fx_snd_chip *chip;
++
++static int test_memory(struct mbus_dram_target_info *dram_info,
++ unsigned int base, unsigned int size)
++{
++ unsigned int i;
++
++ for (i = 0; i <= dram_info->num_cs; i++) {
++
++ /* check if we get to end */
++ if ((dram_info->cs[i].base == 0) &&
++ (dram_info->cs[i].size == 0))
++ break;
++
++ /* check if we fit into one memory window only */
++ if ((base >= dram_info->cs[i].base) &&
++ ((base + size) <= dram_info->cs[i].base +
++ dram_info->cs[i].size))
++ return 1;
++ }
++
++ return 0;
++}
++
++static void devdma_hw_free(struct device *dev, struct snd_pcm_substream
++ *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct snd_dma_buffer *buf = runtime->dma_buffer_p;
++
++ if (runtime->dma_area == NULL)
++ return;
++
++ if (buf != &substream->dma_buffer)
++ kfree(runtime->dma_buffer_p);
++
++ snd_pcm_set_runtime_buffer(substream, NULL);
++}
++
++static int devdma_hw_alloc(struct device *dev, struct snd_pcm_substream
++ *substream, size_t size)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ struct snd_dma_buffer *buf = runtime->dma_buffer_p;
++ struct mv88fx_snd_stream *audio_stream =
++ snd_pcm_substream_chip(substream);
++
++ int ret = 0;
++
++ if (buf) {
++ if (buf->bytes >= size) {
++ snd_printd("buf->bytes >= size\n");
++ goto out;
++ }
++ devdma_hw_free(dev, substream);
++ }
++
++ if (substream->dma_buffer.area != NULL &&
++ substream->dma_buffer.bytes >= size) {
++ buf = &substream->dma_buffer;
++ } else {
++ buf = kmalloc(sizeof(struct snd_dma_buffer), GFP_KERNEL);
++ if (!buf) {
++ snd_printk("buf == NULL\n");
++ goto nomem;
++ }
++
++ buf->dev.type = SNDRV_DMA_TYPE_DEV;
++ buf->dev.dev = dev;
++ buf->area = audio_stream->area;
++ buf->addr = audio_stream->addr;
++ buf->bytes = size;
++ buf->private_data = NULL;
++
++ if (!buf->area) {
++ snd_printk("buf->area == NULL\n");
++ goto free;
++ }
++ }
++
++ snd_pcm_set_runtime_buffer(substream, buf);
++ ret = 1;
++out:
++ runtime->dma_bytes = size;
++ return ret;
++
++free:
++ kfree(buf);
++nomem:
++ return -ENOMEM;
++}
++
++static int devdma_mmap(struct device *dev, struct snd_pcm_substream *substream,
++ struct vm_area_struct *vma)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ return dma_mmap_coherent(dev, vma, runtime->dma_area,
++ runtime->dma_addr, runtime->dma_bytes);
++}
++
++/*
++ * hw preparation for spdif
++ */
++
++static int mv88fx_snd_spdif_mask_info(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_info *uinfo)
++{
++ uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958;
++ uinfo->count = 1;
++ return 0;
++}
++
++static int mv88fx_snd_spdif_mask_get(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ ucontrol->value.iec958.status[0] = 0xff;
++ ucontrol->value.iec958.status[1] = 0xff;
++ ucontrol->value.iec958.status[2] = 0xff;
++ ucontrol->value.iec958.status[3] = 0xff;
++ return 0;
++}
++
++static struct snd_kcontrol_new mv88fx_snd_spdif_mask = {
++ .access = SNDRV_CTL_ELEM_ACCESS_READ,
++ .iface = SNDRV_CTL_ELEM_IFACE_PCM,
++ .name = SNDRV_CTL_NAME_IEC958("", PLAYBACK, CON_MASK),
++ .info = mv88fx_snd_spdif_mask_info,
++ .get = mv88fx_snd_spdif_mask_get,
++};
++
++static int mv88fx_snd_spdif_stream_info(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_info *uinfo)
++{
++ uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958;
++ uinfo->count = 1;
++ return 0;
++}
++
++static int mv88fx_snd_spdif_stream_get(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ struct mv88fx_snd_chip *chip = snd_kcontrol_chip(kcontrol);
++ int i, word;
++
++ spin_lock_irq(&chip->reg_lock);
++
++ for (word = 0; word < 4; word++) {
++ chip->stream[PLAYBACK]->spdif_status[word] =
++ readl(chip->base +
++ MV_AUDIO_SPDIF_PLAY_CH_STATUS_LEFT_REG(word));
++
++ for (i = 0; i < 4; i++)
++ ucontrol->value.iec958.status[word + i] =
++ (chip->stream[PLAYBACK]->spdif_status[word] >>
++ (i * 8)) & 0xff;
++ }
++
++ spin_unlock_irq(&chip->reg_lock);
++ return 0;
++}
++
++static int mv88fx_snd_spdif_stream_put(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ struct mv88fx_snd_chip *chip = snd_kcontrol_chip(kcontrol);
++ int i, change = 0, word;
++
++ spin_lock_irq(&chip->reg_lock);
++
++ for (word = 0; word < 4; word++) {
++ for (i = 0; i < 4; i++) {
++ chip->stream[PLAYBACK]->spdif_status[word] |=
++ ucontrol->value.iec958.status[word + i] << (i * 8);
++ }
++
++ writel(chip->stream[PLAYBACK]->spdif_status[word],
++ chip->base + MV_AUDIO_SPDIF_PLAY_CH_STATUS_LEFT_REG(word));
++
++ writel(chip->stream[PLAYBACK]->spdif_status[word],
++ chip->base + MV_AUDIO_SPDIF_PLAY_CH_STATUS_RIGHT_REG(word));
++ }
++
++ if (chip->stream[PLAYBACK]->spdif_status[0] & IEC958_AES0_NONAUDIO)
++ chip->pcm_mode = NON_PCM;
++
++ spin_unlock_irq(&chip->reg_lock);
++
++ return change;
++}
++
++static struct snd_kcontrol_new mv88fx_snd_spdif_stream = {
++ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
++ SNDRV_CTL_ELEM_ACCESS_INACTIVE,
++ .iface = SNDRV_CTL_ELEM_IFACE_PCM,
++ .name = SNDRV_CTL_NAME_IEC958("", PLAYBACK, PCM_STREAM),
++ .info = mv88fx_snd_spdif_stream_info,
++ .get = mv88fx_snd_spdif_stream_get,
++ .put = mv88fx_snd_spdif_stream_put
++};
++
++
++static int mv88fx_snd_spdif_default_info(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_info *uinfo)
++{
++ uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958;
++ uinfo->count = 1;
++ return 0;
++}
++
++static int mv88fx_snd_spdif_default_get(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ struct mv88fx_snd_chip *chip = snd_kcontrol_chip(kcontrol);
++ int i, word;
++
++ spin_lock_irq(&chip->reg_lock);
++
++ for (word = 0; word < 4; word++) {
++ chip->stream_defaults[PLAYBACK]->spdif_status[word] =
++ readl(chip->base +
++ MV_AUDIO_SPDIF_PLAY_CH_STATUS_LEFT_REG(word));
++
++ for (i = 0; i < 4; i++)
++ ucontrol->value.iec958.status[word + i] =
++ (chip->stream_defaults[PLAYBACK]->spdif_status[word] >>
++ (i * 8)) & 0xff;
++ }
++
++ spin_unlock_irq(&chip->reg_lock);
++
++ return 0;
++}
++
++static int mv88fx_snd_spdif_default_put(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ struct mv88fx_snd_chip *chip = snd_kcontrol_chip(kcontrol);
++ int i, change = 0, word;
++
++ spin_lock_irq(&chip->reg_lock);
++
++ for (word = 0; word < 4; word++) {
++ for (i = 0; i < 4; i++) {
++ chip->stream_defaults[PLAYBACK]->spdif_status[word] |=
++ ucontrol->value.iec958.status[word + i] << (i * 8);
++ }
++
++ writel(chip->stream_defaults[PLAYBACK]->spdif_status[word],
++ chip->base + MV_AUDIO_SPDIF_PLAY_CH_STATUS_LEFT_REG(word));
++
++ writel(chip->stream_defaults[PLAYBACK]->spdif_status[word],
++ chip->base + MV_AUDIO_SPDIF_PLAY_CH_STATUS_RIGHT_REG(word));
++ }
++
++ if (chip->stream_defaults[PLAYBACK]->spdif_status[0] &
++ IEC958_AES0_NONAUDIO)
++ chip->pcm_mode = NON_PCM;
++
++ spin_unlock_irq(&chip->reg_lock);
++
++ return change;
++}
++
++/* static struct snd_kcontrol_new mv88fx_snd_spdif_default __devinitdata = */
++static struct snd_kcontrol_new mv88fx_snd_spdif_default = {
++ .iface = SNDRV_CTL_ELEM_IFACE_PCM,
++ .name = SNDRV_CTL_NAME_IEC958("", PLAYBACK, DEFAULT),
++ .info = mv88fx_snd_spdif_default_info,
++ .get = mv88fx_snd_spdif_default_get,
++ .put = mv88fx_snd_spdif_default_put
++};
++
++unsigned char mv88fx_snd_vol[2];
++
++static int mv88fx_snd_mixer_vol_info(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_info *uinfo)
++{
++ uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
++ uinfo->count = 2;
++ uinfo->value.integer.min = 0;
++ uinfo->value.integer.max = 39;
++ return 0;
++}
++
++static int mv88fx_snd_mixer_vol_get(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ codec_vol_get(mv88fx_snd_vol);
++
++ ucontrol->value.integer.value[0] = (long)mv88fx_snd_vol[0];
++ ucontrol->value.integer.value[1] = (long)mv88fx_snd_vol[1];
++
++ return 0;
++}
++
++static int mv88fx_snd_mixer_vol_put(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ mv88fx_snd_vol[0] = (unsigned char)ucontrol->value.integer.value[0];
++ mv88fx_snd_vol[1] = (unsigned char)ucontrol->value.integer.value[1];
++
++ codec_vol_set(mv88fx_snd_vol);
++
++ return 0;
++}
++
++static struct snd_kcontrol_new mv88fx_snd_dac_vol = {
++ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
++ .name = "Playback DAC Volume",
++ .info = mv88fx_snd_mixer_vol_info,
++ .get = mv88fx_snd_mixer_vol_get,
++ .put = mv88fx_snd_mixer_vol_put
++};
++
++struct mv88fx_snd_mixer_enum {
++ char **names; /* enum names*/
++ int *values; /* values to be updated*/
++ int count; /* number of elements */
++ void *rec; /* field to be updated*/
++};
++
++int mv88fx_snd_mixer_enum_info(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_info *uinfo)
++{
++ struct mv88fx_snd_mixer_enum *mixer_enum =
++ (struct mv88fx_snd_mixer_enum *)kcontrol->private_value;
++
++ uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
++ uinfo->count = 1;
++ uinfo->value.enumerated.items = mixer_enum->count;
++
++ if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items)
++ uinfo->value.enumerated.item--;
++
++ strcpy(uinfo->value.enumerated.name,
++ mixer_enum->names[uinfo->value.enumerated.item]);
++
++ return 0;
++}
++
++int mv88fx_snd_mixer_enum_get(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ struct mv88fx_snd_mixer_enum *mixer_enum =
++ (struct mv88fx_snd_mixer_enum *)kcontrol->private_value;
++ int i;
++ unsigned int val;
++
++ val = *(unsigned int *)mixer_enum->rec;
++
++ for (i = 0; i < mixer_enum->count; i++) {
++
++ if (val == (unsigned int)mixer_enum->values[i]) {
++ ucontrol->value.enumerated.item[0] = i;
++ break;
++ }
++ }
++
++ return 0;
++}
++
++int mv88fx_snd_mixer_enum_put(struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ unsigned int val, *rec;
++ struct mv88fx_snd_mixer_enum *mixer_enum =
++ (struct mv88fx_snd_mixer_enum *)kcontrol->private_value;
++ int i;
++
++ rec = (unsigned int *)mixer_enum->rec;
++ val = ucontrol->value.enumerated.item[0];
++
++ if (val < 0)
++ val = 0;
++ if (val > mixer_enum->count)
++ val = mixer_enum->count;
++
++ for (i = 0; i < mixer_enum->count; i++) {
++
++ if (val == i) {
++ *rec = (unsigned int)mixer_enum->values[i];
++ break;
++ }
++ }
++
++ return 0;
++}
++
++#define MV88FX_PCM_MIXER_ENUM(xname, xindex, value) \
++{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
++ .name = xname, \
++ .index = xindex, \
++ .info = mv88fx_snd_mixer_enum_info, \
++ .get = mv88fx_snd_mixer_enum_get, \
++ .put = mv88fx_snd_mixer_enum_put, \
++ .private_value = (unsigned long)value, \
++}
++
++char *playback_src_mixer_names[] = {"SPDIF", "I2S", "SPDIF And I2S"};
++int playback_src_mixer_values[] = { SPDIF, I2S, (SPDIF | I2S)};
++
++struct mv88fx_snd_mixer_enum playback_src_mixer = {
++ .names = playback_src_mixer_names,
++ .values = playback_src_mixer_values,
++ .count = 3,
++};
++
++char *playback_mono_mixer_names[] = {"Mono Both", "Mono Left", "Mono Right"};
++int playback_mono_mixer_values[] = { MONO_BOTH, MONO_LEFT, MONO_RIGHT};
++
++struct mv88fx_snd_mixer_enum playback_mono_mixer = {
++ .names = playback_mono_mixer_names,
++ .values = playback_mono_mixer_values,
++ .count = 3,
++};
++
++char *capture_src_mixer_names[] = {"SPDIF", "I2S"};
++int capture_src_mixer_values[] = { SPDIF, I2S};
++
++struct mv88fx_snd_mixer_enum capture_src_mixer = {
++ .names = capture_src_mixer_names,
++ .values = capture_src_mixer_values,
++ .count = 2,
++};
++
++char *capture_mono_mixer_names[] = {"Mono Left", "Mono Right"};
++int capture_mono_mixer_values[] = { MONO_LEFT, MONO_RIGHT};
++
++struct mv88fx_snd_mixer_enum capture_mono_mixer = {
++ .names = capture_mono_mixer_names,
++ .values = capture_mono_mixer_values,
++ .count = 2,
++};
++
++static struct snd_kcontrol_new mv88fx_snd_mixers[] = {
++ MV88FX_PCM_MIXER_ENUM("Playback output type", 0, &playback_src_mixer),
++
++ MV88FX_PCM_MIXER_ENUM("Playback mono type", 0, &playback_mono_mixer),
++
++ MV88FX_PCM_MIXER_ENUM("Capture input Type", 0, &capture_src_mixer),
++
++ MV88FX_PCM_MIXER_ENUM("Capture mono type", 0, &capture_mono_mixer),
++};
++
++#define PLAYBACK_MIX_INDX 0
++#define PLAYBACK_MONO_MIX_INDX 1
++#define CAPTURE_MIX_INDX 2
++#define CAPTURE_MONO_MIX_INDX 3
++
++static int mv88fx_snd_ctrl_new(struct snd_card *card)
++{
++ struct mv88fx_snd_platform_data *pdata = card->dev->platform_data;
++ int err = 0;
++
++ playback_src_mixer.rec = &chip->stream_defaults[PLAYBACK]->dig_mode;
++ playback_mono_mixer.rec = &chip->stream_defaults[PLAYBACK]->mono_mode;
++
++ capture_src_mixer.rec = &chip->stream_defaults[CAPTURE]->dig_mode;
++ capture_mono_mixer.rec = &chip->stream_defaults[CAPTURE]->mono_mode;
++
++ if ((pdata->i2s_play) && (pdata->spdif_play)) {
++ err = snd_ctl_add(card,
++ snd_ctl_new1(&mv88fx_snd_mixers[PLAYBACK_MIX_INDX],
++ chip));
++ if (err < 0)
++ return err;
++ }
++
++ err = snd_ctl_add(card,
++ snd_ctl_new1(&mv88fx_snd_mixers[PLAYBACK_MONO_MIX_INDX], chip));
++ if (err < 0)
++ return err;
++
++ if ((pdata->i2s_rec) && (pdata->spdif_rec)) {
++ err = snd_ctl_add(card,
++ snd_ctl_new1(&mv88fx_snd_mixers[CAPTURE_MIX_INDX], chip));
++ if (err < 0)
++ return err;
++ }
++
++ err = snd_ctl_add(card, snd_ctl_new1(
++ &mv88fx_snd_mixers[CAPTURE_MONO_MIX_INDX], chip));
++ if (err < 0)
++ return err;
++
++ if (pdata->i2s_play) {
++ err = snd_ctl_add(card, snd_ctl_new1(&mv88fx_snd_dac_vol,
++ chip));
++ if (err < 0)
++ return err;
++ }
++
++ err = snd_ctl_add(card, snd_ctl_new1(&mv88fx_snd_spdif_mask,
++ chip));
++ if (err < 0)
++ return err;
++
++ err = snd_ctl_add(card, snd_ctl_new1(&mv88fx_snd_spdif_default,
++ chip));
++ if (err < 0)
++ return err;
++
++ err = snd_ctl_add(card, snd_ctl_new1(&mv88fx_snd_spdif_stream,
++ chip));
++ return err;
++}
++
++static struct snd_pcm_hardware mv88fx_snd_capture_hw = {
++ .info = (SNDRV_PCM_INFO_INTERLEAVED |
++ SNDRV_PCM_INFO_MMAP |
++ SNDRV_PCM_INFO_MMAP_VALID |
++ SNDRV_PCM_INFO_BLOCK_TRANSFER |
++ SNDRV_PCM_INFO_PAUSE),
++
++ .formats = (SNDRV_PCM_FMTBIT_S16_LE |
++ SNDRV_PCM_FMTBIT_S24_LE |
++ SNDRV_PCM_FMTBIT_S32_LE),
++
++ .rates = (SNDRV_PCM_RATE_44100 |
++ SNDRV_PCM_RATE_48000 |
++ SNDRV_PCM_RATE_96000),
++
++ .rate_min = 44100,
++ .rate_max = 96000,
++ .channels_min = 1,
++ .channels_max = 2,
++ .buffer_bytes_max = (16*1024*1024),
++ .period_bytes_min = MV88FX_SND_MIN_PERIOD_BYTES,
++ .period_bytes_max = MV88FX_SND_MAX_PERIOD_BYTES,
++ .periods_min = MV88FX_SND_MIN_PERIODS,
++ .periods_max = MV88FX_SND_MAX_PERIODS,
++ .fifo_size = 0,
++};
++
++static int mv88fx_snd_capture_open(struct snd_pcm_substream *substream)
++{
++ int err;
++
++ chip->stream_defaults[CAPTURE]->substream = substream;
++ chip->stream_defaults[CAPTURE]->direction = CAPTURE;
++ substream->private_data = chip->stream_defaults[CAPTURE];
++ substream->runtime->hw = mv88fx_snd_capture_hw;
++
++ if (chip->stream_defaults[CAPTURE]->dig_mode & SPDIF)
++ substream->runtime->hw.formats &= ~SNDRV_PCM_FMTBIT_S32_LE;
++
++ /* check if playback is already running with specific rate */
++ if (chip->stream[PLAYBACK]->rate) {
++ switch (chip->stream[PLAYBACK]->rate) {
++ case 44100:
++ substream->runtime->hw.rates = SNDRV_PCM_RATE_44100;
++ break;
++ case 48000:
++ substream->runtime->hw.rates = SNDRV_PCM_RATE_48000;
++ break;
++ case 96000:
++ substream->runtime->hw.rates = SNDRV_PCM_RATE_96000;
++ break;
++ }
++ }
++
++ err = snd_pcm_hw_constraint_minmax(substream->runtime,
++ SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
++ chip->burst * 2,
++ AUDIO_REG_TO_SIZE(APBBCR_SIZE_MAX));
++ if (err < 0)
++ return err;
++
++ err = snd_pcm_hw_constraint_step(substream->runtime, 0,
++ SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
++ chip->burst);
++ if (err < 0)
++ return err;
++
++ err = snd_pcm_hw_constraint_step(substream->runtime, 0,
++ SNDRV_PCM_HW_PARAM_PERIOD_BYTES,
++ chip->burst);
++ if (err < 0)
++ return err;
++
++ err = snd_pcm_hw_constraint_minmax(substream->runtime,
++ SNDRV_PCM_HW_PARAM_PERIODS,
++ MV88FX_SND_MIN_PERIODS,
++ MV88FX_SND_MAX_PERIODS);
++ if (err < 0)
++ return err;
++
++ err = snd_pcm_hw_constraint_integer(substream->runtime,
++ SNDRV_PCM_HW_PARAM_PERIODS);
++ if (err < 0)
++ return err;
++
++ return 0;
++}
++
++static int mv88fx_snd_capture_close(struct snd_pcm_substream *substream)
++{
++ chip->stream_defaults[CAPTURE]->substream = NULL;
++ memset(chip->stream[CAPTURE], 0, sizeof(struct mv88fx_snd_stream));
++
++ return 0;
++}
++
++static int mv88fx_snd_capture_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct mv88fx_snd_stream *audio_stream =
++ snd_pcm_substream_chip(substream);
++
++ return devdma_hw_alloc(audio_stream->dev, substream,
++ params_buffer_bytes(params));
++}
++
++static int mv88fx_snd_capture_hw_free(struct snd_pcm_substream *substream)
++{
++ struct mv88fx_snd_stream *audio_stream =
++ snd_pcm_substream_chip(substream);
++
++ /*
++ * Clear out the DMA and any allocated buffers.
++ */
++ devdma_hw_free(audio_stream->dev, substream);
++ return 0;
++}
++
++static int mv88fx_snd_capture_prepare(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++
++ struct mv88fx_snd_stream *audio_stream =
++ snd_pcm_substream_chip(substream);
++
++ audio_stream->rate = runtime->rate;
++ audio_stream->stereo = (runtime->channels == 1) ? 0 : 1;
++
++ if (runtime->format == SNDRV_PCM_FORMAT_S16_LE) {
++ audio_stream->format = SAMPLE_16IN16;
++ } else if (runtime->format == SNDRV_PCM_FORMAT_S24_LE) {
++ audio_stream->format = SAMPLE_24IN32;
++ } else if (runtime->format == SNDRV_PCM_FORMAT_S32_LE) {
++ audio_stream->format = SAMPLE_32IN32;
++ } else {
++ snd_printk("Requested format %d is not supported\n",
++ runtime->format);
++ return -1;
++ }
++
++ /* buffer and period sizes in frame */
++ audio_stream->dma_addr = runtime->dma_addr;
++ audio_stream->dma_size = frames_to_bytes(runtime, runtime->buffer_size);
++ audio_stream->period_size =
++ frames_to_bytes(runtime, runtime->period_size);
++
++ memcpy(chip->stream[CAPTURE], chip->stream_defaults[CAPTURE],
++ sizeof(struct mv88fx_snd_stream));
++
++ return mv88fx_snd_hw_capture_set(chip);
++}
++
++static int mv88fx_snd_capture_trigger(struct snd_pcm_substream *substream,
++ int cmd)
++{
++ struct mv88fx_snd_stream *audio_stream =
++ snd_pcm_substream_chip(substream);
++ int result = 0;
++ unsigned int reg_data;
++
++ spin_lock(chip->reg_lock);
++ switch (cmd) {
++ case SNDRV_PCM_TRIGGER_START:
++ /* FIXME: should check if busy before */
++
++ /* make sure the dma in pause state*/
++ reg_data = readl(chip->base + MV_AUDIO_RECORD_CTRL_REG);
++ reg_data |= ARCR_RECORD_PAUSE_MASK;
++ writel(reg_data, chip->base + MV_AUDIO_RECORD_CTRL_REG);
++
++ /* enable interrupt */
++ reg_data = readl(chip->base + MV_AUDIO_INT_MASK_REG);
++ reg_data |= AICR_RECORD_BYTES_INT;
++ writel(reg_data, chip->base + MV_AUDIO_INT_MASK_REG);
++
++ reg_data = readl(chip->base + MV_AUDIO_RECORD_CTRL_REG);
++
++ /* enable dma */
++ if (audio_stream->dig_mode & I2S)
++ reg_data |= ARCR_RECORD_I2S_EN_MASK;
++
++ if (audio_stream->dig_mode & SPDIF)
++ reg_data |= ARCR_RECORD_SPDIF_EN_MASK;
++
++ /* start dma */
++ reg_data &= (~ARCR_RECORD_PAUSE_MASK);
++ writel(reg_data, chip->base + MV_AUDIO_RECORD_CTRL_REG);
++ break;
++
++ case SNDRV_PCM_TRIGGER_STOP:
++
++ /* make sure the dma in pause state */
++ reg_data = readl(chip->base + MV_AUDIO_RECORD_CTRL_REG);
++ reg_data |= ARCR_RECORD_PAUSE_MASK;
++ writel(reg_data, chip->base + MV_AUDIO_RECORD_CTRL_REG);
++
++ /* disable interrupt */
++ reg_data = readl(chip->base + MV_AUDIO_INT_MASK_REG);
++ reg_data &= (~AICR_RECORD_BYTES_INT);
++ writel(reg_data, chip->base + MV_AUDIO_INT_MASK_REG);
++
++ /* always stop both I2S and SPDIF */
++ reg_data = readl(chip->base + MV_AUDIO_RECORD_CTRL_REG);
++ reg_data &= (~(ARCR_RECORD_I2S_EN_MASK |
++ ARCR_RECORD_SPDIF_EN_MASK));
++ writel(reg_data, chip->base + MV_AUDIO_RECORD_CTRL_REG);
++
++ /* FIXME: should check if busy after */
++
++ break;
++
++ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
++ case SNDRV_PCM_TRIGGER_SUSPEND:
++ reg_data = readl(chip->base + MV_AUDIO_RECORD_CTRL_REG);
++ reg_data |= ARCR_RECORD_PAUSE_MASK;
++ writel(reg_data, chip->base + MV_AUDIO_RECORD_CTRL_REG);
++ break;
++
++ case SNDRV_PCM_TRIGGER_RESUME:
++ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
++ reg_data = readl(chip->base + MV_AUDIO_RECORD_CTRL_REG);
++ reg_data &= (~ARCR_RECORD_PAUSE_MASK);
++ writel(reg_data, chip->base + MV_AUDIO_RECORD_CTRL_REG);
++ break;
++
++ default:
++ result = -EINVAL;
++ break;
++ }
++
++ spin_unlock(&chip->reg_lock);
++ return result;
++}
++
++static snd_pcm_uframes_t mv88fx_snd_capture_pointer(struct snd_pcm_substream
++ *substream)
++{
++ return bytes_to_frames(substream->runtime,
++ (ssize_t)readl(chip->base + MV_AUDIO_RECORD_BUF_BYTE_CNTR_REG));
++}
++
++int mv88fx_snd_capture_mmap(struct snd_pcm_substream *substream,
++ struct vm_area_struct *vma)
++{
++ return devdma_mmap(NULL, substream, vma);
++}
++
++static struct snd_pcm_ops mv88fx_snd_capture_ops = {
++ .open = mv88fx_snd_capture_open,
++ .close = mv88fx_snd_capture_close,
++ .ioctl = snd_pcm_lib_ioctl,
++ .hw_params = mv88fx_snd_capture_hw_params,
++ .hw_free = mv88fx_snd_capture_hw_free,
++ .prepare = mv88fx_snd_capture_prepare,
++ .trigger = mv88fx_snd_capture_trigger,
++ .pointer = mv88fx_snd_capture_pointer,
++ .mmap = mv88fx_snd_capture_mmap,
++};
++
++struct snd_pcm_hardware mv88fx_snd_playback_hw = {
++ .info = (SNDRV_PCM_INFO_INTERLEAVED |
++ SNDRV_PCM_INFO_MMAP |
++ SNDRV_PCM_INFO_MMAP_VALID |
++ SNDRV_PCM_INFO_BLOCK_TRANSFER |
++ SNDRV_PCM_INFO_PAUSE),
++ .formats = (SNDRV_PCM_FMTBIT_S16_LE |
++ SNDRV_PCM_FMTBIT_S24_LE |
++ SNDRV_PCM_FMTBIT_S32_LE),
++ .rates = (SNDRV_PCM_RATE_44100 |
++ SNDRV_PCM_RATE_48000 |
++ SNDRV_PCM_RATE_96000),
++
++ .rate_min = 44100,
++ .rate_max = 96000,
++ .channels_min = 1,
++ .channels_max = 2,
++ .buffer_bytes_max = (16*1024*1024),
++ .period_bytes_min = MV88FX_SND_MIN_PERIOD_BYTES,
++ .period_bytes_max = MV88FX_SND_MAX_PERIOD_BYTES,
++ .periods_min = MV88FX_SND_MIN_PERIODS,
++ .periods_max = MV88FX_SND_MAX_PERIODS,
++ .fifo_size = 0,
++};
++
++int mv88fx_snd_playback_open(struct snd_pcm_substream *substream)
++{
++ int err = 0;
++
++ chip->stream_defaults[PLAYBACK]->substream = substream;
++ chip->stream_defaults[PLAYBACK]->direction = PLAYBACK;
++ substream->private_data = chip->stream_defaults[PLAYBACK];
++ substream->runtime->hw = mv88fx_snd_playback_hw;
++
++ if (chip->stream_defaults[PLAYBACK]->dig_mode & SPDIF)
++ substream->runtime->hw.formats &= ~SNDRV_PCM_FMTBIT_S32_LE;
++
++ /* check if capture is already running with specific rate */
++ if (chip->stream[CAPTURE]->rate) {
++ switch (chip->stream[CAPTURE]->rate) {
++ case 44100:
++ substream->runtime->hw.rates = SNDRV_PCM_RATE_44100;
++ break;
++ case 48000:
++ substream->runtime->hw.rates = SNDRV_PCM_RATE_48000;
++ break;
++ case 96000:
++ substream->runtime->hw.rates = SNDRV_PCM_RATE_96000;
++ break;
++
++ }
++ }
++
++ err = snd_pcm_hw_constraint_minmax(substream->runtime,
++ SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
++ chip->burst * 2,
++ AUDIO_REG_TO_SIZE(APBBCR_SIZE_MAX));
++ if (err < 0)
++ return err;
++
++ err = snd_pcm_hw_constraint_step(substream->runtime, 0,
++ SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
++ chip->burst);
++ if (err < 0)
++ return err;
++
++ err = snd_pcm_hw_constraint_step(substream->runtime, 0,
++ SNDRV_PCM_HW_PARAM_PERIOD_BYTES,
++ chip->burst);
++ if (err < 0)
++ return err;
++
++ err = snd_pcm_hw_constraint_minmax(substream->runtime,
++ SNDRV_PCM_HW_PARAM_PERIODS,
++ MV88FX_SND_MIN_PERIODS,
++ MV88FX_SND_MAX_PERIODS);
++ if (err < 0)
++ return err;
++
++ err = snd_pcm_hw_constraint_integer(substream->runtime,
++ SNDRV_PCM_HW_PARAM_PERIODS);
++
++ if (err < 0)
++ return err;
++
++ return 0;
++}
++
++int mv88fx_snd_playback_close(struct snd_pcm_substream *substream)
++{
++ int i;
++
++ chip->stream_defaults[PLAYBACK]->substream = NULL;
++ chip->pcm_mode = PCM;
++
++ for (i = 0; i < 4; i++) {
++ chip->stream_defaults[PLAYBACK]->spdif_status[i] = 0;
++ chip->stream[PLAYBACK]->spdif_status[i] = 0;
++
++ writel(chip->stream_defaults[PLAYBACK]->spdif_status[i],
++ chip->base + MV_AUDIO_SPDIF_PLAY_CH_STATUS_LEFT_REG(i));
++ writel(chip->stream_defaults[PLAYBACK]->spdif_status[i],
++ chip->base + MV_AUDIO_SPDIF_PLAY_CH_STATUS_RIGHT_REG(i));
++ }
++
++ memset(chip->stream[PLAYBACK], 0, sizeof(struct mv88fx_snd_stream));
++
++ return 0;
++}
++
++int mv88fx_snd_playback_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct mv88fx_snd_stream *audio_stream =
++ snd_pcm_substream_chip(substream);
++
++ return devdma_hw_alloc(audio_stream->dev, substream,
++ params_buffer_bytes(params));
++}
++
++int mv88fx_snd_playback_hw_free(struct snd_pcm_substream *substream)
++{
++ struct mv88fx_snd_stream *audio_stream =
++ snd_pcm_substream_chip(substream);
++
++ /*
++ * Clear out the DMA and any allocated buffers.
++ */
++ devdma_hw_free(audio_stream->dev, substream);
++ return 0;
++}
++
++int mv88fx_snd_playback_prepare(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++
++ struct mv88fx_snd_stream *audio_stream =
++ snd_pcm_substream_chip(substream);
++
++ if ((audio_stream->dig_mode == I2S) &&
++ (chip->pcm_mode == NON_PCM))
++ return -1;
++
++ audio_stream->rate = runtime->rate;
++ audio_stream->stereo = (runtime->channels == 1) ? 0 : 1;
++
++ if (runtime->format == SNDRV_PCM_FORMAT_S16_LE) {
++ audio_stream->format = SAMPLE_16IN16;
++ } else if (runtime->format == SNDRV_PCM_FORMAT_S24_LE) {
++ audio_stream->format = SAMPLE_24IN32;
++ } else if (runtime->format == SNDRV_PCM_FORMAT_S32_LE) {
++ audio_stream->format = SAMPLE_32IN32;
++ } else {
++ snd_printk("Requested format %d is not supported\n",
++ runtime->format);
++ return -1;
++ }
++
++ /* buffer and period sizes in frame */
++ audio_stream->dma_addr = runtime->dma_addr;
++ audio_stream->dma_size = frames_to_bytes(runtime, runtime->buffer_size);
++ audio_stream->period_size =
++ frames_to_bytes(runtime, runtime->period_size);
++
++ memcpy(chip->stream[PLAYBACK], chip->stream_defaults[PLAYBACK],
++ sizeof(struct mv88fx_snd_stream));
++
++ return mv88fx_snd_hw_playback_set(chip);
++}
++
++int mv88fx_snd_playback_trigger(struct snd_pcm_substream *substream,
++ int cmd)
++{
++ struct mv88fx_snd_stream *audio_stream =
++ snd_pcm_substream_chip(substream);
++ int result = 0;
++ unsigned int reg_data;
++
++ spin_lock(chip->reg_lock);
++ switch (cmd) {
++ case SNDRV_PCM_TRIGGER_START:
++ /* enable interrupt */
++ reg_data = readl(chip->base + MV_AUDIO_INT_MASK_REG);
++ reg_data |= AICR_PLAY_BYTES_INT;
++ writel(reg_data, chip->base + MV_AUDIO_INT_MASK_REG);
++
++ /* make sure the dma in pause state*/
++ reg_data = readl(chip->base +
++ MV_AUDIO_PLAYBACK_CTRL_REG);
++ reg_data |= APCR_PLAY_PAUSE_MASK;
++ writel(reg_data, chip->base +
++ MV_AUDIO_PLAYBACK_CTRL_REG);
++
++ /* enable dma */
++ if ((audio_stream->dig_mode & I2S) &&
++ (chip->pcm_mode == PCM))
++ reg_data |= APCR_PLAY_I2S_ENABLE_MASK;
++
++ if (audio_stream->dig_mode & SPDIF)
++ reg_data |= APCR_PLAY_SPDIF_ENABLE_MASK;
++
++ /* start dma */
++ reg_data &= (~APCR_PLAY_PAUSE_MASK);
++ writel(reg_data, chip->base + MV_AUDIO_PLAYBACK_CTRL_REG);
++
++ break;
++
++ case SNDRV_PCM_TRIGGER_STOP:
++
++ /* disable interrupt */
++ reg_data = readl(chip->base + MV_AUDIO_INT_MASK_REG);
++ reg_data &= (~AICR_PLAY_BYTES_INT);
++ writel(reg_data, chip->base + MV_AUDIO_INT_MASK_REG);
++
++ /* make sure the dma in pause state*/
++ reg_data = readl(chip->base +
++ MV_AUDIO_PLAYBACK_CTRL_REG);
++ reg_data |= APCR_PLAY_PAUSE_MASK;
++
++ /* always stop both I2S and SPDIF*/
++ reg_data &= (~(APCR_PLAY_I2S_ENABLE_MASK |
++ APCR_PLAY_SPDIF_ENABLE_MASK));
++ writel(reg_data, chip->base +
++ MV_AUDIO_PLAYBACK_CTRL_REG);
++
++ /* check if busy twice*/
++ while (readl(chip->base + MV_AUDIO_PLAYBACK_CTRL_REG) &
++ APCR_PLAY_BUSY_MASK)
++ cpu_relax();
++ while (readl(chip->base + MV_AUDIO_PLAYBACK_CTRL_REG) &
++ APCR_PLAY_BUSY_MASK)
++ cpu_relax();
++ break;
++
++ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
++ case SNDRV_PCM_TRIGGER_SUSPEND:
++ reg_data = readl(chip->base +
++ MV_AUDIO_PLAYBACK_CTRL_REG);
++ reg_data |= APCR_PLAY_PAUSE_MASK;
++ writel(reg_data, chip->base +
++ MV_AUDIO_PLAYBACK_CTRL_REG);
++ break;
++
++ case SNDRV_PCM_TRIGGER_RESUME:
++ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
++ reg_data = readl(chip->base +
++ MV_AUDIO_PLAYBACK_CTRL_REG);
++ reg_data &= (~APCR_PLAY_PAUSE_MASK);
++ writel(reg_data, chip->base +
++ MV_AUDIO_PLAYBACK_CTRL_REG);
++
++ break;
++
++ default:
++ result = -EINVAL;
++ }
++
++ spin_unlock(&chip->reg_lock);
++ return result;
++}
++
++
++snd_pcm_uframes_t mv88fx_snd_playback_pointer(struct snd_pcm_substream
++ *substream)
++{
++ return bytes_to_frames(substream->runtime,
++ (ssize_t)readl(chip->base + MV_AUDIO_PLAYBACK_BUFF_BYTE_CNTR_REG));
++}
++
++int mv88fx_snd_playback_mmap(struct snd_pcm_substream *substream,
++ struct vm_area_struct *vma)
++{
++ return devdma_mmap(NULL, substream, vma);
++}
++
++
++struct snd_pcm_ops mv88fx_snd_playback_ops = {
++ .open = mv88fx_snd_playback_open,
++ .close = mv88fx_snd_playback_close,
++ .ioctl = snd_pcm_lib_ioctl,
++ .hw_params = mv88fx_snd_playback_hw_params,
++ .hw_free = mv88fx_snd_playback_hw_free,
++ .prepare = mv88fx_snd_playback_prepare,
++ .trigger = mv88fx_snd_playback_trigger,
++ .pointer = mv88fx_snd_playback_pointer,
++ .mmap = mv88fx_snd_playback_mmap,
++};
++
++int __init mv88fx_snd_pcm_new(struct snd_card *card)
++{
++ struct snd_pcm *pcm;
++ struct mv88fx_snd_platform_data *pdata = card->dev->platform_data;
++ int err, i;
++
++ snd_printd("card->dev=0x%x\n", (unsigned int)card->dev);
++
++ err = snd_pcm_new(card, "Marvell mv88fx_snd IEC958 and I2S", 0, 1, 1,
++ &pcm);
++ if (err < 0)
++ return err;
++
++ snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK,
++ &mv88fx_snd_playback_ops);
++
++ snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE,
++ &mv88fx_snd_capture_ops);
++
++ if ((pdata->i2s_play) && (pdata->spdif_play))
++ chip->stream_defaults[PLAYBACK]->dig_mode = (SPDIF | I2S);
++ else if (pdata->i2s_play)
++ chip->stream_defaults[PLAYBACK]->dig_mode = I2S;
++ else if (pdata->spdif_play)
++ chip->stream_defaults[PLAYBACK]->dig_mode = SPDIF;
++ else
++ chip->stream_defaults[PLAYBACK]->dig_mode = 0;
++
++ chip->stream_defaults[PLAYBACK]->mono_mode = MONO_BOTH;
++ chip->pcm_mode = PCM;
++ chip->stream_defaults[PLAYBACK]->stat_mem = 0;
++ chip->stream_defaults[PLAYBACK]->clock_src = DCO_CLOCK;
++
++ if (pdata->i2s_rec)
++ chip->stream_defaults[CAPTURE]->dig_mode = I2S;
++ else if (pdata->spdif_rec)
++ chip->stream_defaults[CAPTURE]->dig_mode = SPDIF;
++ else
++ chip->stream_defaults[CAPTURE]->dig_mode = 0;
++
++ chip->stream_defaults[CAPTURE]->mono_mode = MONO_LEFT;
++ chip->pcm_mode = PCM;
++ chip->stream_defaults[CAPTURE]->stat_mem = 0;
++ chip->stream_defaults[CAPTURE]->clock_src = DCO_CLOCK;
++
++ for (i = 0; i < 4; i++) {
++ chip->stream_defaults[PLAYBACK]->spdif_status[i] = 0;
++ chip->stream[PLAYBACK]->spdif_status[i] = 0;
++
++ writel(chip->stream_defaults[PLAYBACK]->spdif_status[i],
++ chip->base + MV_AUDIO_SPDIF_PLAY_CH_STATUS_LEFT_REG(i));
++
++ writel(chip->stream_defaults[PLAYBACK]->spdif_status[i],
++ chip->base + MV_AUDIO_SPDIF_PLAY_CH_STATUS_RIGHT_REG(i));
++
++ writel(0, chip->base +
++ MV_AUDIO_SPDIF_PLAY_USR_BITS_LEFT_REG(i));
++
++ writel(0, chip->base +
++ MV_AUDIO_SPDIF_PLAY_USR_BITS_RIGHT_REG(i));
++ }
++
++ pcm->private_data = chip;
++ pcm->info_flags = 0;
++ strcpy(pcm->name, "Marvell mv88fx_snd IEC958 and I2S");
++
++ return 0;
++}
++
++irqreturn_t mv88fx_snd_interrupt(int irq, void *dev_id)
++{
++ struct mv88fx_snd_chip *chip = dev_id;
++ struct mv88fx_snd_stream *play_stream = chip->stream_defaults[PLAYBACK];
++ struct mv88fx_snd_stream *capture_stream =
++ chip->stream_defaults[CAPTURE];
++
++ unsigned int status, mask;
++
++ spin_lock(&chip->reg_lock);
++
++ /* read the active interrupt */
++ mask = readl(chip->base + MV_AUDIO_INT_MASK_REG);
++ status = readl(chip->base + MV_AUDIO_INT_CAUSE_REG) & mask;
++
++ do {
++ if (status & ~(AICR_RECORD_BYTES_INT|AICR_PLAY_BYTES_INT)) {
++ spin_unlock(&chip->reg_lock);
++ snd_BUG(); /* FIXME: should enable error interrupts*/
++ return IRQ_NONE;
++ }
++
++ /* acknowledge interrupt */
++ writel(status, chip->base + MV_AUDIO_INT_CAUSE_REG);
++
++ /* This is record event */
++ if (status & AICR_RECORD_BYTES_INT)
++ snd_pcm_period_elapsed(capture_stream->substream);
++
++ /* This is play event */
++ if (status & AICR_PLAY_BYTES_INT)
++ snd_pcm_period_elapsed(play_stream->substream);
++
++ /* read the active interrupt */
++ mask = readl(chip->base + MV_AUDIO_INT_MASK_REG);
++ status = readl(chip->base + MV_AUDIO_INT_CAUSE_REG) & mask;
++ } while (status);
++
++ spin_unlock(&chip->reg_lock);
++
++ return IRQ_HANDLED;
++}
++
++void mv88fx_snd_free(struct snd_card *card)
++{
++ struct mv88fx_snd_chip *chip = card->private_data;
++
++ /* free irq */
++ free_irq(chip->irq, (void *)chip);
++
++ snd_printd("chip->res =0x%x\n", (unsigned int)chip->res);
++
++ if (chip->base)
++ iounmap(chip->base);
++
++ if (chip->res)
++ release_resource(chip->res);
++
++ chip->res = NULL;
++
++ /* Free memory allocated for streems */
++ if (chip->stream_defaults[PLAYBACK]->area)
++ dma_free_coherent(card->dev,
++ MV88FX_SND_MAX_PERIODS * MV88FX_SND_MAX_PERIOD_BYTES,
++ chip->stream_defaults[PLAYBACK]->area,
++ chip->stream_defaults[PLAYBACK]->addr);
++
++ if (chip->stream_defaults[CAPTURE]->area)
++ dma_free_coherent(card->dev,
++ MV88FX_SND_MAX_PERIODS * MV88FX_SND_MAX_PERIOD_BYTES,
++ chip->stream_defaults[CAPTURE]->area,
++ chip->stream_defaults[CAPTURE]->addr);
++
++ kfree(chip->stream_defaults[PLAYBACK]);
++ chip->stream_defaults[PLAYBACK] = NULL;
++
++ kfree(chip->stream[PLAYBACK]);
++ chip->stream[PLAYBACK] = NULL;
++
++ kfree(chip->stream_defaults[CAPTURE]);
++ chip->stream_defaults[CAPTURE] = NULL;
++
++ kfree(chip->stream[CAPTURE]);
++ chip->stream[CAPTURE] = NULL;
++
++ chip = NULL;
++}
++
++int mv88fx_snd_probe(struct platform_device *dev)
++{
++ int err = 0, irq = NO_IRQ;
++ struct snd_card *card = NULL;
++ struct resource *r = NULL;
++ static struct snd_device_ops ops = {
++ .dev_free = NULL,
++ };
++ struct mv88fx_snd_platform_data *pdata = NULL;
++
++ err = snd_card_create(-1, "mv88fx_snd", THIS_MODULE,
++ sizeof(struct mv88fx_snd_chip), &card);
++
++ if (err) {
++ snd_printk("snd_card_create failed\n");
++ return err;
++ }
++
++ card->dev = &dev->dev;
++ chip = card->private_data;
++ card->private_free = mv88fx_snd_free;
++
++ pdata = (struct mv88fx_snd_platform_data *)dev->dev.platform_data;
++
++ if (pdata->i2s_rec == 2 || pdata->spdif_rec == 2)
++ chip->stereo = 1;
++ else
++ chip->stereo = 0;
++
++ chip->audio_offset = pdata->base_offset;
++
++ r = platform_get_resource(dev, IORESOURCE_MEM, 0);
++ if (!r) {
++ snd_printk("platform_get_resource failed\n");
++ err = -ENXIO;
++ goto error;
++ }
++
++ snd_printd("chip->res =0x%x\n", (unsigned int)chip->res);
++
++ r = request_mem_region(r->start, SZ_16K, MV88FX_AUDIO_NAME);
++ if (!r) {
++ snd_printk("request_mem_region failed\n");
++ err = -EBUSY;
++ goto error;
++ }
++ chip->res = r;
++
++ chip->base = ioremap(r->start, SZ_16K);
++
++ if (!chip->base) {
++ snd_printk("ioremap failed\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ snd_printd("chip->base=0x%x r->start0x%x\n",
++ (unsigned int)chip->base, r->start);
++
++ irq = platform_get_irq(dev, 0);
++ if (irq == NO_IRQ) {
++ snd_printk("platform_get_irq failed\n");
++ err = -ENXIO;
++ goto error;
++ }
++
++ snd_printd("card = 0x%x dev 0x%x\n",
++ (unsigned int)card, (unsigned int)dev);
++ strncpy(card->driver, dev->dev.driver->name, sizeof(card->driver));
++
++ /* Allocate memory for our device */
++ chip->stream_defaults[PLAYBACK] =
++ kzalloc(sizeof(struct mv88fx_snd_stream), GFP_KERNEL);
++
++ if (chip->stream_defaults[PLAYBACK] == NULL) {
++ snd_printk("kzalloc failed for default playback\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ chip->stream_defaults[PLAYBACK]->direction = PLAYBACK;
++ chip->stream_defaults[PLAYBACK]->dev = card->dev;
++
++ chip->stream[PLAYBACK] = kzalloc(sizeof(struct mv88fx_snd_stream),
++ GFP_KERNEL);
++
++ if (chip->stream[PLAYBACK] == NULL) {
++ snd_printk("kzalloc failed for runtime playback\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ chip->stream_defaults[CAPTURE] =
++ kzalloc(sizeof(struct mv88fx_snd_stream), GFP_KERNEL);
++
++ if (chip->stream_defaults[CAPTURE] == NULL) {
++ snd_printk("kzalloc failed for capture\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ chip->stream_defaults[CAPTURE]->direction = CAPTURE;
++ chip->stream_defaults[CAPTURE]->dev = card->dev;
++
++ chip->stream[CAPTURE] = kzalloc(sizeof(struct mv88fx_snd_stream),
++ GFP_KERNEL);
++
++ if (chip->stream[CAPTURE] == NULL) {
++ snd_printk("kzalloc failed for runtime capture\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ chip->irq = irq;
++ chip->stream_defaults[PLAYBACK]->area =
++ dma_alloc_coherent(&dev->dev,
++ MV88FX_SND_MAX_PERIODS * MV88FX_SND_MAX_PERIOD_BYTES,
++ &chip->stream_defaults[PLAYBACK]->addr,
++ GFP_KERNEL);
++
++ if (!chip->stream_defaults[PLAYBACK]->area) {
++ snd_printk("dma_alloc_coherent failed for playback buffer\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ if (0 == test_memory(pdata->dram,
++ (unsigned int)chip->stream_defaults[PLAYBACK]->addr,
++ (unsigned int)MV88FX_SND_MAX_PERIODS * MV88FX_SND_MAX_PERIOD_BYTES)) {
++
++ snd_printk("error: playback buffer not in one memory window\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ chip->stream_defaults[CAPTURE]->area =
++ dma_alloc_coherent(&dev->dev,
++ MV88FX_SND_MAX_PERIODS * MV88FX_SND_MAX_PERIOD_BYTES,
++ &chip->stream_defaults[CAPTURE]->addr,
++ GFP_KERNEL);
++
++ if (!chip->stream_defaults[CAPTURE]->area) {
++ snd_printk("dma_alloc_coherent failed for capture buffer\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ if (0 == test_memory(pdata->dram,
++ (unsigned int)chip->stream_defaults[CAPTURE]->addr,
++ (unsigned int)MV88FX_SND_MAX_PERIODS * MV88FX_SND_MAX_PERIOD_BYTES)) {
++
++ snd_printk("error: playback buffer not in one memory window\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ if (request_irq(chip->irq, mv88fx_snd_interrupt, 0, MV88FX_AUDIO_NAME,
++ (void *)chip)) {
++
++ snd_printk("Unable to grab IRQ %d\n", chip->irq);
++ err = -ENOMEM;
++ goto error;
++ }
++
++ chip->ch_stat_valid = 1;
++ chip->burst = 128;
++ chip->loopback = 0;
++ chip->dco_ctrl_offst = 0x800;
++
++ err = mv88fx_snd_hw_init(card);
++ if (err) {
++ snd_printk("mv88fx_snd_hw_init failed\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ /* Set default values */
++ err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops);
++ if (err < 0) {
++ snd_printk("Creating chip device failed.\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ /* create pcm devices */
++ err = mv88fx_snd_pcm_new(card);
++ if (err < 0) {
++ snd_printk("Creating PCM device failed.\n");
++ err = -ENOMEM;
++ goto error;
++ }
++ /* create controll interfaces & switches */
++ err = mv88fx_snd_ctrl_new(card);
++ if (err < 0) {
++ snd_printk("Creating non-PCM device failed.\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ strcpy(card->driver, "mv88fx_snd");
++ strcpy(card->shortname, "Marvell mv88fx_snd");
++ sprintf(card->longname, "Marvell mv88fx_snd ALSA driver");
++
++ err = snd_card_register(card);
++ if (err < 0) {
++ snd_printk("Card registeration failed.\n");
++ err = -ENOMEM;
++ goto error;
++ }
++
++ /* if (dma_set_mask(&dev->dev, 0xFFFFFFUL) < 0) { */
++ if (dma_set_mask(&dev->dev, 0xFFFFFFFFUL) < 0) {
++ snd_printk("Could not set DMA mask\n");
++ goto error;
++ }
++
++ platform_set_drvdata(dev, card);
++ return 0;
++error:
++ if (card)
++ snd_card_free(card);
++ platform_set_drvdata(dev, NULL);
++ return err;
++}
++
++int mv88fx_snd_remove(struct platform_device *dev)
++{
++ struct snd_card *card = platform_get_drvdata(dev);
++
++ if (card)
++ snd_card_free(card);
++
++ /* FIXME: Once "../codecs/cs42l51.c" is fixed to behave as a module
++ * this should be removed */
++ codec_del_i2c_device();
++
++ platform_set_drvdata(dev, NULL);
++ return 0;
++}
++
++#define mv88fx_snd_resume NULL
++#define mv88fx_snd_suspend NULL
++
++struct platform_driver mv88fx_snd_driver = {
++ .probe = mv88fx_snd_probe,
++ .remove = mv88fx_snd_remove,
++ .suspend = mv88fx_snd_suspend,
++ .resume = mv88fx_snd_resume,
++ .driver = { .name = MV88FX_AUDIO_NAME,},
++};
++
++int __init mv88fx_snd_init(void)
++{
++ return platform_driver_register(&mv88fx_snd_driver);
++}
++
++void __exit mv88fx_snd_exit(void)
++{
++ platform_driver_unregister(&mv88fx_snd_driver);
++}
++
++MODULE_AUTHOR("Maen Suleiman <maen@marvell.com>");
++MODULE_DESCRIPTION("Marvell MV88Fx Alsa Sound driver");
++MODULE_LICENSE("GPL");
++
++module_init(mv88fx_snd_init);
++module_exit(mv88fx_snd_exit);
++
+--
+1.6.5.2
+
diff --git a/recipes/linux/linux-kirkwood_2.6.32-rc4.bb b/recipes/linux/linux-kirkwood_2.6.32-rc4.bb
index bf33146fb4..7791dc87d1 100644
--- a/recipes/linux/linux-kirkwood_2.6.32-rc4.bb
+++ b/recipes/linux/linux-kirkwood_2.6.32-rc4.bb
@@ -14,6 +14,8 @@ SRCREV = "1f76e2412659d2619ccd933d0ffd15e6253b1c4e"
SRC_URI = "git://repo.or.cz/linux-2.6/linux-2.6-openrd.git;protocol=git \
file://defconfig"
+SRC_URI_append_openrd-client += "file://0003-ARM-Kirkwood-Sound-Sound-driver-added.patch;patch=1"
+
# update machine types list for ARM architecture, only for machines that need it
do_arm_mach_types() {
# if test ${MACHINE} == openrd-base || test ${MACHINE} == openrd-client; then
diff --git a/recipes/linux/linux-mtx-1-2.4.27/49-bash4-configure.patch b/recipes/linux/linux-mtx-1-2.4.27/49-bash4-configure.patch
new file mode 100644
index 0000000000..222567d12e
--- /dev/null
+++ b/recipes/linux/linux-mtx-1-2.4.27/49-bash4-configure.patch
@@ -0,0 +1,11 @@
+--- linux/scripts/Configure-orig 2009-11-29 19:12:02.000000000 +0100
++++ linux/scripts/Configure 2009-11-29 19:12:27.000000000 +0100
+@@ -543,7 +543,7 @@
+ echo "#"
+ echo "# Using defaults found in" $DEFAULTS
+ echo "#"
+- . $DEFAULTS
++ . ./$DEFAULTS
+ sed -e 's/# \(CONFIG_[^ ]*\) is not.*/\1=n/' <$DEFAULTS >.config-is-not.$$
+ . .config-is-not.$$
+ rm .config-is-not.$$
diff --git a/recipes/linux/linux-mtx-1_2.4.27.bb b/recipes/linux/linux-mtx-1_2.4.27.bb
index 6dd7121bae..952edb0140 100644
--- a/recipes/linux/linux-mtx-1_2.4.27.bb
+++ b/recipes/linux/linux-mtx-1_2.4.27.bb
@@ -41,6 +41,7 @@ SRC_URI = "cvs://cvs:cvs@ftp.linux-mips.org/home/cvs;module=linux;tag=linux_2_4_
file://43-usbserial-27-32-backport.diff;patch=1 \
file://45-acm-tty-and-sb2.patch;patch=1 \
file://48-pptp.patch;patch=1 \
+ file://49-bash4-configure.patch;patch=1 \
file://defconfig-mtx-1"
S = "${WORKDIR}/linux"
diff --git a/recipes/linux/linux-mtx-2-2.4.27/49-bash4-configure.patch b/recipes/linux/linux-mtx-2-2.4.27/49-bash4-configure.patch
new file mode 100644
index 0000000000..222567d12e
--- /dev/null
+++ b/recipes/linux/linux-mtx-2-2.4.27/49-bash4-configure.patch
@@ -0,0 +1,11 @@
+--- linux/scripts/Configure-orig 2009-11-29 19:12:02.000000000 +0100
++++ linux/scripts/Configure 2009-11-29 19:12:27.000000000 +0100
+@@ -543,7 +543,7 @@
+ echo "#"
+ echo "# Using defaults found in" $DEFAULTS
+ echo "#"
+- . $DEFAULTS
++ . ./$DEFAULTS
+ sed -e 's/# \(CONFIG_[^ ]*\) is not.*/\1=n/' <$DEFAULTS >.config-is-not.$$
+ . .config-is-not.$$
+ rm .config-is-not.$$
diff --git a/recipes/linux/linux-mtx-2_2.4.27.bb b/recipes/linux/linux-mtx-2_2.4.27.bb
index 5b26903ec0..3379d548a1 100644
--- a/recipes/linux/linux-mtx-2_2.4.27.bb
+++ b/recipes/linux/linux-mtx-2_2.4.27.bb
@@ -43,6 +43,7 @@ SRC_URI += "cvs://cvs:cvs@ftp.linux-mips.org/home/cvs;module=linux;tag=linux_2_4
file://46-otg.patch;patch=1 \
file://47-au1000_eth.patch;patch=1 \
file://48-pptp.patch;patch=1 \
+ file://49-bash4-configure.patch;patch=1 \
file://defconfig-mtx-2"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-mtx-2-${PV}"
diff --git a/recipes/mplayer/mplayer-common.bb b/recipes/mplayer/mplayer-common.bb
index 3f3d5d2430..18da2ad342 100644
--- a/recipes/mplayer/mplayer-common.bb
+++ b/recipes/mplayer/mplayer-common.bb
@@ -11,7 +11,9 @@ HOMEPAGE = "http://www.hentges.net/misc/openzaurus/index.shtml"
######################################################################################
PV = "0.0.1"
-PR = "r1"
+PR = "r2"
+
+PACKAGE_ARCH = "all"
######################################################################################
@@ -19,12 +21,12 @@ SRC_URI = "file://mplayer.conf"
######################################################################################
-FILES_${PN} = "/usr/etc/mplayer"
+FILES_${PN} = "${sysconfdir}/mplayer"
######################################################################################
do_install() {
- install -d "${D}/usr/etc/mplayer"
+ install -d "${D}${sysconfdir}/mplayer"
- install -m 0644 ${WORKDIR}/mplayer.conf "${D}/usr/etc/mplayer"
+ install -m 0644 ${WORKDIR}/mplayer.conf "${D}${sysconfdir}/mplayer"
}
diff --git a/recipes/mplayer/mplayer_0.0+1.0rc2.bb b/recipes/mplayer/mplayer_0.0+1.0rc2.bb
index 9a16dada8c..5b1d558836 100644
--- a/recipes/mplayer/mplayer_0.0+1.0rc2.bb
+++ b/recipes/mplayer/mplayer_0.0+1.0rc2.bb
@@ -46,7 +46,7 @@ ARM_INSTRUCTION_SET = "ARM"
RCONFLICTS_${PN} = "mplayer-atty"
RREPLACES_${PN} = "mplayer-atty"
-PR = "r13"
+PR = "r14"
PARALLEL_MAKE = ""
@@ -60,8 +60,7 @@ FILES_mencoder = "${bindir}/mencoder"
inherit autotools pkgconfig
EXTRA_OECONF = " \
- --prefix=/usr \
- --mandir=${mandir} \
+ --prefix=${prefix} \
--target=${TARGET_SYS} \
\
--enable-mencoder \
diff --git a/recipes/mtd/mtd-utils.inc b/recipes/mtd/mtd-utils.inc
index dcf0e7c832..813a09fb13 100644
--- a/recipes/mtd/mtd-utils.inc
+++ b/recipes/mtd/mtd-utils.inc
@@ -17,7 +17,9 @@ do_stage () {
install -m 0644 $f ${STAGING_INCDIR}/mtd/
done
for binary in ${mtd_utils}; do
- install -m 0755 $binary ${STAGING_BINDIR}
+ if [ -f $binary ]; then
+ install -m 0755 $binary ${STAGING_BINDIR}
+ fi
done
}
@@ -25,7 +27,9 @@ do_install () {
install -d ${D}${bindir}
install -d ${D}${includedir}/mtd
for binary in ${mtd_utils}; do
- install -m 0755 $binary ${D}${bindir}
+ if [ -f $binary ]; then
+ install -m 0755 $binary ${D}${bindir}
+ fi
done
for f in ${S}/include/mtd/*.h; do
install -m 0644 $f ${D}${includedir}/mtd
diff --git a/recipes/opkg/opkg-native_svn.bb b/recipes/opkg/opkg-native_svn.bb
index 60254eaa27..1de472e156 100644
--- a/recipes/opkg/opkg-native_svn.bb
+++ b/recipes/opkg/opkg-native_svn.bb
@@ -3,7 +3,7 @@ require opkg.inc
DEPENDS = "curl-native"
PR = "${INC_PR}"
-SRC_URI += "file://opkg-libdir.patch;patch=1"
+SRC_URI += "file://opkg-libdir.patch;patch=1;maxrev=342"
target_libdir := "${libdir}"
diff --git a/recipes/opkg/opkg-nogpg_svn.bb b/recipes/opkg/opkg-nogpg_svn.bb
index 9ddc589b49..33d9987463 100644
--- a/recipes/opkg/opkg-nogpg_svn.bb
+++ b/recipes/opkg/opkg-nogpg_svn.bb
@@ -20,5 +20,8 @@ LDFLAGS_append = " -Wl,--as-needed"
do_configure_prepend() {
sed -i -e s:-Werror::g ${S}/libopkg/Makefile.am
}
+do_configure_prepend_nylon() {
+ LDFLAGS="`echo "$LDFLAGS" | sed "s/ -Wl,--as-needed//"`"
+}
DEFAULT_PREFERENCE = "-1"
diff --git a/recipes/opkg/opkg.inc b/recipes/opkg/opkg.inc
index 15ff7eba94..d31733d714 100644
--- a/recipes/opkg/opkg.inc
+++ b/recipes/opkg/opkg.inc
@@ -25,6 +25,3 @@ do_install_prepend() {
install -m 0755 ${WORKDIR}/configure ${D}${sysconfdir}/rcS.d/S98configure
}
-do_stage() {
- autotools_stage_all
-}
diff --git a/recipes/opkg/opkg_svn.bb b/recipes/opkg/opkg_svn.bb
index 676a8cb499..57b2774b65 100644
--- a/recipes/opkg/opkg_svn.bb
+++ b/recipes/opkg/opkg_svn.bb
@@ -1,5 +1,7 @@
require opkg.inc
+DEPENDS_append = " openssl"
+
PR = "${INC_PR}"
PACKAGES =+ "libopkg-dev libopkg"
diff --git a/recipes/php/php_5.2.6.bb b/recipes/php/php_5.2.6.bb
index 38e86568d8..0d9e1f42a5 100644
--- a/recipes/php/php_5.2.6.bb
+++ b/recipes/php/php_5.2.6.bb
@@ -13,7 +13,8 @@ export LIBS=" -lpthread "
EXTRA_OECONF = " --without-iconv \
--enable-discard-path \
--enable-sockets \
- --enable-pcntl \
+ --enable-shared \
+# --enable-pcntl \
--enable-memory-limit \
--enable-wddx \
--enable-embedded-mysqli \
@@ -21,7 +22,7 @@ EXTRA_OECONF = " --without-iconv \
--enable-fastcgi \
--with-zlib --with-zlib-dir=${STAGING_LIBDIR}/.. \
--with-libxml-dir=${STAGING_BINDIR_CROSS} \
-# --with-mysql="${STAGING_DIR_TARGET}${layout_exec_prefix}" \
+ --with-mysql="${STAGING_DIR_TARGET}${layout_exec_prefix}" \
# --with-mysqli = "${STAGING_BINDIR_NATIVE}/mysql_config" \
"
diff --git a/recipes/proxy-libintl/proxy-libintl_20080418.bb b/recipes/proxy-libintl/proxy-libintl_20080418.bb
index dccd3eabe2..c5336b222d 100644
--- a/recipes/proxy-libintl/proxy-libintl_20080418.bb
+++ b/recipes/proxy-libintl/proxy-libintl_20080418.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/"
SECTION = "libs"
LICENSE = "LGPL"
-PR = "r3"
+PR = "r4"
PROVIDES = "virtual/libintl"
SRC_URI = " \
@@ -26,16 +26,10 @@ do_compile() {
}
do_install() {
- install -d ${D}/usr/include
- install -d ${D}/usr/lib
-
+ install -d ${D}/${includedir}
install -m 0644 ${WORKDIR}/include/libintl.h ${D}/${includedir}
- install -m 0644 ${WORKDIR}/lib/libintl.so ${D}/${libdir}
- install -m 0644 ${WORKDIR}/lib/libintl.a ${D}/${libdir}
-}
-do_stage() {
- install -m 0644 ${WORKDIR}/include/libintl.h ${STAGING_INCDIR}
- oe_libinstall -a -so -C lib libintl ${STAGING_LIBDIR}
+ install -d ${D}/${libdir}
+ oe_libinstall -a -so -C lib libintl ${D}/${libdir}
}
diff --git a/recipes/pulseaudio/paprefs_0.9.9.bb b/recipes/pulseaudio/paprefs_0.9.9.bb
new file mode 100644
index 0000000000..2b62bce013
--- /dev/null
+++ b/recipes/pulseaudio/paprefs_0.9.9.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "PulseAudio Preferences (paprefs) is a simple GTK based configuration dialog for the PulseAudio sound server"
+LICENSE = "GPLv2"
+DEPENDS = "gconfmm libglademm libcanberra gtk+ libnotify gconf pulseaudio"
+
+inherit gnome
+
+SRC_URI = "http://0pointer.de/lennart/projects/${PN}/${PN}-${PV}.tar.gz"
+
+
diff --git a/recipes/pulseaudio/pulseaudio-0.9.19/fixbluezbuild.patch b/recipes/pulseaudio/pulseaudio-0.9.19/fixbluezbuild.patch
new file mode 100644
index 0000000000..d817a62b4d
--- /dev/null
+++ b/recipes/pulseaudio/pulseaudio-0.9.19/fixbluezbuild.patch
@@ -0,0 +1,13 @@
+Index: pulseaudio-0.9.15/src/Makefile.am
+===================================================================
+--- pulseaudio-0.9.15.orig/src/Makefile.am 2009-07-07 22:04:21.313945421 +0200
++++ pulseaudio-0.9.15/src/Makefile.am 2009-07-07 22:04:32.503184920 +0200
+@@ -1534,7 +1534,7 @@
+
+ libbluetooth_ipc_la_SOURCES = modules/bluetooth/ipc.c modules/bluetooth/ipc.h
+ libbluetooth_ipc_la_LDFLAGS = -avoid-version
+-libbluetooth_ipc_la_LIBADD = $(AM_LIBADD)libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
++libbluetooth_ipc_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
+ libbluetooth_ipc_la_CFLAGS = $(AM_CFLAGS)
+ BLUETOOTH_IPC_FILES = $(subst modules/bluetooth/,,$(libbluetooth_ipc_la_SOURCES)) rtp.h
+
diff --git a/recipes/pulseaudio/pulseaudio-0.9.19/gettext.patch b/recipes/pulseaudio/pulseaudio-0.9.19/gettext.patch
new file mode 100644
index 0000000000..37e41b9ea6
--- /dev/null
+++ b/recipes/pulseaudio/pulseaudio-0.9.19/gettext.patch
@@ -0,0 +1,127 @@
+Index: pulseaudio-0.9.19/configure.ac
+===================================================================
+--- pulseaudio-0.9.19.orig/configure.ac 2009-11-26 14:05:11.000000000 +0100
++++ pulseaudio-0.9.19/configure.ac 2009-11-26 14:06:28.304369265 +0100
+@@ -483,15 +483,15 @@
+ # Check for open64 to know if the current system does have open64() and similar functions
+ AC_CHECK_FUNCS_ONCE([open64])
+
+-#### [lib]iconv ####
++#### localization support ####
+
+ AM_ICONV
+-
+-IT_PROG_INTLTOOL([0.35.0])
+-GETTEXT_PACKAGE=pulseaudio
++IT_PROG_INTLTOOL([0.37.0])
++GETTEXT_PACKAGE=$PACKAGE
+ AC_SUBST([GETTEXT_PACKAGE])
+ AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
+-AM_GLIB_GNU_GETTEXT
++AM_GNU_GETTEXT([external])
++AM_GNU_GETTEXT_VERSION([0.17])
+
+ pulselocaledir='${prefix}/${DATADIRNAME}/locale'
+ AC_SUBST(pulselocaledir)
+Index: pulseaudio-0.9.19/src/pulse/i18n.h
+===================================================================
+--- pulseaudio-0.9.19.orig/src/pulse/i18n.h 2009-01-28 04:25:54.000000000 +0100
++++ pulseaudio-0.9.19/src/pulse/i18n.h 2009-11-26 14:06:28.304369265 +0100
+@@ -28,15 +28,13 @@
+
+ PA_C_DECL_BEGIN
+
+-#if !defined(GETTEXT_PACKAGE)
+-#error "Something is very wrong here, config.h needs to be included first"
+-#endif
++
+
+ #ifdef ENABLE_NLS
+
+ #include <libintl.h>
+
+-#define _(String) dgettext(GETTEXT_PACKAGE, String)
++#define _(String) dgettext(PACKAGE, String)
+ #ifdef gettext_noop
+ #define N_(String) gettext_noop(String)
+ #else
+Index: pulseaudio-0.9.19/src/pulse/i18n.c
+===================================================================
+--- pulseaudio-0.9.19.orig/src/pulse/i18n.c 2008-10-19 22:25:20.000000000 +0200
++++ pulseaudio-0.9.19/src/pulse/i18n.c 2009-11-26 14:06:28.304369265 +0100
+@@ -31,8 +31,8 @@
+
+ PA_ONCE_BEGIN {
+
+- bindtextdomain(GETTEXT_PACKAGE, PULSE_LOCALEDIR);
+- bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
++ bindtextdomain(PACKAGE, PULSE_LOCALEDIR);
++ bind_textdomain_codeset(PACKAGE, "UTF-8");
+
+ } PA_ONCE_END;
+ }
+Index: pulseaudio-0.9.19/src/utils/pacat.c
+===================================================================
+--- pulseaudio-0.9.19.orig/src/utils/pacat.c 2009-09-18 22:21:44.000000000 +0200
++++ pulseaudio-0.9.19/src/utils/pacat.c 2009-11-26 14:06:28.304369265 +0100
+@@ -699,7 +699,7 @@
+ };
+
+ setlocale(LC_ALL, "");
+- bindtextdomain(GETTEXT_PACKAGE, PULSE_LOCALEDIR);
++ bindtextdomain(PACKAGE, PULSE_LOCALEDIR);
+
+ bn = pa_path_get_filename(argv[0]);
+
+Index: pulseaudio-0.9.19/src/utils/pacmd.c
+===================================================================
+--- pulseaudio-0.9.19.orig/src/utils/pacmd.c 2009-08-19 04:17:06.000000000 +0200
++++ pulseaudio-0.9.19/src/utils/pacmd.c 2009-11-26 14:06:28.307708271 +0100
+@@ -63,7 +63,7 @@
+ struct pollfd pollfd[N_WATCH];
+
+ setlocale(LC_ALL, "");
+- bindtextdomain(GETTEXT_PACKAGE, PULSE_LOCALEDIR);
++ bindtextdomain(PACKAGE, PULSE_LOCALEDIR);
+
+ if (pa_pid_file_check_running(&pid, "pulseaudio") < 0) {
+ pa_log(_("No PulseAudio daemon running, or not running as session daemon."));
+Index: pulseaudio-0.9.19/src/utils/pactl.c
+===================================================================
+--- pulseaudio-0.9.19.orig/src/utils/pactl.c 2009-09-10 02:04:58.000000000 +0200
++++ pulseaudio-0.9.19/src/utils/pactl.c 2009-11-26 14:06:28.307708271 +0100
+@@ -916,7 +916,7 @@
+ };
+
+ setlocale(LC_ALL, "");
+- bindtextdomain(GETTEXT_PACKAGE, PULSE_LOCALEDIR);
++ bindtextdomain(PACKAGE, PULSE_LOCALEDIR);
+
+ bn = pa_path_get_filename(argv[0]);
+
+Index: pulseaudio-0.9.19/src/utils/pasuspender.c
+===================================================================
+--- pulseaudio-0.9.19.orig/src/utils/pasuspender.c 2009-06-08 00:35:57.000000000 +0200
++++ pulseaudio-0.9.19/src/utils/pasuspender.c 2009-11-26 14:06:28.307708271 +0100
+@@ -233,7 +233,7 @@
+ };
+
+ setlocale(LC_ALL, "");
+- bindtextdomain(GETTEXT_PACKAGE, PULSE_LOCALEDIR);
++ bindtextdomain(PACKAGE, PULSE_LOCALEDIR);
+
+ bn = pa_path_get_filename(argv[0]);
+
+Index: pulseaudio-0.9.19/src/utils/pax11publish.c
+===================================================================
+--- pulseaudio-0.9.19.orig/src/utils/pax11publish.c 2009-03-05 12:28:10.000000000 +0100
++++ pulseaudio-0.9.19/src/utils/pax11publish.c 2009-11-26 14:06:28.307708271 +0100
+@@ -50,7 +50,7 @@
+ enum { DUMP, EXPORT, IMPORT, REMOVE } mode = DUMP;
+
+ setlocale(LC_ALL, "");
+- bindtextdomain(GETTEXT_PACKAGE, PULSE_LOCALEDIR);
++ bindtextdomain(PACKAGE, PULSE_LOCALEDIR);
+
+ while ((c = getopt(argc, argv, "deiD:S:O:I:c:hr")) != -1) {
+ switch (c) {
diff --git a/recipes/pulseaudio/pulseaudio_0.9.19.bb b/recipes/pulseaudio/pulseaudio_0.9.19.bb
index cd9e46e4f2..272f16b6e3 100644
--- a/recipes/pulseaudio/pulseaudio_0.9.19.bb
+++ b/recipes/pulseaudio/pulseaudio_0.9.19.bb
@@ -2,6 +2,8 @@ require pulseaudio.inc
DEPENDS += "gdbm speex"
+PR = "${INC_PR}.0"
+
inherit gettext
SRC_URI += "\
@@ -9,6 +11,8 @@ SRC_URI += "\
file://autoconf_version.patch;patch=1 \
file://tls_m4.patch;patch=1 \
file://configure_silent_rules.patch;patch=1 \
+ file://gettext.patch;patch=1 \
+ file://fixbluezbuild.patch;patch=1 \
"
do_compile_prepend() {
diff --git a/recipes/totem/totem_2.28.1.bb b/recipes/totem/totem_2.28.1.bb
index a61f27ef76..98f47ca43e 100644
--- a/recipes/totem/totem_2.28.1.bb
+++ b/recipes/totem/totem_2.28.1.bb
@@ -8,7 +8,7 @@ LICENSE = "GPL"
PR = "r1"
-DEPENDS = " libgdata totem-pl-parser gtk+ dbus bluez-libs libglade gconf libxml2 gst-ffmpeg gst-plugins-bad gst-plugins-base"
+DEPENDS = " libunique libgdata totem-pl-parser gtk+ dbus bluez-libs libglade gconf libxml2 gst-ffmpeg gst-plugins-bad gst-plugins-base"
RDEPENDS_${PN} += "iso-codes"
RRECOMMENDS_${PN} += "gst-plugin-playbin \
gst-plugin-gconfelements \
diff --git a/recipes/u-boot/u-boot_git.bb b/recipes/u-boot/u-boot_git.bb
index ef36f42cf3..e914d78064 100644
--- a/recipes/u-boot/u-boot_git.bb
+++ b/recipes/u-boot/u-boot_git.bb
@@ -1,5 +1,5 @@
require u-boot.inc
-PR ="r36"
+PR ="r37"
FILESPATHPKG =. "u-boot-git:"
@@ -82,35 +82,43 @@ SRC_URI_overo = "git://gitorious.org/u-boot-omap3/mainline.git;branch=omap3-dev;
SRCREV_overo = "2dea1db2a3b7c12ed70bbf8ee50755089c5e5170"
PV_overo = "2009.03+${PR}+gitr${SRCREV}"
-SRC_URI_dm6446-evm = "git://arago-project.org/git/projects/u-boot-davinci.git;protocol=git"
-SRCREV_dm6446-evm = "f8d047c84137ab331c0ee2c3e94c3f1ec4228298"
-PV_dm6446-evm = "2009.05+2009.06-rc0+gitr${SRCREV}"
+# Davinci dm355-evm/dm365-evm/dm6446-evm - PSP.03.01.00.28 (Phase 3 build 28)
-SRC_URI_dm355-evm = "git://arago-project.org/git/projects/u-boot-davinci.git;protocol=git"
-SRCREV_dm355-evm = "5ae613482c9468386872cedd46f8fb389f19859d"
-PV_dm355-evm = "2009.08+gitr${SRCREV}"
+SRC_URI_dm355-evm = "git://arago-project.org/git/projects/u-boot-davinci.git;protocol=git"
+SRCREV_dm355-evm = "f8d047c84137ab331c0ee2c3e94c3f1ec4228298"
+PV_dm355-evm = "2009.10+2009.11-rc1+${PR}+gitr${SRCREV}"
-SRC_URI_dm365-evm = "git://arago-project.org/git/projects/u-boot-davinci.git;protocol=git"
-SRCREV_dm365-evm = "5ae613482c9468386872cedd46f8fb389f19859d"
-PV_dm365-evm = "2009.08+gitr${SRCREV}"
+SRC_URI_dm365-evm = "git://arago-project.org/git/projects/u-boot-davinci.git;protocol=git"
+SRCREV_dm365-evm = "f8d047c84137ab331c0ee2c3e94c3f1ec4228298"
+PV_dm365-evm = "2009.10+2009.11-rc1+${PR}+gitr${SRCREV}"
-SRC_URI_dm6467-evm = "git://arago-project.org/git/people/hemant/u-boot-dm646x.git;protocol=git"
-SRCREV_dm6467-evm = "3da7475ae13445ba89c77ea563ccdfb9df540bb7"
-PV_dm6467-evm = "2009.08+gitr${SRCREV}"
+SRC_URI_dm6446-evm = "git://arago-project.org/git/projects/u-boot-davinci.git;protocol=git"
+SRCREV_dm6446-evm = "f8d047c84137ab331c0ee2c3e94c3f1ec4228298"
+PV_dm6446-evm = "2009.10+2009.11-rc1+${PR}+gitr${SRCREV}"
-SRC_URI_dm6467t-evm = "git://arago-project.org/git/people/hemant/u-boot-dm646x.git;protocol=git"
-SRCREV_dm6467t-evm = "3da7475ae13445ba89c77ea563ccdfb9df540bb7"
-PV_dm6467t-evm = "2009.08+gitr${SRCREV}"
+# Davinci dm6467-evm/dm6467-evm - PSP.03.02.00 (DM6467 Beta)
+
+SRC_URI_dm6467-evm = "git://arago-project.org/git/people/hemant/u-boot-dm646x.git;protocol=git"
+SRCREV_dm6467-evm = "b037106746e5b942d7ef06bfcd776a7cdfe32f68"
+PV_dm6467-evm = "1.3.4+${PR}+gitr${SRCREV}"
+
+SRC_URI_dm6467t-evm = "git://arago-project.org/git/people/hemant/u-boot-dm646x.git;protocol=git"
+SRCREV_dm6467t-evm = "b037106746e5b942d7ef06bfcd776a7cdfe32f68"
+PV_dm6467t-evm = "1.3.4+${PR}+gitr${SRCREV}"
+
+# OMAPL da380-omapl137/da850-omapl138-evm/hawkboard - PSP 3.20.00.07 (Beta)
-# Corresponding to PSP 3.20.00.07 Release
SRC_URI_da830-omapl137-evm = "git://arago-project.org/git/people/sekhar/u-boot-omapl1.git;protocol=git;branch=master"
-SRCREV_da830-omapl137-evm = "0d291f2f255e6d66a78b3dc2445362a96ae39a57"
-PV_da830-omapl137-evm = "2009.08+gitr${SRCREV}"
+SRCREV_da830-omapl137-evm = "0d291f2f255e6d66a78b3dc2445362a96ae39a57"
+PV_da830-omapl137-evm = "2009.08+gitr${SRCREV}"
-# Corresponding to PSP 3.20.00.07 Release
SRC_URI_da850-omapl138-evm = "git://arago-project.org/git/people/sekhar/u-boot-omapl1.git;protocol=git;branch=master"
-SRCREV_da850-omapl138-evm = "0d291f2f255e6d66a78b3dc2445362a96ae39a57"
-PV_da850-omapl138-evm = "2009.08+gitr${SRCREV}"
+SRCREV_da850-omapl138-evm = "0d291f2f255e6d66a78b3dc2445362a96ae39a57"
+PV_da850-omapl138-evm = "2009.08+gitr${SRCREV}"
+
+SRC_URI_hawkboard = "git://arago-project.org/git/people/sekhar/u-boot-omapl1.git;protocol=git;branch=master"
+SRCREV_hawkboard = "0d291f2f255e6d66a78b3dc2445362a96ae39a57"
+PV_hawkboard = "2009.08+gitr${SRCREV}"
SRC_URI_dm355-leopard = "git://www.denx.de/git/u-boot-arm.git;protocol=git;branch=next \
file://leopardboard-support.patch;patch=1 \
diff --git a/recipes/uclibc/uclibc-0.9.30.1/o_cloexec.patch b/recipes/uclibc/uclibc-0.9.30.1/o_cloexec.patch
new file mode 100644
index 0000000000..021ca95d83
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.30.1/o_cloexec.patch
@@ -0,0 +1,272 @@
+From b8f1f91cc6d7b579fdb2370ab046565f9930aa09 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Thu, 08 Oct 2009 02:51:55 +0000
+Subject: clean up O_CLOEXEC handling
+
+Drop the "#ifndef O_CLOEXEC" cruft, enable O_CLOEXEC in most fcntl.h
+headers, and import __ASSUME_O_CLOEXEC from glibc.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+Index: uClibc-0.9.30.1/libc/pwd_grp/lckpwdf.c
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/pwd_grp/lckpwdf.c 2008-05-20 00:57:34.000000000 +0200
++++ uClibc-0.9.30.1/libc/pwd_grp/lckpwdf.c 2009-11-26 13:44:11.935757716 +0100
+@@ -75,7 +75,7 @@
+ /* Prevent problems caused by multiple threads. */
+ __UCLIBC_MUTEX_LOCK(mylock);
+
+- lock_fd = open (_PATH_PASSWD, O_WRONLY);
++ lock_fd = open (_PATH_PASSWD, O_WRONLY | O_CLOEXEC);
+ if (lock_fd == -1) {
+ /* Cannot create lock file. */
+ goto DONE;
+@@ -97,6 +97,12 @@
+ goto DONE;
+ }
+
++#ifndef __ASSUME_O_CLOEXEC
++ /* Make sure file gets correctly closed when process finished. */
++ fcntl (lock_fd, F_SETFD, FD_CLOEXEC);
++#endif
++
++
+ /* Now we have to get exclusive write access. Since multiple
+ process could try this we won't stop when it first fails.
+ Instead we set a timeout for the system call. Once the timer
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/alpha/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/fcntl.h 2009-11-26 13:35:06.744980002 +0100
+@@ -50,9 +50,7 @@
+ # define O_NOFOLLOW 0200000 /* Do not follow links. */
+ # define O_DIRECT 02000000 /* Direct disk access. */
+ # define O_NOATIME 04000000 /* Do not set atime. */
+-# if 0
+ # define O_CLOEXEC 010000000 /* Set close_on_exec. */
+-# endif
+ #endif
+
+ #ifdef __USE_LARGEFILE64
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/arm/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/arm/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/arm/bits/fcntl.h 2009-11-26 13:35:06.744980002 +0100
+@@ -50,9 +50,7 @@
+ # define O_NOFOLLOW 0100000 /* Do not follow links. */
+ # define O_DIRECT 0200000 /* Direct disk access. */
+ # define O_NOATIME 01000000 /* Do not set atime. */
+-# if 0
+ # define O_CLOEXEC 02000000 /* Set close_on_exec. */
+-# endif
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/avr32/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/avr32/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/avr32/bits/fcntl.h 2009-11-26 13:35:06.748316654 +0100
+@@ -30,6 +30,7 @@
+ # define O_DIRECTORY 00200000 /* direct disk access */
+ # define O_NOFOLLOW 00400000 /* don't follow links */
+ # define O_NOATIME 01000000 /* don't set atime */
++# define O_CLOEXEC 02000000 /* set close_on_exec */
+ #endif
+
+ #ifdef __USE_LARGEFILE64
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/bfin/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/bfin/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/bfin/bits/fcntl.h 2009-11-26 13:37:03.357878847 +0100
+@@ -49,6 +49,8 @@
+ # define O_NOFOLLOW 0100000 /* Do not follow links. */
+ # define O_DIRECT 0200000 /* Direct disk access. */
+ # define O_STREAMING 04000000/* streaming access */
++# define O_NOATIME 01000000/* don't set atime */
++# define O_CLOEXEC 02000000/* set close_on_exec *
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/cris/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/cris/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/cris/bits/fcntl.h 2009-11-26 13:35:06.748316654 +0100
+@@ -50,6 +50,7 @@
+ # define O_DIRECTORY 0200000 /* Must be a directory. */
+ # define O_NOFOLLOW 0400000 /* Do not follow links. */
+ # define O_NOATIME 01000000 /* Do not set atime. */
++# define O_CLOEXEC 02000000 /* set close_on_exec */
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/frv/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/frv/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/frv/bits/fcntl.h 2009-11-26 13:38:32.785785660 +0100
+@@ -46,6 +46,8 @@
+ # define O_DIRECTORY 0200000 /* Must be a directory. */
+ # define O_NOFOLLOW 0400000 /* Do not follow links. */
+ # define O_STREAMING 04000000/* streaming access */
++# define O_NOATIME 01000000/* don't set atime */
++# define O_CLOEXEC 02000000/* set close_on_exec */
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/hppa/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/hppa/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/hppa/bits/fcntl.h 2009-11-26 13:35:06.748316654 +0100
+@@ -50,6 +50,7 @@
+ # define O_DIRECTORY 00010000 /* Must be a directory. */
+ # define O_NOFOLLOW 00000200 /* Do not follow links. */
+ # define O_NOATIME 04000000 /* Do not set atime. */
++# define O_CLOEXEC 010000000 /* set close_on_exec */
+ #endif
+
+ #ifdef __USE_LARGEFILE64
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/i386/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/i386/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/i386/bits/fcntl.h 2009-11-26 13:35:06.748316654 +0100
+@@ -50,9 +50,7 @@
+ # define O_DIRECTORY 0200000 /* Must be a directory. */
+ # define O_NOFOLLOW 0400000 /* Do not follow links. */
+ # define O_NOATIME 01000000 /* Do not set atime. */
+-# if 0
+ # define O_CLOEXEC 02000000 /* Set close_on_exec. */
+-# endif
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/ia64/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/ia64/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/ia64/bits/fcntl.h 2009-11-26 13:35:06.748316654 +0100
+@@ -49,9 +49,7 @@
+ # define O_DIRECTORY 0200000 /* must be a directory */
+ # define O_NOFOLLOW 0400000 /* don't follow links */
+ # define O_NOATIME 01000000 /* Do not set atime. */
+-# if 0
+ # define O_CLOEXEC 02000000 /* Set close_on_exec. */
+-# endif
+ #endif
+
+ #ifdef __USE_LARGEFILE64
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/m68k/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/m68k/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/m68k/bits/fcntl.h 2009-11-26 13:35:06.748316654 +0100
+@@ -49,6 +49,7 @@
+ # define O_NOFOLLOW 0100000 /* Do not follow links. */
+ # define O_DIRECT 0200000 /* Direct disk access. */
+ # define O_NOATIME 01000000 /* Do not set atime. */
++# define O_CLOEXEC 02000000 /* set close_on_exec */
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/microblaze/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/microblaze/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/microblaze/bits/fcntl.h 2009-11-26 13:39:20.148703335 +0100
+@@ -46,6 +46,8 @@
+ # define O_NOFOLLOW 0100000 /* Do not follow links. */
+ # define O_DIRECT 0200000 /* Direct disk access. */
+ # define O_STREAMING 04000000/* streaming access */
++# define O_NOATIME 01000000/* Do not set atime. */
++# define O_CLOEXEC 02000000/* set close_on_exec */
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/mips/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/fcntl.h 2009-11-26 13:35:06.748316654 +0100
+@@ -51,6 +51,7 @@
+ # define O_DIRECT 0x8000 /* Direct disk access hint. */
+ # define O_DIRECTORY 0x10000 /* Must be a directory. */
+ # define O_NOATIME 0x40000 /* Do not set atime. */
++# define O_CLOEXEC 02000000 /* set close_on_exec */
+ #endif
+
+ /* For now Linux has no synchronisity options for data and read operations.
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/powerpc/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/fcntl.h 2009-11-26 13:35:06.748316654 +0100
+@@ -50,9 +50,7 @@
+ # define O_DIRECTORY 040000 /* Must be a directory. */
+ # define O_NOFOLLOW 0100000 /* Do not follow links. */
+ # define O_NOATIME 01000000 /* Do not set atime. */
+-# if 0
+ # define O_CLOEXEC 02000000 /* Set close_on_exec. */
+-# endif
+ #endif
+
+ #ifdef __USE_LARGEFILE64
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/sh/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/sh/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/sh/bits/fcntl.h 2009-11-26 13:35:06.748316654 +0100
+@@ -50,9 +50,7 @@
+ # define O_DIRECTORY 0200000 /* Must be a directory. */
+ # define O_NOFOLLOW 0400000 /* Do not follow links. */
+ # define O_NOATIME 01000000 /* Do not set atime. */
+-# if 0
+ # define O_CLOEXEC 02000000 /* Set close_on_exec. */
+-# endif
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/sh64/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/sh64/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/sh64/bits/fcntl.h 2009-11-26 13:37:47.554540700 +0100
+@@ -46,6 +46,8 @@
+ # define O_DIRECTORY 0200000 /* Must be a directory. */
+ # define O_NOFOLLOW 0400000 /* Do not follow links. */
+ # define O_STREAMING 04000000/* streaming access */
++# define O_NOATIME 01000000/* Do not set atime. */
++# define O_CLOEXEC 02000000/* set close_on_exec */
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/sparc/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/fcntl.h 2009-11-26 13:35:06.751656343 +0100
+@@ -49,9 +49,7 @@
+ # define O_NOFOLLOW 0x20000 /* don't follow links */
+ # define O_DIRECT 0x100000 /* direct disk access hint */
+ # define O_NOATIME 0x200000 /* Do not set atime. */
+-# if 0
+ # define O_CLOEXEC 0x400000 /* Set close_on_exit. */
+-# endif
+ #endif
+
+ #ifdef __USE_LARGEFILE64
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/x86_64/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/x86_64/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/x86_64/bits/fcntl.h 2009-11-26 13:35:06.751656343 +0100
+@@ -50,9 +50,7 @@
+ # define O_DIRECTORY 0200000 /* Must be a directory. */
+ # define O_NOFOLLOW 0400000 /* Do not follow links. */
+ # define O_NOATIME 01000000 /* Do not set atime. */
+-# if 0
+ # define O_CLOEXEC 02000000 /* Set close_on_exec. */
+-# endif
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
+Index: uClibc-0.9.30.1/libc/sysdeps/linux/xtensa/bits/fcntl.h
+===================================================================
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/xtensa/bits/fcntl.h 2008-11-15 16:55:31.000000000 +0100
++++ uClibc-0.9.30.1/libc/sysdeps/linux/xtensa/bits/fcntl.h 2009-11-26 13:35:06.751656343 +0100
+@@ -50,6 +50,7 @@
+ # define O_DIRECTORY 0200000 /* Must be a directory. */
+ # define O_NOFOLLOW 0400000 /* Do not follow links. */
+ # define O_NOATIME 01000000 /* Do not set atime. */
++# define O_CLOEXEC 02000000 /* set close_on_exec */
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
diff --git a/recipes/uclibc/uclibc_0.9.30.1.bb b/recipes/uclibc/uclibc_0.9.30.1.bb
index c32b2f1d82..47b44cde31 100644
--- a/recipes/uclibc/uclibc_0.9.30.1.bb
+++ b/recipes/uclibc/uclibc_0.9.30.1.bb
@@ -9,7 +9,7 @@
UCLIBC_BASE ?= "0.9.30.1"
require uclibc.inc
-PR = "${INC_PR}.3"
+PR = "${INC_PR}.4"
PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
@@ -23,6 +23,7 @@ SRC_URI += "file://uClibc.machine file://uClibc.distro \
file://uclibc-c99-ldbl-math.patch;patch=1 \
file://Use-__always_inline-instead-of-__inline__.patch;patch=1 \
file://installfix.patch;patch=1 \
+ file://o_cloexec.patch;patch=1 \
"
#recent versions uclibc require real kernel headers
PACKAGE_ARCH = "${MACHINE_ARCH}"