[oe-commits] org.oe.dev merge of '15e4e8f4f0911b6d7b063f78ad573c2face554e5'

oe commit oe at amethyst.openembedded.net
Tue May 20 18:27:15 UTC 2008


merge of '15e4e8f4f0911b6d7b063f78ad573c2face554e5'
     and '37205cd40f454a7b0819444bcb831e91ac8161ca'

Author: oe at openembedded.org
Branch: org.openembedded.dev
Revision: d0c61bda39e6123ddf65114a3eac118a438dae61
ViewMTN: http://monotone.openembedded.org/revision/info/d0c61bda39e6123ddf65114a3eac118a438dae61
Files:
1
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/linux/linux-omap2-git/beagleboard/defconfig
packages/linux/linux-omap2_git.bb
packages/vnc/x11vnc_0.9.3.bb
Diffs:

#
# mt diff -r15e4e8f4f0911b6d7b063f78ad573c2face554e5 -rd0c61bda39e6123ddf65114a3eac118a438dae61
#
#
#
# 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]
# 
# patch "packages/linux/linux-omap2-git/beagleboard/defconfig"
#  from [25fef3901230f52c879132a4968fdd05639f78bc]
#    to [e416b8dd7c16fdaef29109914cf909b457592d00]
# 
# patch "packages/linux/linux-omap2_git.bb"
#  from [3fea14a2cee64acc9a33da1beb4d6b20949b6c42]
#    to [46fad621069aaf808e1a057528c82728198d9499]
#
============================================================
--- 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_err(mcbsp[id].dev, "Unable to request TX IRQ %d "
++					"for McBSP%d\n", mcbsp[id].tx_irq,
++					mcbsp[id].id);
+ 			return err;
+ 		}
+ 
+@@ -333,9 +222,9 @@ int omap_mcbsp_request(unsigned int id)
+ 		err = request_irq(mcbsp[id].rx_irq, omap_mcbsp_rx_irq_handler,
+ 					0, "McBSP", (void *) (&mcbsp[id]));
+ 		if (err != 0) {
+-			printk(KERN_ERR "OMAP-McBSP: Unable to "
+-					"request RX IRQ %d for McBSP%d\n",
+-					mcbsp[id].rx_irq, mcbsp[id].id);
++			dev_err(mcbsp[id].dev, "Unable to request RX IRQ %d "
++					"for McBSP%d\n", mcbsp[id].rx_irq,
++					mcbsp[id].id);
+ 			free_irq(mcbsp[id].tx_irq, (void *) (&mcbsp[id]));
+ 			return err;
+ 		}
+@@ -349,32 +238,20 @@ EXPORT_SYMBOL(omap_mcbsp_request);
+ 
+ void omap_mcbsp_free(unsigned int id)
+ {
+-	if (omap_mcbsp_check(id) < 0)
++	if (!omap_mcbsp_check_valid_id(id)) {
++		printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1);
+ 		return;
+-
+-#ifdef CONFIG_ARCH_OMAP1
+-	if (cpu_class_is_omap1()) {
+-		if (id == OMAP_MCBSP1 || id == OMAP_MCBSP3)
+-			omap_mcbsp_dsp_free();
+ 	}
+-#endif
+-
+-#ifdef CONFIG_ARCH_OMAP2
+-	if (cpu_is_omap24xx()) {
+-		if (id == OMAP_MCBSP1) {
+-			clk_disable(mcbsp1_ick);
+-			clk_disable(mcbsp1_fck);
+-		} else {
+-			clk_disable(mcbsp2_ick);
+-			clk_disable(mcbsp2_fck);
+-		}
+-	}
+-#endif
++
++	if (mcbsp[id].pdata->ops->free)
++		mcbsp[id].pdata->ops->free(id);
++
++	mcbsp_clk_disable(&mcbsp[id]);
+ 
+ 	spin_lock(&mcbsp[id].lock);
+ 	if (mcbsp[id].free) {
+-		printk(KERN_ERR "OMAP-McBSP: McBSP%d was not reserved\n",
+-			id %s
>>> DIFF TRUNCATED @ 16K


#
# mt diff -r37205cd40f454a7b0819444bcb831e91ac8161ca -rd0c61bda39e6123ddf65114a3eac118a438dae61
#
#
#
# patch "packages/vnc/x11vnc_0.9.3.bb"
#  from [aa732c8e4a44358ecadf82dfb92bfb011ab2bd20]
#    to [bb849990fcab1874e7cac9f59f3fd7133c0df9ab]
#
============================================================
--- packages/vnc/x11vnc_0.9.3.bb	aa732c8e4a44358ecadf82dfb92bfb011ab2bd20
+++ packages/vnc/x11vnc_0.9.3.bb	bb849990fcab1874e7cac9f59f3fd7133c0df9ab
@@ -3,7 +3,7 @@ LICENSE = "GPL"
 HOMEPAGE = "http://www.karlrunge.com/x11vnc/"
 AUTHOR = "Karl Runge"
 LICENSE = "GPL"
-DEPENDS = "openssl virtual/libx11 libxext avahi jpeg zlib"
+DEPENDS = "openssl virtual/libx11 libxtst libxext avahi jpeg zlib"
 
 SRC_URI = "http://www.karlrunge.com/x11vnc/x11vnc-0.9.3.tar.gz"
 






More information about the Openembedded-commits mailing list