[oe-commits] org.oe.dev merge of '4d6dbbd6409e2a93093659bf415ba3b79f7bc3f6'

mickeyl commit oe at amethyst.openembedded.net
Tue May 20 22:55:19 UTC 2008


merge of '4d6dbbd6409e2a93093659bf415ba3b79f7bc3f6'
     and 'b2a4a7fdee4979edfc6a17d3e6ff9a7ffeeb2ab9'

Author: mickeyl at openembedded.org
Branch: org.openembedded.dev
Revision: 879b29ca3c325fbb878a73b7b91dcd1f876468d5
ViewMTN: http://monotone.openembedded.org/revision/info/879b29ca3c325fbb878a73b7b91dcd1f876468d5
Files:
1
packages/python/python-efl.inc
contrib/mtn-bisect.sh
packages/linux/linux-omap2-git/beagleboard/00001-mcbsp-transform.patch
packages/linux/linux-omap2-git/beagleboard/00002-mcbsp-omap1.patch
packages/linux/linux-omap2-git/beagleboard/00003-mcbsp-omap3-clock.patch
packages/linux/linux-omap2-git/beagleboard/00004-omap2-mcbsp.patch
packages/linux/linux-omap2-git/beagleboard/0001-ASoC-OMAP-Add-basic-support-for-OMAP34xx-in-McBSP.patch
packages/u-boot/files/sffsdr-u-boot.patch
packages/dsplink/dsplink_1.50.bb
packages/linux/linux-omap2-git/beagleboard/defconfig
packages/linux/linux-omap2_git.bb
packages/u-boot/u-boot_git.bb
packages/vnc/x11vnc_0.9.3.bb
mtn:execute
true
Diffs:

