diff options
author | Koen Kooi <koen@openembedded.org> | 2009-01-08 16:28:24 +0100 |
---|---|---|
committer | Koen Kooi <koen@openembedded.org> | 2009-01-08 16:28:24 +0100 |
commit | d91574407fd15b702d9abdb05df3449049c38b40 (patch) | |
tree | b3a3bff232ad2fba39d90c4325d2396fc3493c17 /packages/linux/linux-omap-2.6.28 | |
parent | 22f6ec65bfc2332bd0c638ae378d0e4c67992f2d (diff) |
linux-omap 2.6.28, git: improve graphics, fix sounds support
Diffstat (limited to 'packages/linux/linux-omap-2.6.28')
5 files changed, 330 insertions, 2 deletions
diff --git a/packages/linux/linux-omap-2.6.28/0001-ASoC-Add-support-for-OMAP3-EVM.patch b/packages/linux/linux-omap-2.6.28/0001-ASoC-Add-support-for-OMAP3-EVM.patch new file mode 100644 index 0000000000..a76e96e444 --- /dev/null +++ b/packages/linux/linux-omap-2.6.28/0001-ASoC-Add-support-for-OMAP3-EVM.patch @@ -0,0 +1,206 @@ +From c1dad0b6b434300ae64c902d11611c54c513ea10 Mon Sep 17 00:00:00 2001 +From: Anuj Aggarwal <anuj.aggarwal@ti.com> +Date: Fri, 21 Nov 2008 17:41:03 +0530 +Subject: [PATCH] ASoC: Add support for OMAP3 EVM + +This patch adds ALSA SoC support for OMAP3 EVM using TWL4030 audio codec. + +Signed-off-by: Anuj Aggarwal <anuj.aggarwal@ti.com> +--- + sound/soc/omap/Kconfig | 8 +++ + sound/soc/omap/Makefile | 3 +- + sound/soc/omap/omap3evm.c | 147 +++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 157 insertions(+), 1 deletions(-) + create mode 100644 sound/soc/omap/omap3evm.c + +diff --git a/sound/soc/omap/Kconfig b/sound/soc/omap/Kconfig +index 0daeee4..deb6ba9 100644 +--- a/sound/soc/omap/Kconfig ++++ b/sound/soc/omap/Kconfig +@@ -22,6 +22,14 @@ config SND_OMAP_SOC_OMAP3_BEAGLE + help + Say Y if you want to add support for SoC audio on the Beagleboard. + ++config SND_OMAP_SOC_OMAP3EVM ++ tristate "SoC Audio support for OMAP3EVM board" ++ depends on SND_OMAP_SOC && MACH_OMAP3EVM ++ select SND_OMAP_SOC_MCBSP ++ select SND_SOC_TWL4030 ++ help ++ Say Y if you want to add support for SoC audio on the omap3evm board. ++ + config SND_OMAP_SOC_OSK5912 + tristate "SoC Audio support for omap osk5912" + depends on SND_OMAP_SOC && MACH_OMAP_OSK +diff --git a/sound/soc/omap/Makefile b/sound/soc/omap/Makefile +index 4bae404..ef31c25 100644 +--- a/sound/soc/omap/Makefile ++++ b/sound/soc/omap/Makefile +@@ -10,9 +10,10 @@ snd-soc-n810-objs := n810.o + snd-soc-omap3beagle-objs := omap3beagle.o + snd-soc-osk5912-objs := osk5912.o + snd-soc-overo-objs := overo.o ++snd-soc-omap3evm-objs := omap3evm.o + + obj-$(CONFIG_SND_OMAP_SOC_N810) += snd-soc-n810.o + obj-$(CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE) += snd-soc-omap3beagle.o + obj-$(CONFIG_SND_OMAP_SOC_OSK5912) += snd-soc-osk5912.o + obj-$(CONFIG_SND_OMAP_SOC_OVERO) += snd-soc-overo.o +- ++obj-$(CONFIG_MACH_OMAP3EVM) += snd-soc-omap3evm.o +diff --git a/sound/soc/omap/omap3evm.c b/sound/soc/omap/omap3evm.c +new file mode 100644 +index 0000000..570af55 +--- /dev/null ++++ b/sound/soc/omap/omap3evm.c +@@ -0,0 +1,147 @@ ++/* ++ * omap3evm.c -- ALSA SoC support for OMAP3 EVM ++ * ++ * Author: Anuj Aggarwal <anuj.aggarwal@ti.com> ++ * ++ * Based on sound/soc/omap/beagle.c by Steve Sakoman ++ * ++ * Copyright (C) 2008 Texas Instruments, Incorporated ++ * ++ * 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 version 2. ++ * ++ * This program is distributed "as is" WITHOUT ANY WARRANTY of any kind, ++ * whether express or implied; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * General Public License for more details. ++ */ ++ ++#include <linux/clk.h> ++#include <linux/platform_device.h> ++#include <sound/core.h> ++#include <sound/pcm.h> ++#include <sound/soc.h> ++#include <sound/soc-dapm.h> ++ ++#include <asm/mach-types.h> ++#include <mach/hardware.h> ++#include <mach/gpio.h> ++#include <mach/mcbsp.h> ++ ++#include "omap-mcbsp.h" ++#include "omap-pcm.h" ++#include "../codecs/twl4030.h" ++ ++static int omap3evm_hw_params(struct snd_pcm_substream *substream, ++ struct snd_pcm_hw_params *params) ++{ ++ struct snd_soc_pcm_runtime *rtd = substream->private_data; ++ struct snd_soc_dai *codec_dai = rtd->dai->codec_dai; ++ struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; ++ int ret; ++ ++ /* Set codec DAI configuration */ ++ ret = snd_soc_dai_set_fmt(codec_dai, ++ SND_SOC_DAIFMT_I2S | ++ SND_SOC_DAIFMT_NB_NF | ++ SND_SOC_DAIFMT_CBM_CFM); ++ if (ret < 0) { ++ printk(KERN_ERR "can't set codec DAI configuration\n"); ++ return ret; ++ } ++ ++ /* Set cpu DAI configuration */ ++ ret = snd_soc_dai_set_fmt(cpu_dai, ++ SND_SOC_DAIFMT_I2S | ++ SND_SOC_DAIFMT_NB_NF | ++ SND_SOC_DAIFMT_CBM_CFM); ++ if (ret < 0) { ++ printk(KERN_ERR "can't set cpu DAI configuration\n"); ++ return ret; ++ } ++ ++ /* Set the codec system clock for DAC and ADC */ ++ ret = snd_soc_dai_set_sysclk(codec_dai, 0, 26000000, ++ SND_SOC_CLOCK_IN); ++ if (ret < 0) { ++ printk(KERN_ERR "can't set codec system clock\n"); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static struct snd_soc_ops omap3evm_ops = { ++ .hw_params = omap3evm_hw_params, ++}; ++ ++/* Digital audio interface glue - connects codec <--> CPU */ ++static struct snd_soc_dai_link omap3evm_dai = { ++ .name = "TWL4030", ++ .stream_name = "TWL4030", ++ .cpu_dai = &omap_mcbsp_dai[0], ++ .codec_dai = &twl4030_dai, ++ .ops = &omap3evm_ops, ++}; ++ ++/* Audio machine driver */ ++static struct snd_soc_machine snd_soc_machine_omap3evm = { ++ .name = "omap3evm", ++ .dai_link = &omap3evm_dai, ++ .num_links = 1, ++}; ++ ++/* Audio subsystem */ ++static struct snd_soc_device omap3evm_snd_devdata = { ++ .machine = &snd_soc_machine_omap3evm, ++ .platform = &omap_soc_platform, ++ .codec_dev = &soc_codec_dev_twl4030, ++}; ++ ++static struct platform_device *omap3evm_snd_device; ++ ++static int __init omap3evm_soc_init(void) ++{ ++ int ret; ++ ++ if (!machine_is_omap3evm()) { ++ pr_debug("Not OMAP3 EVM!\n"); ++ return -ENODEV; ++ } ++ pr_info("OMAP3 EVM SoC init\n"); ++ ++ omap3evm_snd_device = platform_device_alloc("soc-audio", -1); ++ if (!omap3evm_snd_device) { ++ printk(KERN_ERR "Platform device allocation failed\n"); ++ return -ENOMEM; ++ } ++ ++ platform_set_drvdata(omap3evm_snd_device, &omap3evm_snd_devdata); ++ omap3evm_snd_devdata.dev = &omap3evm_snd_device->dev; ++ *(unsigned int *)omap3evm_dai.cpu_dai->private_data = 1; /* McBSP2 */ ++ ++ ret = platform_device_add(omap3evm_snd_device); ++ if (ret) ++ goto err1; ++ ++ return 0; ++ ++err1: ++ printk(KERN_ERR "Unable to add platform device\n"); ++ platform_device_put(omap3evm_snd_device); ++ ++ return ret; ++} ++ ++static void __exit omap3evm_soc_exit(void) ++{ ++ platform_device_unregister(omap3evm_snd_device); ++} ++ ++module_init(omap3evm_soc_init); ++module_exit(omap3evm_soc_exit); ++ ++MODULE_AUTHOR("Anuj Aggarwal <anuj.aggarwal@ti.com>"); ++MODULE_DESCRIPTION("ALSA SoC OMAP3 EVM"); ++MODULE_LICENSE("GPL"); +-- +1.5.6.5 + diff --git a/packages/linux/linux-omap-2.6.28/0012-DSS-Add-comments-to-FAKE_VSYNC-to-make-things-more.patch b/packages/linux/linux-omap-2.6.28/0012-DSS-Add-comments-to-FAKE_VSYNC-to-make-things-more.patch new file mode 100644 index 0000000000..85e7952c8d --- /dev/null +++ b/packages/linux/linux-omap-2.6.28/0012-DSS-Add-comments-to-FAKE_VSYNC-to-make-things-more.patch @@ -0,0 +1,27 @@ +From 942267b679b7f60b33e034ee29e313925cfbcae0 Mon Sep 17 00:00:00 2001 +From: Tomi Valkeinen <tomi.valkeinen@nokia.com> +Date: Wed, 7 Jan 2009 17:20:24 +0200 +Subject: [PATCH] DSS: Add comments to FAKE_VSYNC to make things more clear + +--- + arch/arm/plat-omap/dss/Kconfig | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +diff --git a/arch/arm/plat-omap/dss/Kconfig b/arch/arm/plat-omap/dss/Kconfig +index 6b342df..f0b1f1c 100644 +--- a/arch/arm/plat-omap/dss/Kconfig ++++ b/arch/arm/plat-omap/dss/Kconfig +@@ -46,7 +46,9 @@ config OMAP2_DSS_FAKE_VSYNC + default n + help + If this is selected, DSI will fake a DISPC VSYNC interrupt +- when DSI has sent a frame. ++ when DSI has sent a frame. This is only needed with DSI or ++ RFBI displays using manual mode, and you want VSYNC to time, ++ for example, animation. + + config OMAP2_DSS_MIN_FCK_PER_PCK + int "Minimum FCK/PCK ratio (for scaling)" +-- +1.5.6.3 + diff --git a/packages/linux/linux-omap-2.6.28/0013-DSS-OMAPFB-remove-extra-spaces.patch b/packages/linux/linux-omap-2.6.28/0013-DSS-OMAPFB-remove-extra-spaces.patch new file mode 100644 index 0000000000..fac269a319 --- /dev/null +++ b/packages/linux/linux-omap-2.6.28/0013-DSS-OMAPFB-remove-extra-spaces.patch @@ -0,0 +1,25 @@ +From 17f3d30a218efba9bf947a667c9c1fa2f4286794 Mon Sep 17 00:00:00 2001 +From: Tomi Valkeinen <tomi.valkeinen@nokia.com> +Date: Wed, 7 Jan 2009 17:40:59 +0200 +Subject: [PATCH] OMAPFB: remove extra spaces + +--- + drivers/video/omap2/omapfb-sysfs.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/drivers/video/omap2/omapfb-sysfs.c b/drivers/video/omap2/omapfb-sysfs.c +index 4383e44..0e153b9 100644 +--- a/drivers/video/omap2/omapfb-sysfs.c ++++ b/drivers/video/omap2/omapfb-sysfs.c +@@ -337,7 +337,7 @@ static ssize_t show_overlays(struct device *dev, struct device_attribute *attr, + break; + + l += snprintf(buf + l, size - l, +- "%s t:%s x:%d y:%d iw:%d ih:%d w: %d h: %d e:%d\n", ++ "%s t:%s x:%d y:%d iw:%d ih:%d w:%d h:%d e:%d\n", + ovl->name, + mgr ? mgr->name : "none", + ovl->info.pos_x, +-- +1.5.6.3 + diff --git a/packages/linux/linux-omap-2.6.28/0014-DSS-fix-clk_get_usecount.patch b/packages/linux/linux-omap-2.6.28/0014-DSS-fix-clk_get_usecount.patch new file mode 100644 index 0000000000..a935709a9e --- /dev/null +++ b/packages/linux/linux-omap-2.6.28/0014-DSS-fix-clk_get_usecount.patch @@ -0,0 +1,67 @@ +From ba234fff55f8a1ef96b57ce2e18ab90df76f2c82 Mon Sep 17 00:00:00 2001 +From: Tomi Valkeinen <tomi.valkeinen@nokia.com> +Date: Thu, 8 Jan 2009 12:01:39 +0200 +Subject: [PATCH] DSS: fix clk_get_usecount + +--- + arch/arm/plat-omap/dss/dss.c | 12 ++++++------ + 1 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/arch/arm/plat-omap/dss/dss.c b/arch/arm/plat-omap/dss/dss.c +index 4a403c1..b9f35d8 100644 +--- a/arch/arm/plat-omap/dss/dss.c ++++ b/arch/arm/plat-omap/dss/dss.c +@@ -236,7 +236,7 @@ ssize_t dss_print_clocks(char *buf, ssize_t size) + l += snprintf(buf + l, size - l, "%-15s\t%lu\t%d\n", + clocks[i]->name, + clk_get_rate(clocks[i]), +- clk_get_usecount(clocks[i])); ++ clocks[i]->usecount); + } + + return l; +@@ -590,28 +590,28 @@ void dss_exit(void) + free_irq(INT_24XX_DSS_IRQ, NULL); + + /* these should be removed at some point */ +- c = clk_get_usecount(dss.dss_ick); ++ c = dss.dss_ick->usecount; + if (c > 0) { + DSSERR("warning: dss_ick usecount %d, disabling\n", c); + while (c-- > 0) + clk_disable(dss.dss_ick); + } + +- c = clk_get_usecount(dss.dss1_fck); ++ c = dss.dss1_fck->usecount; + if (c > 0) { + DSSERR("warning: dss1_fck usecount %d, disabling\n", c); + while (c-- > 0) + clk_disable(dss.dss1_fck); + } + +- c = clk_get_usecount(dss.dss2_fck); ++ c = dss.dss2_fck->usecount; + if (c > 0) { + DSSERR("warning: dss2_fck usecount %d, disabling\n", c); + while (c-- > 0) + clk_disable(dss.dss2_fck); + } + +- c = clk_get_usecount(dss.dss_54m_fck); ++ c = dss.dss_54m_fck->usecount; + if (c > 0) { + DSSERR("warning: dss_54m_fck usecount %d, disabling\n", c); + while (c-- > 0) +@@ -619,7 +619,7 @@ void dss_exit(void) + } + + if (dss.dss_96m_fck) { +- c = clk_get_usecount(dss.dss_96m_fck); ++ c = dss.dss_96m_fck->usecount; + if (c > 0) { + DSSERR("warning: dss_96m_fck usecount %d, disabling\n", + c); +-- +1.5.6.3 + diff --git a/packages/linux/linux-omap-2.6.28/omap3evm/defconfig b/packages/linux/linux-omap-2.6.28/omap3evm/defconfig index be0b2cfb44..e5399f3141 100644 --- a/packages/linux/linux-omap-2.6.28/omap3evm/defconfig +++ b/packages/linux/linux-omap-2.6.28/omap3evm/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.28-omap1 -# Wed Jan 7 14:36:25 2009 +# Thu Jan 8 16:06:45 2009 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -207,7 +207,7 @@ CONFIG_OMAP2_DSS_VENC=y # CONFIG_OMAP2_DSS_SDI is not set CONFIG_OMAP2_DSS_DSI=y CONFIG_OMAP2_DSS_USE_DSI_PLL=y -CONFIG_OMAP2_DSS_FAKE_VSYNC=n +# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=1 CONFIG_ARCH_OMAP34XX=y CONFIG_ARCH_OMAP3430=y @@ -1443,7 +1443,10 @@ CONFIG_SND_USB_CAIAQ=m CONFIG_SND_USB_CAIAQ_INPUT=y CONFIG_SND_SOC=y CONFIG_SND_OMAP_SOC=y +CONFIG_SND_OMAP_SOC_MCBSP=y +CONFIG_SND_OMAP_SOC_OMAP3EVM=y # CONFIG_SND_SOC_ALL_CODECS is not set +CONFIG_SND_SOC_TWL4030=y # CONFIG_SOUND_PRIME is not set CONFIG_HID_SUPPORT=y CONFIG_HID=y |