#
# mt diff -r4d6dbbd6409e2a93093659bf415ba3b79f7bc3f6 -r879b29ca3c325fbb878a73b7b91dcd1f876468d5
#
#
#
# patch "packages/python/python-efl.inc"
#  from [7a1e1c981a4d514c24d0cf695b0c335614b36bbb]
#    to [6829bace05e4f24bbf9f5d577fddd3e53ee419e3]
#
============================================================
--- packages/python/python-efl.inc	7a1e1c981a4d514c24d0cf695b0c335614b36bbb
+++ packages/python/python-efl.inc	6829bace05e4f24bbf9f5d577fddd3e53ee419e3
@@ -15,13 +15,13 @@ do_install_append() {
 do_install_append() {
 	if [ -e examples ]; then
 		for i in `find examples -name "*.edc"`; do
-			pushd `dirname $i`
+			cd ${S}/`dirname $i`
 			echo "Generating .edj file for $i..."
 			edje_cc `basename $i`
 			echo "Removing sources in this directory..."
 			rm -f *.edc *.png *.ttf *.jpeg
-			popd
 		done
+		cd ${S}
 		install -d ${D}${datadir}/${PN}/
 		cp -a examples ${D}${datadir}/${PN}/
 		find ${D}${datadir}/${PN}/examples -name "CVS" | xargs rm -rf


#
# mt diff -rb2a4a7fdee4979edfc6a17d3e6ff9a7ffeeb2ab9 -r879b29ca3c325fbb878a73b7b91dcd1f876468d5
#
#
#
# add_file "contrib/mtn-bisect.sh"
#  content [230e3a1f735e3f6f46b4f117657494175ee86928]
# 
# add_file "packages/linux/linux-omap2-git/beagleboard/00001-mcbsp-transform.patch"
#  content [f31603696f1a604d2fc6f2bd863fbda17bf1d04b]
# 
# add_file "packages/linux/linux-omap2-git/beagleboard/00002-mcbsp-omap1.patch"
#  content [7a3f0e554d44ad43bee539b08f1553c6bd221ba4]
# 
# add_file "packages/linux/linux-omap2-git/beagleboard/00003-mcbsp-omap3-clock.patch"
#  content [0535b86a1ff751f854c6f6b9a47caaae5987325c]
# 
# add_file "packages/linux/linux-omap2-git/beagleboard/00004-omap2-mcbsp.patch"
#  content [125c19af3d820d497bf81db6c861752782cba591]
# 
# add_file "packages/linux/linux-omap2-git/beagleboard/0001-ASoC-OMAP-Add-basic-support-for-OMAP34xx-in-McBSP.patch"
#  content [c8f4b8935cd2abedc7760cf9594494dc4faa445c]
# 
# add_file "packages/u-boot/files/sffsdr-u-boot.patch"
#  content [67e25c07eec4f1caf5f01ac25be7aee562717fc4]
# 
# patch "packages/dsplink/dsplink_1.50.bb"
#  from [a2dba60ef70a6be005343a5420ec39fe0d6b7126]
#    to [ba3fbbc36f80f856194516e3676c4be8ff95593f]
# 
# patch "packages/linux/linux-omap2-git/beagleboard/defconfig"
#  from [964a8dabe7c00485c6abaca8fd364eb631810716]
#    to [e416b8dd7c16fdaef29109914cf909b457592d00]
# 
# patch "packages/linux/linux-omap2_git.bb"
#  from [91d936879c9fac0d051b7c80b290a712b953d3e0]
#    to [46fad621069aaf808e1a057528c82728198d9499]
# 
# patch "packages/u-boot/u-boot_git.bb"
#  from [251b297b563be3a80a6de08089c0d3f90828d595]
#    to [e9764f3c6c5b495e1807c9f07081a24094765740]
# 
# patch "packages/vnc/x11vnc_0.9.3.bb"
#  from [aa732c8e4a44358ecadf82dfb92bfb011ab2bd20]
#    to [bb849990fcab1874e7cac9f59f3fd7133c0df9ab]
# 
#   set "contrib/mtn-bisect.sh"
#  attr "mtn:execute"
# value "true"
#
============================================================
--- contrib/mtn-bisect.sh	230e3a1f735e3f6f46b4f117657494175ee86928
+++ contrib/mtn-bisect.sh	230e3a1f735e3f6f46b4f117657494175ee86928
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+# the revision that we noticed does not longer build
+LATEST_BAD_REV=$1
+
+# an older revision that is known to build
+LAST_KNOWN_GOOD_REV=$2
+
+# count the number of commits 
+COUNT=`mtn log --brief --no-merges --no-graph --to p:$LAST_KNOWN_GOOD_REV --from $LATEST_BAD_REV | tee /tmp/candidates.txt | wc -l`
+
+echo $COUNT commits
+
+# if COUNT == 1 stop
+
+# make binary sections
+COUNT=$(($(($COUNT + 1)) / 2))
+
+CANDIDATE_REV=`cat /tmp/candidates.txt | head -n $COUNT | tail -n 1 | sed -e 's@\([a-f0-9]*\) .*@\1@'`
+
+echo $CANDIDATE_REV
+
+echo mtn up -r $CANDIDATE_REV
+mtn up -r $CANDIDATE_REV
+
+
============================================================
--- packages/linux/linux-omap2-git/beagleboard/00001-mcbsp-transform.patch	f31603696f1a604d2fc6f2bd863fbda17bf1d04b
+++ packages/linux/linux-omap2-git/beagleboard/00001-mcbsp-transform.patch	f31603696f1a604d2fc6f2bd863fbda17bf1d04b
@@ -0,0 +1,1160 @@
+From: Eduardo Valentin <eduardo.valentin at indt.org.br>
+
+This patch transform mcbsp code into a very initial
+implementation of a platform driver.
+
+It also gets ride of ifdefs on mcbsp.c code.
+To do it, a platform data structure was defined.
+
+Platform devices are located in arch/arm/plat-omap/devices.c
+
+Signed-off-by: Eduardo Valentin <eduardo.valentin at indt.org.br>
+---
+ arch/arm/plat-omap/devices.c      |   45 +++
+ arch/arm/plat-omap/mcbsp.c        |  660 ++++++++++++++-----------------------
+ include/asm-arm/arch-omap/mcbsp.h |   73 ++++-
+ 3 files changed, 367 insertions(+), 411 deletions(-)
+
+diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c
+index 099182b..b3e0147 100644
+--- a/arch/arm/plat-omap/devices.c
++++ b/arch/arm/plat-omap/devices.c
+@@ -27,6 +27,7 @@
+ #include <asm/arch/gpio.h>
+ #include <asm/arch/menelaus.h>
+ #include <asm/arch/dsp_common.h>
++#include <asm/arch/mcbsp.h>
+ 
+ #if	defined(CONFIG_OMAP_DSP) || defined(CONFIG_OMAP_DSP_MODULE)
+ 
+@@ -150,6 +151,49 @@ static inline void omap_init_kp(void) {}
+ #endif
+ 
+ /*-------------------------------------------------------------------------*/
++#if defined(CONFIG_OMAP_MCBSP) || defined(CONFIG_OMAP_MCBSP_MODULE)
++
++static struct platform_device omap_mcbsp_devices[OMAP_MAX_MCBSP_COUNT];
++static int mcbsps_configured;
++
++void omap_mcbsp_register_board_cfg(struct omap_mcbsp_platform_data *config,
++					int size)
++{
++	int i;
++
++	if (size > OMAP_MAX_MCBSP_COUNT) {
++		printk(KERN_WARNING "Registered too many McBSPs platform_data."
++			" Using maximum (%d) available.\n",
++			OMAP_MAX_MCBSP_COUNT);
++		size = OMAP_MAX_MCBSP_COUNT;
++	}
++
++	for (i = 0; i < size; i++) {
++		struct platform_device *new_mcbsp = &omap_mcbsp_devices[i];
++		new_mcbsp->name = "omap-mcbsp";
++		new_mcbsp->id = i + 1;
++		new_mcbsp->dev.platform_data = &config[i];
++	}
++	mcbsps_configured = size;
++}
++
++static void __init omap_init_mcbsp(void)
++{
++	int i;
++
++	for (i = 0; i < mcbsps_configured; i++)
++		platform_device_register(&omap_mcbsp_devices[i]);
++}
++#else
++void omap_mcbsp_register_board_cfg(struct omap_mcbsp_platform_data *config,
++					int size)
++{  }
++
++static inline void __init omap_init_mcbsp(void)
++{  }
++#endif
++
++/*-------------------------------------------------------------------------*/
+ 
+ #if	defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE) \
+ 	|| defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE)
+@@ -511,6 +555,7 @@ static int __init omap_init_devices(void)
+ 	 */
+ 	omap_init_dsp();
+ 	omap_init_kp();
++	omap_init_mcbsp();
+ 	omap_init_mmc();
+ 	omap_init_uwire();
+ 	omap_init_wdt();
+diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c
+index 053de31..5536223 100644
+--- a/arch/arm/plat-omap/mcbsp.c
++++ b/arch/arm/plat-omap/mcbsp.c
+@@ -15,6 +15,7 @@
+ #include <linux/module.h>
+ #include <linux/init.h>
+ #include <linux/device.h>
++#include <linux/platform_device.h>
+ #include <linux/wait.h>
+ #include <linux/completion.h>
+ #include <linux/interrupt.h>
+@@ -25,83 +26,53 @@
+ #include <linux/irq.h>
+ 
+ #include <asm/arch/dma.h>
+-#include <asm/arch/mux.h>
+-#include <asm/arch/irqs.h>
+-#include <asm/arch/dsp_common.h>
+ #include <asm/arch/mcbsp.h>
+ 
+-#ifdef CONFIG_MCBSP_DEBUG
+-#define DBG(x...)	printk(x)
+-#else
+-#define DBG(x...)			do { } while (0)
+-#endif
+-
+-struct omap_mcbsp {
+-	u32                          io_base;
+-	u8                           id;
+-	u8                           free;
+-	omap_mcbsp_word_length       rx_word_length;
+-	omap_mcbsp_word_length       tx_word_length;
+-
+-	omap_mcbsp_io_type_t         io_type; /* IRQ or poll */
+-	/* IRQ based TX/RX */
+-	int                          rx_irq;
+-	int                          tx_irq;
+-
+-	/* DMA stuff */
+-	u8                           dma_rx_sync;
+-	short                        dma_rx_lch;
+-	u8                           dma_tx_sync;
+-	short                        dma_tx_lch;
+-
+-	/* Completion queues */
+-	struct completion            tx_irq_completion;
+-	struct completion            rx_irq_completion;
+-	struct completion            tx_dma_completion;
+-	struct completion            rx_dma_completion;
+-
+-	/* Protect the field .free, while checking if the mcbsp is in use */
+-	spinlock_t                   lock;
+-};
+-
+ static struct omap_mcbsp mcbsp[OMAP_MAX_MCBSP_COUNT];
+-#ifdef CONFIG_ARCH_OMAP1
+-static struct clk *mcbsp_dsp_ck;
+-static struct clk *mcbsp_api_ck;
+-static struct clk *mcbsp_dspxor_ck;
+-#endif
+-#ifdef CONFIG_ARCH_OMAP2
+-static struct clk *mcbsp1_ick;
+-static struct clk *mcbsp1_fck;
+-static struct clk *mcbsp2_ick;
+-static struct clk *mcbsp2_fck;
+-#endif
++
++#define omap_mcbsp_check_valid_id(id)	(mcbsp[id].pdata && \
++					mcbsp[id].pdata->ops && \
++					mcbsp[id].pdata->ops->check && \
++					(mcbsp[id].pdata->ops->check(id) == 0))
+ 
+ static void omap_mcbsp_dump_reg(u8 id)
+ {
+-	DBG("**** MCBSP%d regs ****\n", mcbsp[id].id);
+-	DBG("DRR2:  0x%04x\n", OMAP_MCBSP_READ(mcbsp[id].io_base, DRR2));
+-	DBG("DRR1:  0x%04x\n", OMAP_MCBSP_READ(mcbsp[id].io_base, DRR1));
+-	DBG("DXR2:  0x%04x\n", OMAP_MCBSP_READ(mcbsp[id].io_base, DXR2));
+-	DBG("DXR1:  0x%04x\n", OMAP_MCBSP_READ(mcbsp[id].io_base, DXR1));
+-	DBG("SPCR2: 0x%04x\n", OMAP_MCBSP_READ(mcbsp[id].io_base, SPCR2));
+-	DBG("SPCR1: 0x%04x\n", OMAP_MCBSP_READ(mcbsp[id].io_base, SPCR1));
+-	DBG("RCR2:  0x%04x\n", OMAP_MCBSP_READ(mcbsp[id].io_base, RCR2));
+-	DBG("RCR1:  0x%04x\n", OMAP_MCBSP_READ(mcbsp[id].io_base, RCR1));
+-	DBG("XCR2:  0x%04x\n", OMAP_MCBSP_READ(mcbsp[id].io_base, XCR2));
+-	DBG("XCR1:  0x%04x\n", OMAP_MCBSP_READ(mcbsp[id].io_base, XCR1));
+-	DBG("SRGR2: 0x%04x\n", OMAP_MCBSP_READ(mcbsp[id].io_base, SRGR2));
+-	DBG("SRGR1: 0x%04x\n", OMAP_MCBSP_READ(mcbsp[id].io_base, SRGR1));
+-	DBG("PCR0:  0x%04x\n", OMAP_MCBSP_READ(mcbsp[id].io_base, PCR0));
+-	DBG("***********************\n");
++	dev_dbg(mcbsp[id].dev, "**** McBSP%d regs ****\n", mcbsp[id].id);
++	dev_dbg(mcbsp[id].dev, "DRR2:  0x%04x\n",
++			OMAP_MCBSP_READ(mcbsp[id].io_base, DRR2));
++	dev_dbg(mcbsp[id].dev, "DRR1:  0x%04x\n",
++			OMAP_MCBSP_READ(mcbsp[id].io_base, DRR1));
++	dev_dbg(mcbsp[id].dev, "DXR2:  0x%04x\n",
++			OMAP_MCBSP_READ(mcbsp[id].io_base, DXR2));
++	dev_dbg(mcbsp[id].dev, "DXR1:  0x%04x\n",
++			OMAP_MCBSP_READ(mcbsp[id].io_base, DXR1));
++	dev_dbg(mcbsp[id].dev, "SPCR2: 0x%04x\n",
++			OMAP_MCBSP_READ(mcbsp[id].io_base, SPCR2));
++	dev_dbg(mcbsp[id].dev, "SPCR1: 0x%04x\n",
++			OMAP_MCBSP_READ(mcbsp[id].io_base, SPCR1));
++	dev_dbg(mcbsp[id].dev, "RCR2:  0x%04x\n",
++			OMAP_MCBSP_READ(mcbsp[id].io_base, RCR2));
++	dev_dbg(mcbsp[id].dev, "RCR1:  0x%04x\n",
++			OMAP_MCBSP_READ(mcbsp[id].io_base, RCR1));
++	dev_dbg(mcbsp[id].dev, "XCR2:  0x%04x\n",
++			OMAP_MCBSP_READ(mcbsp[id].io_base, XCR2));
++	dev_dbg(mcbsp[id].dev, "XCR1:  0x%04x\n",
++			OMAP_MCBSP_READ(mcbsp[id].io_base, XCR1));
++	dev_dbg(mcbsp[id].dev, "SRGR2: 0x%04x\n",
++			OMAP_MCBSP_READ(mcbsp[id].io_base, SRGR2));
++	dev_dbg(mcbsp[id].dev, "SRGR1: 0x%04x\n",
++			OMAP_MCBSP_READ(mcbsp[id].io_base, SRGR1));
++	dev_dbg(mcbsp[id].dev, "PCR0:  0x%04x\n",
++			OMAP_MCBSP_READ(mcbsp[id].io_base, PCR0));
++	dev_dbg(mcbsp[id].dev, "***********************\n");
+ }
+ 
+ static irqreturn_t omap_mcbsp_tx_irq_handler(int irq, void *dev_id)
+ {
+ 	struct omap_mcbsp *mcbsp_tx = dev_id;
+ 
+-	DBG("TX IRQ callback : 0x%x\n",
+-	    OMAP_MCBSP_READ(mcbsp_tx->io_base, SPCR2));
++	dev_dbg(mcbsp_tx->dev, "TX IRQ callback : 0x%x\n",
++		OMAP_MCBSP_READ(mcbsp_tx->io_base, SPCR2));
+ 
+ 	complete(&mcbsp_tx->tx_irq_completion);
+ 
+@@ -112,8 +83,8 @@ static irqreturn_t omap_mcbsp_rx_irq_handler(int irq, void *dev_id)
+ {
+ 	struct omap_mcbsp *mcbsp_rx = dev_id;
+ 
+-	DBG("RX IRQ callback : 0x%x\n",
+-	    OMAP_MCBSP_READ(mcbsp_rx->io_base, SPCR2));
++	dev_dbg(mcbsp_rx->dev, "RX IRQ callback : 0x%x\n",
++		OMAP_MCBSP_READ(mcbsp_rx->io_base, SPCR2));
+ 
+ 	complete(&mcbsp_rx->rx_irq_completion);
+ 
+@@ -124,8 +95,8 @@ static void omap_mcbsp_tx_dma_callback(int lch, u16 ch_status, void *data)
+ {
+ 	struct omap_mcbsp *mcbsp_dma_tx = data;
+ 
+-	DBG("TX DMA callback : 0x%x\n",
+-	    OMAP_MCBSP_READ(mcbsp_dma_tx->io_base, SPCR2));
++	dev_dbg(mcbsp_dma_tx->dev, "TX DMA callback : 0x%x\n",
++		OMAP_MCBSP_READ(mcbsp_dma_tx->io_base, SPCR2));
+ 
+ 	/* We can free the channels */
+ 	omap_free_dma(mcbsp_dma_tx->dma_tx_lch);
+@@ -138,8 +109,8 @@ static void omap_mcbsp_rx_dma_callback(int lch, u16 ch_status, void *data)
+ {
+ 	struct omap_mcbsp *mcbsp_dma_rx = data;
+ 
+-	DBG("RX DMA callback : 0x%x\n",
+-	    OMAP_MCBSP_READ(mcbsp_dma_rx->io_base, SPCR2));
++	dev_dbg(mcbsp_dma_rx->dev, "RX DMA callback : 0x%x\n",
++		OMAP_MCBSP_READ(mcbsp_dma_rx->io_base, SPCR2));
+ 
+ 	/* We can free the channels */
+ 	omap_free_dma(mcbsp_dma_rx->dma_rx_lch);
+@@ -156,9 +127,16 @@ static void omap_mcbsp_rx_dma_callback(int lch, u16 ch_status, void *data)
+  */
+ void omap_mcbsp_config(unsigned int id, const struct omap_mcbsp_reg_cfg *config)
+ {
+-	u32 io_base = mcbsp[id].io_base;
++	u32 io_base;
++
++	if (!omap_mcbsp_check_valid_id(id)) {
++		printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1);
++		return;
++	}
+ 
+-	DBG("OMAP-McBSP: McBSP%d  io_base: 0x%8x\n", id + 1, io_base);
++	io_base = mcbsp[id].io_base;
++	dev_dbg(mcbsp[id].dev, "Configuring McBSP%d  io_base: 0x%8x\n",
++			mcbsp[id].id, io_base);
+ 
+ 	/* We write the given config */
+ 	OMAP_MCBSP_WRITE(io_base, SPCR2, config->spcr2);
+@@ -175,97 +153,22 @@ void omap_mcbsp_config(unsigned int id, const struct omap_mcbsp_reg_cfg *config)
+ }
+ EXPORT_SYMBOL(omap_mcbsp_config);
+ 
+-static int omap_mcbsp_check(unsigned int id)
+-{
+-	if (cpu_is_omap730()) {
+-		if (id > OMAP_MAX_MCBSP_COUNT - 1) {
+-		       printk(KERN_ERR "OMAP-McBSP: McBSP%d doesn't exist\n",
+-				id + 1);
+-		       return -1;
+-		}
+-		return 0;
+-	}
+-
+-	if (cpu_is_omap15xx() || cpu_is_omap16xx() || cpu_is_omap24xx()) {
+-		if (id > OMAP_MAX_MCBSP_COUNT) {
+-			printk(KERN_ERR "OMAP-McBSP: McBSP%d doesn't exist\n",
+-				id + 1);
+-			return -1;
+-		}
+-		return 0;
+-	}
+-
+-	return -1;
+-}
+-
+-#ifdef CONFIG_ARCH_OMAP1
+-static void omap_mcbsp_dsp_request(void)
+-{
+-	if (cpu_is_omap15xx() || cpu_is_omap16xx()) {
+-		int ret;
+-
+-		ret = omap_dsp_request_mem();
+-		if (ret < 0) {
+-			printk(KERN_ERR "Could not get dsp memory: %i\n", ret);
+-			return;
+-		}
+-
+-		clk_enable(mcbsp_dsp_ck);
+-		clk_enable(mcbsp_api_ck);
+-
+-		/* enable 12MHz clock to mcbsp 1 & 3 */
+-		clk_enable(mcbsp_dspxor_ck);
+-
+-		/*
+-		 * DSP external peripheral reset
+-		 * FIXME: This should be moved to dsp code
+-		 */
+-		__raw_writew(__raw_readw(DSP_RSTCT2) | 1 | 1 << 1,
+-			     DSP_RSTCT2);
+-	}
+-}
+-
+-static void omap_mcbsp_dsp_free(void)
+-{
+-	if (cpu_is_omap15xx() || cpu_is_omap16xx()) {
+-		omap_dsp_release_mem();
+-		clk_disable(mcbsp_dspxor_ck);
+-		clk_disable(mcbsp_dsp_ck);
+-		clk_disable(mcbsp_api_ck);
+-	}
+-}
+-#endif
+-
+-#ifdef CONFIG_ARCH_OMAP2
+-static void omap2_mcbsp2_mux_setup(void)
+-{
+-	if (cpu_is_omap2420()) {
+-		omap_cfg_reg(Y15_24XX_MCBSP2_CLKX);
+-		omap_cfg_reg(R14_24XX_MCBSP2_FSX);
+-		omap_cfg_reg(W15_24XX_MCBSP2_DR);
+-		omap_cfg_reg(V15_24XX_MCBSP2_DX);
+-		omap_cfg_reg(V14_24XX_GPIO117);
+-	}
+-	/*
+-	 * Need to add MUX settings for OMAP 2430 SDP
+-	 */
+-}
+-#endif
+-
+ /*
+  * We can choose between IRQ based or polled IO.
+  * This needs to be called before omap_mcbsp_request().
+  */
+ int omap_mcbsp_set_io_type(unsigned int id, omap_mcbsp_io_type_t io_type)
+ {
+-	if (omap_mcbsp_check(id) < 0)
+-		return -EINVAL;
++	if (!omap_mcbsp_check_valid_id(id)) {
++		printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1);
++		return -ENODEV;
++	}
+ 
+ 	spin_lock(&mcbsp[id].lock);
+ 
+ 	if (!mcbsp[id].free) {
+-		printk(KERN_ERR "OMAP-McBSP: McBSP%d is currently in use\n",
+-			id + 1);
++		dev_err(mcbsp[id].dev, "McBSP%d is currently in use\n",
++			mcbsp[id].id);
+ 		spin_unlock(&mcbsp[id].lock);
+ 		return -EINVAL;
+ 	}
+@@ -282,34 +185,20 @@ int omap_mcbsp_request(unsigned int id)
+ {
+ 	int err;
+ 
+-	if (omap_mcbsp_check(id) < 0)
+-		return -EINVAL;
+-
+-#ifdef CONFIG_ARCH_OMAP1
+-	/*
+-	 * On 1510, 1610 and 1710, McBSP1 and McBSP3
+-	 * are DSP public peripherals.
+-	 */
+-	if (id == OMAP_MCBSP1 || id == OMAP_MCBSP3)
+-		omap_mcbsp_dsp_request();
+-#endif
+-
+-#ifdef CONFIG_ARCH_OMAP2
+-	if (cpu_is_omap24xx()) {
+-		if (id == OMAP_MCBSP1) {
+-			clk_enable(mcbsp1_ick);
+-			clk_enable(mcbsp1_fck);
+-		} else {
+-			clk_enable(mcbsp2_ick);
+-			clk_enable(mcbsp2_fck);
+-		}
++	if (!omap_mcbsp_check_valid_id(id)) {
++		printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1);
++		return -ENODEV;
+ 	}
+-#endif
++
++	if (mcbsp[id].pdata->ops->request)
++		mcbsp[id].pdata->ops->request(id);
++
++	mcbsp_clk_enable(&mcbsp[id]);
+ 
+ 	spin_lock(&mcbsp[id].lock);
+ 	if (!mcbsp[id].free) {
+-		printk(KERN_ERR "OMAP-McBSP: McBSP%d is currently in use\n",
+-			id + 1);
++		dev_err(mcbsp[id].dev, "McBSP%d is currently in use\n",
++			mcbsp[id].id);
+ 		spin_unlock(&mcbsp[id].lock);
+ 		return -1;
+ 	}
+@@ -322,9 +211,9 @@ int omap_mcbsp_request(unsigned int id)
+ 		err = request_irq(mcbsp[id].tx_irq, omap_mcbsp_tx_irq_handler,
+ 					0, "McBSP", (void *) (&mcbsp[id]));
+ 		if (err != 0) {
+-			printk(KERN_ERR "OMAP-McBSP: Unable to "
+-					"request TX IRQ %d for McBSP%d\n",
+-					mcbsp[id].tx_irq, mcbsp[id].id);
++			dev_%s
>>> DIFF TRUNCATED @ 16K






More information about the Openembedded-commits mailing list