Setting dss1_alwon_fck rate

2008-12-05 Thread Tomi.Valkeinen
Hi,

Any comments on these two patches from Mans, that enable setting
dss1_alwon_fck? I've been using them with the new DSS, works fine for
me.

http://marc.info/?l=linux-omapm=122454507816731w=2

Filling the set_rate and round_rate fields of dpll4_m4_ck makes
this clock programmable through clk_set_rate().  This is needed
to give omapfb control over the dss1_alwon_fck rate.

Signed-off-by: Mans Rullgard [EMAIL PROTECTED]
---
 arch/arm/mach-omap2/clock34xx.h |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)


http://marc.info/?l=linux-omapm=122454507816734w=2

This makes clk_get_parent() work on OMAP2/3.

Signed-off-by: Mans Rullgard [EMAIL PROTECTED]
---
 arch/arm/mach-omap2/clock.c |5 +
 arch/arm/mach-omap2/clock.h |1 +
 arch/arm/mach-omap2/clock24xx.c |1 +
 arch/arm/mach-omap2/clock34xx.c |1 +
 4 files changed, 8 insertions(+), 0 deletions(-)

 Tomi
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [irda-users] [PATCH] OMAP IrDA driver

2008-12-05 Thread samuel

Hi,



On Fri, 5 Dec 2008 12:04:29 +0530, Trilok Soni [EMAIL PROTECTED]

wrote:

 This time adding LKML too.

Could you please inline the patch so that we can have an easier review ?



Cheers,

Samuel.
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [linux-omap] [PATCH 2/2] DSPBRIDGE: Freeing allocated resources on rmmod

2008-12-05 Thread David Brownell
On Thursday 04 December 2008, Ramirez Luna, Omar wrote:
 +   DSP_STATUS dsp_status = DSP_SOK;
 +   HANDLE       hDrvObject = NULL;
 +   struct PROCESS_CONTEXT  *pTmp = NULL;
 +   struct PROCESS_CONTEXT    *pCtxtclosed = NULL;
 +   struct PROCESS_CONTEXT    *pCtxttraverse = NULL;

It WoUlD bE a LoT nIcEr ...

... if new code didn't introduce new CamelCase usage,
and didn't use Hungarian notation.

Hungarian notation makes some sense in assembly language,
where it was created to help cope with the lack of typing.
But not in C.
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [irda-users] [PATCH] OMAP IrDA driver

2008-12-05 Thread Trilok Soni
Hi Samuel,

On Fri, Dec 5, 2008 at 2:58 PM,  [EMAIL PROTECTED] wrote:

 Hi,

 On Fri, 5 Dec 2008 12:04:29 +0530, Trilok Soni [EMAIL PROTECTED]
 wrote:
 This time adding LKML too.
 Could you please inline the patch so that we can have an easier review ?

I don't have proper git-send-email integration with gmail, so I am
going to copy/paste this patch here:

From e218cd5b2f29fa3ca342a5f4074a9e3cd3cacdad Mon Sep 17 00:00:00 2001
From: Trilok Soni [EMAIL PROTECTED]
Date: Fri, 28 Nov 2008 16:49:44 +0530
Subject: [PATCH] OMAP IrDA driver

Add Texas Instruments OMAP IrDA device driver, which supports
SIR/MIR and FIR.

Signed-off-by: Trilok Soni [EMAIL PROTECTED]
---
 drivers/net/irda/Kconfig   |9 +
 drivers/net/irda/Makefile  |1 +
 drivers/net/irda/omap-ir.c |  893 
 3 files changed, 903 insertions(+), 0 deletions(-)
 create mode 100644 drivers/net/irda/omap-ir.c

diff --git a/drivers/net/irda/Kconfig b/drivers/net/irda/Kconfig
index e631755..6af0c15 100644
--- a/drivers/net/irda/Kconfig
+++ b/drivers/net/irda/Kconfig
@@ -342,5 +342,14 @@ config MCS_FIR
  To compile it as a module, choose M here: the module will be called
  mcs7780.

+config OMAP_IR
+   tristate OMAP IrDA(SIR/MIR/FIR)
+   depends on IRDA  ARCH_OMAP
+help
+ Say Y here if you want to build support for the Texas Instruments
+ OMAP IrDA device driver, which supports SIR/MIR/FIR. This driver
+ relies on platform specific helper routines so available capabilities
+ may vary from one OMAP target to another.
+
 endmenu

diff --git a/drivers/net/irda/Makefile b/drivers/net/irda/Makefile
index 5d20fde..72bbc2a 100644
--- a/drivers/net/irda/Makefile
+++ b/drivers/net/irda/Makefile
@@ -19,6 +19,7 @@ obj-$(CONFIG_VIA_FIR) += via-ircc.o
 obj-$(CONFIG_PXA_FICP) += pxaficp_ir.o
 obj-$(CONFIG_MCS_FIR)  += mcs7780.o
 obj-$(CONFIG_AU1000_FIR)   += au1k_ir.o
+obj-$(CONFIG_OMAP_IR)  += omap-ir.o
 # SIR drivers
 obj-$(CONFIG_IRTTY_SIR)+= irtty-sir.o  sir-dev.o
 # dongle drivers for SIR drivers
diff --git a/drivers/net/irda/omap-ir.c b/drivers/net/irda/omap-ir.c
new file mode 100644
index 000..bf29585
--- /dev/null
+++ b/drivers/net/irda/omap-ir.c
@@ -0,0 +1,893 @@
+/*
+ * BRIEF MODULE DESCRIPTION
+ *
+ * Infra-red driver for the OMAP1610-H2 and OMAP1710-H3 and H4 Platforms
+ *   (SIR/MIR/FIR modes)
+ *   (based on omap-sir.c)
+ *
+ * Copyright 2003 MontaVista Software Inc.
+ * Author: MontaVista Software, Inc.
+ *[EMAIL PROTECTED]
+ *
+ * Copyright 2004 Texas Instruments.
+ *
+ *  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  SOFTWARE  IS PROVIDED  ``AS  IS'' AND   ANY  EXPRESS OR 
IMPLIED
+ *  WARRANTIES,  INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED 
WARRANTIES OF
+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
+ *  NO EVENT  SHALL   THE AUTHOR  BELIABLE FOR ANY   DIRECT, INDIRECT,
+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ *  NOT LIMITED  TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; 
LOSS OF
+ *  USE, DATA, OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ *  ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 
TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *  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.,
+ *  675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+#include linux/module.h
+#include linux/types.h
+#include linux/init.h
+#include linux/errno.h
+#include linux/netdevice.h
+#include linux/slab.h
+#include linux/rtnetlink.h
+#include linux/interrupt.h
+#include linux/delay.h
+#include linux/ioport.h
+#include linux/dma-mapping.h
+#include linux/platform_device.h
+#include linux/workqueue.h
+#include linux/io.h
+#include linux/serial.h
+
+#include net/irda/irda.h
+#include net/irda/irmod.h
+#include net/irda/wrapper.h
+#include net/irda/irda_device.h
+
+#include asm/irq.h
+#include asm/mach-types.h
+#include asm/dma.h
+
+#include mach/hardware.h
+#include mach/mux.h
+#include mach/gpio.h
+#include mach/irda.h
+
+#define UART3_EFR_EN   (1  4)
+#define UART3_MCR_EN_TCR_TLR   (1  6)
+
+#define UART3_LCR_WL_8 (3  0)
+#define UART3_LCR_SP2  (1  2)
+#define UART3_LCR_DIVEN(1  7)
+
+#define UART3_FCR_FIFO_EN  (1  0)
+#define UART3_FCR_FIFO_RX  (1  1)
+#define UART3_FCR_FIFO_TX  

RE: [PATCH 1/1] Save sram context after changing MPU, DSP or core clocks

2008-12-05 Thread Tero.Kristo
Hi Peter,

This patch causes linker error without CONFIG_PM option, should add
#ifdef:s around the call to omap3_save_scratchpad_contents();

-Tero

-Original Message-
From: [EMAIL PROTECTED] 
[mailto:[EMAIL PROTECTED] On Behalf Of ext 
Peter 'p2' De Schrijver
Sent: 19 November, 2008 13:45
To: linux-omap@vger.kernel.org
Cc: De-Schrijver Peter (Nokia-D/Helsinki)
Subject: [PATCH 1/1] Save sram context after changing MPU, DSP 
or core clocks


Signed-off-by: Peter 'p2' De Schrijver [EMAIL PROTECTED]
---
 arch/arm/mach-omap2/clock34xx.c |3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/clock34xx.c 
b/arch/arm/mach-omap2/clock34xx.c index d97d5a9..962ce56 100644
--- a/arch/arm/mach-omap2/clock34xx.c
+++ b/arch/arm/mach-omap2/clock34xx.c
@@ -911,6 +911,9 @@ printk(%s set to %luHz intended rate 
%luHz\n,dpll2_clk-name,clk_get_rate(dpll
   clk_set_rate(dpll3_clk, prcm_vdd-rate);
   curr_vdd2_prcm_set = prcm_vdd;
   }
+
+  omap3_save_scratchpad_contents();
+
   return 0;
 }
 
--
1.5.6.3

--
To unsubscribe from this list: send the line unsubscribe 
linux-omap in the body of a message to 
[EMAIL PROTECTED] More majordomo info at  
http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/1] Save sram context after changing MPU, DSP or core clocks

2008-12-05 Thread Peter 'p2' De Schrijver
On Fri, Dec 05, 2008 at 11:49:03AM +0200, Kristo Tero (Nokia-D/Tampere) wrote:
 Hi Peter,
 
 This patch causes linker error without CONFIG_PM option, should add
 #ifdef:s around the call to omap3_save_scratchpad_contents();
 

That looks a bit ugly though :(

Cheers,

Peter

-- 
goa is a state of mind
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] OneNAND: OMAP2: Switch to generic gpio calls

2008-12-05 Thread Adrian Hunter

From: Jarkko Nikula [EMAIL PROTECTED]

Signed-off-by: Jarkko Nikula [EMAIL PROTECTED]
Signed-off-by: Adrian Hunter [EMAIL PROTECTED]
---
drivers/mtd/onenand/omap2.c |   16 
1 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/mtd/onenand/omap2.c b/drivers/mtd/onenand/omap2.c
index a7e4d98..c260e2d 100644
--- a/drivers/mtd/onenand/omap2.c
+++ b/drivers/mtd/onenand/omap2.c
@@ -149,7 +149,7 @@ static int omap2_onenand_wait(struct mtd_info *mtd, int 
state)

INIT_COMPLETION(c-irq_done);
if (c-gpio_irq) {
-   result = omap_get_gpio_datain(c-gpio_irq);
+   result = gpio_get_value(c-gpio_irq);
if (result == -1) {
ctrl = read_reg(c, ONENAND_REG_CTRL_STATUS);
intr = read_reg(c, ONENAND_REG_INTERRUPT);
@@ -629,14 +629,14 @@ static int __devinit omap2_onenand_probe(struct 
platform_device *pdev)
}

if (c-gpio_irq) {
-   if ((r = omap_request_gpio(c-gpio_irq))  0) {
+   if ((r = gpio_request(c-gpio_irq, OneNAND irq))  0) {
dev_err(pdev-dev,  Failed to request GPIO%d for 
OneNAND\n, c-gpio_irq);
goto err_iounmap;
}
-   omap_set_gpio_direction(c-gpio_irq, 1);
+   gpio_direction_input(c-gpio_irq);

-   if ((r = request_irq(OMAP_GPIO_IRQ(c-gpio_irq),
+   if ((r = request_irq(gpio_to_irq(c-gpio_irq),
 omap2_onenand_interrupt, IRQF_TRIGGER_RISING,
 pdev-dev.driver-name, c))  0)
goto err_release_gpio;
@@ -723,10 +723,10 @@ err_release_dma:
if (c-dma_channel != -1)
omap_free_dma(c-dma_channel);
if (c-gpio_irq)
-   free_irq(OMAP_GPIO_IRQ(c-gpio_irq), c);
+   free_irq(gpio_to_irq(c-gpio_irq), c);
err_release_gpio:
if (c-gpio_irq)
-   omap_free_gpio(c-gpio_irq);
+   gpio_free(c-gpio_irq);
err_iounmap:
iounmap(c-onenand.base);
err_release_mem_region:
@@ -760,8 +760,8 @@ static int __devexit omap2_onenand_remove(struct 
platform_device *pdev)
omap2_onenand_shutdown(pdev);
platform_set_drvdata(pdev, NULL);
if (c-gpio_irq) {
-   free_irq(OMAP_GPIO_IRQ(c-gpio_irq), c);
-   omap_free_gpio(c-gpio_irq);
+   free_irq(gpio_to_irq(c-gpio_irq), c);
+   gpio_free(c-gpio_irq);
}
iounmap(c-onenand.base);
release_mem_region(c-phys_base, ONENAND_IO_SIZE);
--
1.5.4.3
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/2] Addition of Set Routing ioctl support[V5]

2008-12-05 Thread hvaibhav
From: Vaibhav Hiremath [EMAIL PROTECTED]

Fixed review comments:

g_routing:
Removed g_routing, since it was not required
at decoder level. Same can be handled at master
level.

Signed-off-by: Brijesh Jadav [EMAIL PROTECTED]
Signed-off-by: Hardik Shah [EMAIL PROTECTED]
Signed-off-by: Manjunath Hadli [EMAIL PROTECTED]
Signed-off-by: R Sivaraj [EMAIL PROTECTED]
Signed-off-by: Vaibhav Hiremath [EMAIL PROTECTED]
Signed-off-by: Karicheri Muralidharan [EMAIL PROTECTED]
---
 include/media/v4l2-int-device.h |6 ++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/include/media/v4l2-int-device.h b/include/media/v4l2-int-device.h
index 9c2df41..ecda3c7 100644
--- a/include/media/v4l2-int-device.h
+++ b/include/media/v4l2-int-device.h
@@ -183,6 +183,9 @@ enum v4l2_int_ioctl_num {
vidioc_int_s_crop_num,
vidioc_int_g_parm_num,
vidioc_int_s_parm_num,
+   vidioc_int_querystd_num,
+   vidioc_int_s_std_num,
+   vidioc_int_s_video_routing_num,

/*
 *
@@ -284,6 +287,9 @@ V4L2_INT_WRAPPER_1(g_crop, struct v4l2_crop, *);
 V4L2_INT_WRAPPER_1(s_crop, struct v4l2_crop, *);
 V4L2_INT_WRAPPER_1(g_parm, struct v4l2_streamparm, *);
 V4L2_INT_WRAPPER_1(s_parm, struct v4l2_streamparm, *);
+V4L2_INT_WRAPPER_1(querystd, v4l2_std_id, *);
+V4L2_INT_WRAPPER_1(s_std, v4l2_std_id, *);
+V4L2_INT_WRAPPER_1(s_video_routing, struct v4l2_routing, *);

 V4L2_INT_WRAPPER_0(dev_init);
 V4L2_INT_WRAPPER_0(dev_exit);
--
1.5.6

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PULL] http://www.linuxtv.org/hg/~hverkuil/v4l-dvb

2008-12-05 Thread Hans Verkuil
Hi Mauro,

Please pull from http://www.linuxtv.org/hg/~hverkuil/v4l-dvb for the 
following:

- omap2: add OMAP2 camera driver.
- v4l2-int-if: add three new ioctls for std handling and routing
- v4l: add new tvp514x I2C video decoder driver

Thanks to Nokia and TI for these drivers!

Regards,

Hans

diffstat:
 b/linux/drivers/media/video/omap24xxcam-dma.c |  601 
 b/linux/drivers/media/video/omap24xxcam.c | 1908 
++
 b/linux/drivers/media/video/omap24xxcam.h |  593 
 b/linux/drivers/media/video/tvp514x.c | 1569 
+
 b/linux/drivers/media/video/tvp514x_regs.h|  297 
 b/linux/include/media/tvp514x.h   |  118 +
 linux/drivers/media/video/Kconfig |   18
 linux/drivers/media/video/Makefile|4
 linux/include/media/v4l2-int-device.h |6
 9 files changed, 5114 insertions(+)

-- 
Hans Verkuil - video4linux developer - sponsored by TANDBERG
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Remove drivers/input/touchscreen/omap directory?

2008-12-05 Thread Trilok Soni
Hi Tony,

I think no one using touchscreen drivers under this directory, please remove.

I will start process of sending tsc patches to upstream soon...

-- 
---Trilok Soni
http://triloksoni.wordpress.com
http://www.linkedin.com/in/triloksoni
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Remove drivers/input/touchscreen/omap directory?

2008-12-05 Thread Jarkko Nikula
On Fri, 5 Dec 2008 19:25:48 +0530
ext Trilok Soni [EMAIL PROTECTED] wrote:

 Hi Tony,
 
 I think no one using touchscreen drivers under this directory, please remove.
 
 I will start process of sending tsc patches to upstream soon...
 
That's great! Also drivers/spi/tsc2301-mixer.c can be removed in part
of the process.


Jarkko
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Bug in linux omap clock framework?

2008-12-05 Thread Tomi.Valkeinen
Hi,

I have had strange clk_enable() crashes with DSS2, and now I managed to
isolate it. With the included patch, on OMAP3 SDP board, with default
kernel config, I always get the crash below. In this example case it
happens at specific time on boot, but with DSS2 it happens randomly at
runtime, when I enable the DSS clocks.

diff --git a/drivers/video/omap/omapfb_main.c
b/drivers/video/omap/omapfb_main.c
index 3bb4247..2d5ef0d 100644
--- a/drivers/video/omap/omapfb_main.c
+++ b/drivers/video/omap/omapfb_main.c
@@ -27,6 +27,7 @@
 #include linux/platform_device.h
 #include linux/mm.h
 #include linux/uaccess.h
+#include linux/clk.h
 
 #include mach/dma.h
 #include mach/omapfb.h
@@ -1806,6 +1807,18 @@ static int omapfb_probe(struct platform_device
*pdev)
 {
BUG_ON(fbdev_pdev != NULL);
 
+   {
+   struct clk *c1, *c2;
+   c1 = clk_get(pdev-dev, dss_ick);
+   c2 = clk_get(pdev-dev, dss1_fck);
+   while(1) {
+   clk_enable(c1);
+   clk_enable(c2);
+   clk_disable(c1);
+   clk_disable(c2);
+   }
+   }
+
/* Delay actual initialization until the LCD is registered */
fbdev_pdev = pdev;
if (fbdev_panel != NULL)
@@ -1958,7 +1971,7 @@ module_param_named(rotate, def_rotate, uint,
0664);
 module_param_named(mirror, def_mirror, uint, 0664);
 module_param_named(manual_update, manual_update, bool, 0664);
 
-module_init(omapfb_init);
+late_initcall(omapfb_init);
 module_exit(omapfb_cleanup);
 
 MODULE_DESCRIPTION(TI OMAP framebuffer driver);


And the crash:



1Unhandled fault: external abort on non-linefetch (0x1028) at
0xd8200098
Unhandled fault: external abort on non-linefetch (0x1028) at 0xd8200098
Internal error: : 1028 [#1]
Internal error: : 1028 [#1]
Modules linked in:Modules linked in:

CPU: 0Not tainted  (2.6.28-rc6-omap1-05264-g1705711-dirty #6)
CPU: 0Not tainted  (2.6.28-rc6-omap1-05264-g1705711-dirty #6)
PC is at __irq_svc+0x34/0x80
PC is at __irq_svc+0x34/0x80
LR is at _omap2_clk_enable+0xa0/0xe0
LR is at _omap2_clk_enable+0xa0/0xe0
pc : [c002c9d4]lr : [c0036314]psr: 6193
sp : c7817d30  ip : c7817d40  fp : c7817d8c
pc : [c002c9d4]lr : [c0036314]psr: 6193
sp : c7817d30  ip : c7817d40  fp : c7817d8c
r10: c001a210  r9 :   r8 : c0395048
r10: c001a210  r9 :   r8 : c0395048
r7 : c03910c0  r6 : c03910c0  r5 : d820  r4 : 
r7 : c03910c0  r6 : c03910c0  r5 : d820  r4 : 
r3 : 6013  r2 : c003ae80  r1 : c0036314  r0 : c7817d78
r3 : 6013  r2 : c003ae80  r1 : c0036314  r0 : c7817d78
Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c5387f  Table: 80004018  DAC: 0017
Control: 10c5387f  Table: 80004018  DAC: 0017
Process swapper (pid: 1, stack limit = 0xc78162e0)
Process swapper (pid: 1, stack limit = 0xc78162e0)
Stack: (0xc7817d30 to 0xc7818000)
Stack: (0xc7817d30 to 0xc7818000)
7d20: 7d20:
    0010 0010 0001 0001 

7d40: 7d40: 8013 8013 c037ac4c c037ac4c c03910c0 c03910c0
c03910c0 c03910c0 c0395048 c0395048   c001a210 c001a210
c7817d8c c7817d8c 

7d60: 7d60: c7817d40 c7817d40 c7817d78 c7817d78 c0036314 c0036314
c003ae80 c003ae80 6013 6013   fffe fffe
c037ac4c c037ac4c 

7d80: 7d80: c7817da4 c7817da4 c7817d90 c7817d90 c018bef4 c018bef4
c003ae48 c003ae48 c037de28 c037de28 c037ded4 c037ded4 c7817db4 c7817db4
c7817da8 c7817da8 

7da0: 7da0: c01afd70 c01afd70 c018beac c018beac c7817dd4 c7817dd4
c7817db8 c7817db8 c01aef90 c01aef90 c01afd5c c01afd5c c037de28 c037de28
c037ded4 c037ded4 

7dc0: 7dc0: c03910c0 c03910c0 c03910c0 c03910c0 c7817df4 c7817df4
c7817dd8 c7817dd8 c01af0a4 c01af0a4 c01aeecc c01aeecc  
c7817df8 c7817df8 

7de0: 7de0: c01af03c c01af03c c03910c0 c03910c0 c7817e1c c7817e1c
c7817df8 c7817df8 c01ae510 c01ae510 c01af048 c01af048 c78034d8 c78034d8
c037de70 c037de70 

7e00: 7e00:   c03910c0 c03910c0  
c7941b60 c7941b60 c7817e2c c7817e2c c7817e20 c7817e20 c01aedd8 c01aedd8
c01ae4d0 c01ae4d0 

7e20: 7e20: c7817e5c c7817e5c c7817e30 c7817e30 c01ae994 c01ae994
c01aedc4 c01aedc4 c0325184 c0325184 c03910c0 c03910c0  
c03a0480 c03a0480 

7e40: 7e40: c03910c0 c03910c0    
  c7817e84 c7817e84 c7817e60 c7817e60 c01af298 c01af298
c01ae8f8 c01ae8f8 

7e60: 7e60: c03a0480 c03a0480 c0024b00 c0024b00  
    c001a210 c001a210 c7817e94 c7817e94
c7817e88 c7817e88 

7e80: 7e80: c01b0108 c01b0108 c01af20c c01af20c c7817ebc c7817ebc
c7817e98 c7817e98 c001a41c c001a41c c01b009c c01b009c c0019c1c c0019c1c
c01754b0 c01754b0 

7ea0: 7ea0:     12bdf916 12bdf916
c03a0480 c03a0480 c7817fdc c7817fdc 

RE: [linux-omap] [PATCH 2/2] DSPBRIDGE: Freeing allocated resources on rmmod

2008-12-05 Thread Ramirez Luna, Omar

Hi David,

From: David Brownell [mailto:[EMAIL PROTECTED]
Sent: Friday, December 05, 2008 3:39 AM
To: Ramirez Luna, Omar
Cc: linux-omap@vger.kernel.org; Hiroshi DOYU; Gupta, Ramesh; Kanigeri, Hari
Subject: Re: [linux-omap] [PATCH 2/2] DSPBRIDGE: Freeing allocated
resources on rmmod

On Thursday 04 December 2008, Ramirez Luna, Omar wrote:
 +   DSP_STATUS dsp_status = DSP_SOK;
 +   HANDLE       hDrvObject = NULL;
 +   struct PROCESS_CONTEXT  *pTmp = NULL;
 +   struct PROCESS_CONTEXT    *pCtxtclosed = NULL;
 +   struct PROCESS_CONTEXT    *pCtxttraverse = NULL;

It WoUlD bE a LoT nIcEr ...

... if new code didn't introduce new CamelCase usage,
and didn't use Hungarian notation.

Hungarian notation makes some sense in assembly language,
where it was created to help cope with the lack of typing.
But not in C.

Thanks for your comments and time, we are still working towards meeting open 
source standards and enhancing the code with all the feedback received (RW, 
RMK, TL, HD, FC and many more people) to get the driver pushed a piece at a 
time.

There are still action items in our list, along with coding style, but we'll 
keep working to get them done.

- omar
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] OneNAND: OMAP2: Switch to generic gpio calls

2008-12-05 Thread David Brownell
On Friday 05 December 2008, Adrian Hunter wrote:
 -   if ((r = omap_request_gpio(c-gpio_irq))  0) {
 +   if ((r = gpio_request(c-gpio_irq, OneNAND irq))  0) {

Worth noting that this depends on the OMAP patches which 
make those calls be equivalent.  Those patches are going
into 2.6.29-early via the ARM tree, as I recall; getting
the merge order wrong would break bisectability -- but
not buildability.

- Dave
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Bug in linux omap clock framework?

2008-12-05 Thread Kevin Hilman
[EMAIL PROTECTED] writes:

 Hi,

 I have had strange clk_enable() crashes with DSS2, and now I managed to
 isolate it. With the included patch, on OMAP3 SDP board, with default
 kernel config, I always get the crash below. In this example case it
 happens at specific time on boot, but with DSS2 it happens randomly at
 runtime, when I enable the DSS clocks.

 diff --git a/drivers/video/omap/omapfb_main.c
 b/drivers/video/omap/omapfb_main.c
 index 3bb4247..2d5ef0d 100644
 --- a/drivers/video/omap/omapfb_main.c
 +++ b/drivers/video/omap/omapfb_main.c
 @@ -27,6 +27,7 @@
  #include linux/platform_device.h
  #include linux/mm.h
  #include linux/uaccess.h
 +#include linux/clk.h
  
  #include mach/dma.h
  #include mach/omapfb.h
 @@ -1806,6 +1807,18 @@ static int omapfb_probe(struct platform_device
 *pdev)
  {
 BUG_ON(fbdev_pdev != NULL);
  
 +   {
 +   struct clk *c1, *c2;
 +   c1 = clk_get(pdev-dev, dss_ick);
 +   c2 = clk_get(pdev-dev, dss1_fck);
 +   while(1) {
 +   clk_enable(c1);
 +   clk_enable(c2);
 +   clk_disable(c1);
 +   clk_disable(c2);
 +   }
 +   }
 +
 /* Delay actual initialization until the LCD is registered */
 fbdev_pdev = pdev;
 if (fbdev_panel != NULL)
 @@ -1958,7 +1971,7 @@ module_param_named(rotate, def_rotate, uint,
 0664);
  module_param_named(mirror, def_mirror, uint, 0664);
  module_param_named(manual_update, manual_update, bool, 0664);
  
 -module_init(omapfb_init);
 +late_initcall(omapfb_init);
  module_exit(omapfb_cleanup);
  
  MODULE_DESCRIPTION(TI OMAP framebuffer driver);


 And the crash:



 1Unhandled fault: external abort on non-linefetch (0x1028) at
 0xd8200098
 Unhandled fault: external abort on non-linefetch (0x1028) at 0xd8200098
 Internal error: : 1028 [#1]
 Internal error: : 1028 [#1]
 Modules linked in:Modules linked in:

 CPU: 0Not tainted  (2.6.28-rc6-omap1-05264-g1705711-dirty #6)
 CPU: 0Not tainted  (2.6.28-rc6-omap1-05264-g1705711-dirty #6)
 PC is at __irq_svc+0x34/0x80
 PC is at __irq_svc+0x34/0x80
 LR is at _omap2_clk_enable+0xa0/0xe0
 LR is at _omap2_clk_enable+0xa0/0xe0

What looks to be happening is an interrupt is firing in the middle of
your clk_enable() call, and accesses to the Interrupt controller
registers are triggering a fault.

As a temporary workaround, could you try wrapping your clk_enable() 
with an IRQ save/restore?  Something like:

  local_irq_save(flags);
  clk_enable(c);
  local_irq_restore(flags);

If this works, then we need to investigate in more detail which
interrupt is firing, and why the INTC registers are not accessible.

Kevin

 pc : [c002c9d4]lr : [c0036314]psr: 6193
 sp : c7817d30  ip : c7817d40  fp : c7817d8c
 pc : [c002c9d4]lr : [c0036314]psr: 6193
 sp : c7817d30  ip : c7817d40  fp : c7817d8c
 r10: c001a210  r9 :   r8 : c0395048
 r10: c001a210  r9 :   r8 : c0395048
 r7 : c03910c0  r6 : c03910c0  r5 : d820  r4 : 
 r7 : c03910c0  r6 : c03910c0  r5 : d820  r4 : 
 r3 : 6013  r2 : c003ae80  r1 : c0036314  r0 : c7817d78
 r3 : 6013  r2 : c003ae80  r1 : c0036314  r0 : c7817d78
 Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
 Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
 Control: 10c5387f  Table: 80004018  DAC: 0017
 Control: 10c5387f  Table: 80004018  DAC: 0017
 Process swapper (pid: 1, stack limit = 0xc78162e0)
 Process swapper (pid: 1, stack limit = 0xc78162e0)
 Stack: (0xc7817d30 to 0xc7818000)
 Stack: (0xc7817d30 to 0xc7818000)
 7d20: 7d20:
     0010 0010 0001 0001 

 7d40: 7d40: 8013 8013 c037ac4c c037ac4c c03910c0 c03910c0
 c03910c0 c03910c0 c0395048 c0395048   c001a210 c001a210
 c7817d8c c7817d8c 

 7d60: 7d60: c7817d40 c7817d40 c7817d78 c7817d78 c0036314 c0036314
 c003ae80 c003ae80 6013 6013   fffe fffe
 c037ac4c c037ac4c 

 7d80: 7d80: c7817da4 c7817da4 c7817d90 c7817d90 c018bef4 c018bef4
 c003ae48 c003ae48 c037de28 c037de28 c037ded4 c037ded4 c7817db4 c7817db4
 c7817da8 c7817da8 

 7da0: 7da0: c01afd70 c01afd70 c018beac c018beac c7817dd4 c7817dd4
 c7817db8 c7817db8 c01aef90 c01aef90 c01afd5c c01afd5c c037de28 c037de28
 c037ded4 c037ded4 

 7dc0: 7dc0: c03910c0 c03910c0 c03910c0 c03910c0 c7817df4 c7817df4
 c7817dd8 c7817dd8 c01af0a4 c01af0a4 c01aeecc c01aeecc  
 c7817df8 c7817df8 

 7de0: 7de0: c01af03c c01af03c c03910c0 c03910c0 c7817e1c c7817e1c
 c7817df8 c7817df8 c01ae510 c01ae510 c01af048 c01af048 c78034d8 c78034d8
 c037de70 c037de70 

 7e00: 7e00:   c03910c0 c03910c0  
 c7941b60 c7941b60 c7817e2c c7817e2c c7817e20 c7817e20 c01aedd8 c01aedd8
 c01ae4d0 c01ae4d0 

 7e20: 7e20: c7817e5c c7817e5c c7817e30 c7817e30 c01ae994 c01ae994
 c01aedc4 c01aedc4 c0325184 c0325184 

RE: [PATCH] Add OMAP2 camera driver

2008-12-05 Thread Hiremath, Vaibhav


Thanks,
Vaibhav Hiremath

 -Original Message-
 From: Tony Lindgren [mailto:[EMAIL PROTECTED]
 Sent: Friday, December 05, 2008 5:16 AM
 To: Hiremath, Vaibhav
 Cc: Koen Kooi; Trilok Soni; Hans Verkuil; Sakari Ailus; linux-
 [EMAIL PROTECTED] Mailing List; [EMAIL PROTECTED]
 Subject: Re: [PATCH] Add OMAP2 camera driver
 
 * Hiremath, Vaibhav [EMAIL PROTECTED] [081203 01:38]:
 
 
  Thanks,
  Vaibhav Hiremath
 
   -Original Message-
   From: Koen Kooi [mailto:[EMAIL PROTECTED]
   Sent: Wednesday, December 03, 2008 3:04 PM
   To: Hiremath, Vaibhav
   Cc: Trilok Soni; Hans Verkuil; Sakari Ailus; linux-
   [EMAIL PROTECTED] Mailing List; [EMAIL PROTECTED]
   Subject: Re: [PATCH] Add OMAP2 camera driver
  
  
   Op 3 dec 2008, om 08:05 heeft Hiremath, Vaibhav het volgende
   geschreven:
OMAP3 -
Display - (Posted twice with old DSS library)
- omap_vout.c
- omap_voutlib.c
- omap_voutlib.h
- omap_voutdef.h
Camera - (Will come soon)
- omap34xxcam.c
- omap34xxcam.h
ISP - (Will come soon)
- Here definitely we will plenty number of files.
  
   Isn't DSS2 supposed to work on omap2 (and perhaps omap1) as
 well?
  
  [Hiremath, Vaibhav] yes, but the DSS2 library goes under
 arch/arm/plat-omap/dss/. The above files are belongs to the driver
 underneath.
 
 Huh? Why would it need to be under plat-omap?
 
[Hiremath, Vaibhav] This is low level library which will export Kernel API's to 
top level driver like, Frame buffer and V4L2 driver. So this has to be in some 
common directory, and both patches on DSS (from Tomi and from TI) aligned to 
the same thing.

 Tony

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Add OMAP2 camera driver

2008-12-05 Thread Tony Lindgren
* Hiremath, Vaibhav [EMAIL PROTECTED] [081205 10:58]:
  From: Tony Lindgren [mailto:[EMAIL PROTECTED]
  * Hiremath, Vaibhav [EMAIL PROTECTED] [081203 01:38]:

snip

Isn't DSS2 supposed to work on omap2 (and perhaps omap1) as
  well?
   
   [Hiremath, Vaibhav] yes, but the DSS2 library goes under
  arch/arm/plat-omap/dss/. The above files are belongs to the driver
  underneath.
  
  Huh? Why would it need to be under plat-omap?
  
 [Hiremath, Vaibhav] This is low level library which will export
 Kernel API's to top level driver like, Frame buffer and V4L2 driver.
 So this has to be in some common directory, and both patches on
 DSS (from Tomi and from TI) aligned to the same thing.

We're not adding driver specific code to arch/arm/plat-omap.

Please place your shared driver code either under drivers/video
and export the functions needed by v4l like all other linux
driver code does.

Regards,

Tony

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 0/6] Omap3 updates for 2.6.29 merge window

2008-12-05 Thread Tony Lindgren
Hi,

Here are some updates for omap3 for review. 

Regards,

Tony

---

Arun KS (1):
  ARM: OMAP3: Pin multiplexing updates for 24xx and 34xx

Grazvydas Ignotas (1):
  ARM: OMAP3: Add basic support for Pandora handheld console

Jarkko Nikula (1):
  ARM: OMAP3: Add OMAP34xx pin multiplexing into I2C bus registration helper

Santosh Shilimkar (1):
  ARM: OMAP3: DMA: Fix for sDMA Errata 1.113

Stanley.Miao (1):
  ARM: OMAP3: LDP: Add Ethernet device support to make ldp boot succeess

Tony Lindgren (1):
  ARM: OMAP3: Warn about spurious interrupts


 arch/arm/configs/omap3_pandora_defconfig| 1409 +++
 arch/arm/configs/omap_ldp_defconfig |  148 +++
 arch/arm/mach-omap2/Kconfig |4 
 arch/arm/mach-omap2/Makefile|1 
 arch/arm/mach-omap2/board-ldp.c |   57 +
 arch/arm/mach-omap2/board-omap3pandora.c|  281 +
 arch/arm/mach-omap2/irq.c   |   39 +
 arch/arm/mach-omap2/mux.c   |   44 +
 arch/arm/plat-omap/dma.c|   15 
 arch/arm/plat-omap/i2c.c|   55 +
 arch/arm/plat-omap/include/mach/board-ldp.h |5 
 arch/arm/plat-omap/include/mach/mux.h   |   41 +
 12 files changed, 2076 insertions(+), 23 deletions(-)
 create mode 100644 arch/arm/configs/omap3_pandora_defconfig
 create mode 100644 arch/arm/mach-omap2/board-omap3pandora.c

-- 
Signature
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/6] ARM: OMAP3: Warn about spurious interrupts

2008-12-05 Thread Tony Lindgren
In the case of spurious interrupt, the handler for previous interrupt
handler needs to flush posted writes with a read back of the interrupt
ack register. Warn about handlers that need to flush posted writes.

Signed-off-by: Tony Lindgren [EMAIL PROTECTED]
---
 arch/arm/mach-omap2/irq.c |   39 +++
 1 files changed, 39 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c
index c40fc37..636e282 100644
--- a/arch/arm/mach-omap2/irq.c
+++ b/arch/arm/mach-omap2/irq.c
@@ -23,6 +23,7 @@
 #define INTC_REVISION  0x
 #define INTC_SYSCONFIG 0x0010
 #define INTC_SYSSTATUS 0x0014
+#define INTC_SIR   0x0040
 #define INTC_CONTROL   0x0048
 #define INTC_MIR_CLEAR00x0088
 #define INTC_MIR_SET0  0x008c
@@ -60,6 +61,30 @@ static u32 intc_bank_read_reg(struct omap_irq_bank *bank, 
u16 reg)
return __raw_readl(bank-base_reg + reg);
 }
 
+static int previous_irq;
+
+/*
+ * On 34xx we can get occasional spurious interrupts if the ack from
+ * an interrupt handler does not get posted before we unmask. Warn about
+ * the interrupt handlers that need to flush posted writes.
+ */
+static int omap_check_spurious(unsigned int irq)
+{
+   u32 sir, spurious;
+
+   sir = intc_bank_read_reg(irq_banks[0], INTC_SIR);
+   spurious = sir  6;
+
+   if (spurious  1) {
+   printk(KERN_WARNING Spurious irq %i: 0x%08x, please flush 
+   posted write for irq %i\n,
+   irq, sir, previous_irq);
+   return spurious;
+   }
+
+   return 0;
+}
+
 /* XXX: FIQ and additional INTC support (only MPU at the moment) */
 static void omap_ack_irq(unsigned int irq)
 {
@@ -70,6 +95,20 @@ static void omap_mask_irq(unsigned int irq)
 {
int offset = irq  (~(IRQ_BITS_PER_REG - 1));
 
+   if (cpu_is_omap34xx()) {
+   int spurious = 0;
+
+   /*
+* INT_34XX_GPT12_IRQ is also the spurious irq. Maybe because
+* it is the highest irq number?
+*/
+   if (irq == INT_34XX_GPT12_IRQ)
+   spurious = omap_check_spurious(irq);
+
+   if (!spurious)
+   previous_irq = irq;
+   }
+
irq = (IRQ_BITS_PER_REG - 1);
 
intc_bank_write_reg(1  irq, irq_banks[0], INTC_MIR_SET0 + offset);

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/6] ARM: OMAP3: Add OMAP34xx pin multiplexing into I2C bus registration helper

2008-12-05 Thread Tony Lindgren
From: Jarkko Nikula [EMAIL PROTECTED]

- Simplify function omap_i2c_mux_pins
- Add OMAP34xx pin multiplexing for busses 1 - 3

Signed-off-by: Jarkko Nikula [EMAIL PROTECTED]
Signed-off-by: Tony Lindgren [EMAIL PROTECTED]
---
 arch/arm/plat-omap/i2c.c |   55 ++
 1 files changed, 36 insertions(+), 19 deletions(-)

diff --git a/arch/arm/plat-omap/i2c.c b/arch/arm/plat-omap/i2c.c
index 0e6d147..89a6ab0 100644
--- a/arch/arm/plat-omap/i2c.c
+++ b/arch/arm/plat-omap/i2c.c
@@ -79,26 +79,43 @@ static struct platform_device omap_i2c_devices[] = {
 #endif
 };
 
-static void __init omap_i2c_mux_pins(int bus_id)
+#if defined(CONFIG_ARCH_OMAP24XX)
+static const int omap24xx_pins[][2] = {
+   { M19_24XX_I2C1_SCL, L15_24XX_I2C1_SDA },
+   { J15_24XX_I2C2_SCL, H19_24XX_I2C2_SDA },
+};
+#else
+static const int omap24xx_pins[][2] = {};
+#endif
+#if defined(CONFIG_ARCH_OMAP34XX)
+static const int omap34xx_pins[][2] = {
+   { K21_34XX_I2C1_SCL, J21_34XX_I2C1_SDA},
+   { AF15_34XX_I2C2_SCL, AE15_34XX_I2C2_SDA},
+   { AF14_34XX_I2C3_SCL, AG14_34XX_I2C3_SDA},
+};
+#else
+static const int omap34xx_pins[][2] = {};
+#endif
+
+static void __init omap_i2c_mux_pins(int bus)
 {
-   /* TODO: Muxing for OMAP3 */
-   switch (bus_id) {
-   case 1:
-   if (cpu_class_is_omap1()) {
-   omap_cfg_reg(I2C_SCL);
-   omap_cfg_reg(I2C_SDA);
-   } else if (cpu_is_omap24xx()) {
-   omap_cfg_reg(M19_24XX_I2C1_SCL);
-   omap_cfg_reg(L15_24XX_I2C1_SDA);
-   }
-   break;
-   case 2:
-   if (cpu_is_omap24xx()) {
-   omap_cfg_reg(J15_24XX_I2C2_SCL);
-   omap_cfg_reg(H19_24XX_I2C2_SDA);
-   }
-   break;
+   int scl, sda;
+
+   if (cpu_class_is_omap1()) {
+   scl = I2C_SCL;
+   sda = I2C_SDA;
+   } else if (cpu_is_omap24xx()) {
+   scl = omap24xx_pins[bus][0];
+   sda = omap24xx_pins[bus][1];
+   } else if (cpu_is_omap34xx()) {
+   scl = omap34xx_pins[bus][0];
+   sda = omap34xx_pins[bus][1];
+   } else {
+   return;
}
+
+   omap_cfg_reg(sda);
+   omap_cfg_reg(scl);
 }
 
 int __init omap_register_i2c_bus(int bus_id, u32 clkrate,
@@ -142,6 +159,6 @@ int __init omap_register_i2c_bus(int bus_id, u32 clkrate,
res[1].start = irq;
}
 
-   omap_i2c_mux_pins(bus_id);
+   omap_i2c_mux_pins(bus_id - 1);
return platform_device_register(pdev);
 }

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 3/6] ARM: OMAP3: LDP: Add Ethernet device support to make ldp boot succeess

2008-12-05 Thread Tony Lindgren
From: Stanley.Miao [EMAIL PROTECTED]

Add Ethernet device support in board-ldp.c to make ldp can boot and mount
nfs successfully.

Signed-off-by: Stanley.Miao [EMAIL PROTECTED]
---
 arch/arm/configs/omap_ldp_defconfig |  148 +++
 arch/arm/mach-omap2/board-ldp.c |   57 ++
 arch/arm/plat-omap/include/mach/board-ldp.h |5 +
 3 files changed, 208 insertions(+), 2 deletions(-)

diff --git a/arch/arm/configs/omap_ldp_defconfig 
b/arch/arm/configs/omap_ldp_defconfig
index 948a212..b77d054 100644
--- a/arch/arm/configs/omap_ldp_defconfig
+++ b/arch/arm/configs/omap_ldp_defconfig
@@ -316,7 +316,82 @@ CONFIG_BINFMT_MISC=y
 #
 # CONFIG_PM is not set
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
-# CONFIG_NET is not set
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=y
+# CONFIG_XFRM_SUB_POLICY is not set
+CONFIG_XFRM_MIGRATE=y
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_NET_KEY=y
+CONFIG_NET_KEY_MIGRATE=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+CONFIG_INET_XFRM_MODE_BEET=y
+# CONFIG_INET_LRO is not set
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG=cubic
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_NET_DSA is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+# CONFIG_PHONET is not set
+# CONFIG_WIRELESS is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
 
 #
 # Device Drivers
@@ -332,6 +407,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 # CONFIG_DEBUG_DRIVER is not set
 # CONFIG_DEBUG_DEVRES is not set
 # CONFIG_SYS_HYPERVISOR is not set
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
 # CONFIG_MTD is not set
 # CONFIG_PARPORT is not set
 CONFIG_BLK_DEV=y
@@ -390,6 +467,54 @@ CONFIG_SCSI_LOWLEVEL=y
 # CONFIG_SCSI_DH is not set
 # CONFIG_ATA is not set
 # CONFIG_MD is not set
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+# CONFIG_PHYLIB is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_AX88796 is not set
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+# CONFIG_ENC28J60 is not set
+CONFIG_SMC911X=y
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+# CONFIG_B44 is not set
+CONFIG_NETDEV_1000=y
+CONFIG_NETDEV_1=y
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+# CONFIG_WLAN_80211 is not set
+# CONFIG_IWLWIFI_LEDS is not set
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_WAN is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
 
 #
 # Input device support
@@ -816,6 +941,27 @@ CONFIG_TMPFS=y
 # CONFIG_ROMFS_FS is not set
 # CONFIG_SYSV_FS is not set
 # CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_ROOT_NFS=y
+# CONFIG_NFSD is not set
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+# CONFIG_SUNRPC_REGISTER_V4 is not set
+CONFIG_RPCSEC_GSS_KRB5=y
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# 

[PATCH 4/6] ARM: OMAP3: DMA: Fix for sDMA Errata 1.113

2008-12-05 Thread Tony Lindgren
From: Santosh Shilimkar [EMAIL PROTECTED]

SDMA channel is not disabled after transaction error. So explicitly disable it.

Signed-off-by: Santosh Shilimkar [EMAIL PROTECTED]
Acked By : Nishant kamat [EMAIL PROTECTED]
Signed-off-by: Tony Lindgren [EMAIL PROTECTED]
---
 arch/arm/plat-omap/dma.c |   15 ++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index 50f8b4a..3df3740 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -1848,9 +1848,22 @@ static int omap2_dma_handle_ch(int ch)
printk(KERN_INFO
   DMA synchronization event drop occurred with device 
   %d\n, dma_chan[ch].dev_id);
-   if (unlikely(status  OMAP2_DMA_TRANS_ERR_IRQ))
+   if (unlikely(status  OMAP2_DMA_TRANS_ERR_IRQ)) {
printk(KERN_INFO DMA transaction error with device %d\n,
   dma_chan[ch].dev_id);
+   if (cpu_class_is_omap2()) {
+   /* Errata: sDMA Channel is not disabled
+* after a transaction error. So we explicitely
+* disable the channel
+*/
+   u32 ccr;
+
+   ccr = dma_read(CCR(ch));
+   ccr = ~OMAP_DMA_CCR_EN;
+   dma_write(ccr, CCR(ch));
+   dma_chan[ch].flags = ~OMAP_DMA_ACTIVE;
+   }
+   }
if (unlikely(status  OMAP2_DMA_SECURE_ERR_IRQ))
printk(KERN_INFO DMA secure error with device %d\n,
   dma_chan[ch].dev_id);

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 5/6] ARM: OMAP3: Add basic support for Pandora handheld console

2008-12-05 Thread Tony Lindgren
From: Grazvydas Ignotas [EMAIL PROTECTED]

This patch adds support for basic features: nand, uarts, i2c,
and rtc. Also includes defconfig.

Signed-off-by: Grazvydas Ignotas [EMAIL PROTECTED]
Signed-off-by: Tony Lindgren [EMAIL PROTECTED]
---
 arch/arm/configs/omap3_pandora_defconfig | 1409 ++
 arch/arm/mach-omap2/Kconfig  |4 
 arch/arm/mach-omap2/Makefile |1 
 arch/arm/mach-omap2/board-omap3pandora.c |  281 ++
 4 files changed, 1695 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/configs/omap3_pandora_defconfig
 create mode 100644 arch/arm/mach-omap2/board-omap3pandora.c

diff --git a/arch/arm/configs/omap3_pandora_defconfig 
b/arch/arm/configs/omap3_pandora_defconfig
new file mode 100644
index 000..09543f4
--- /dev/null
+++ b/arch/arm/configs/omap3_pandora_defconfig
@@ -0,0 +1,1409 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.28-rc7
+# Fri Dec  5 11:54:09 2008
+#
+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_NO_IOPORT is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_VECTORS_BASE=0x
+CONFIG_DEFCONFIG_LIST=/lib/modules/$UNAME_RELEASE/.config
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+CONFIG_BSD_PROCESS_ACCT=y
+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_CGROUPS is not set
+CONFIG_GROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_USER_SCHED=y
+# CONFIG_CGROUP_SCHED is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
+# CONFIG_NAMESPACES is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_KALLSYMS_EXTRA_PASS=y
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_COMPAT_BRK=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# 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
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_KMOD=y
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED=anticipatory
+CONFIG_CLASSIC_RCU=y
+# CONFIG_FREEZER is not set
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KIRKWOOD is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_LOKI is not set
+# CONFIG_ARCH_MV78XX0 is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# 

[PATCH 6/6] ARM: OMAP3: Pin multiplexing updates for 24xx and 34xx

2008-12-05 Thread Tony Lindgren
From: Arun KS [EMAIL PROTECTED]

This patch adds some new pin multiplexing options
for McBSP and McSPI from Arun KS. Also add two more
GPIOs from David Brownell.

Also mark omap24xx_cfg_reg() static.

Signed-off-by: Arun KS [EMAIL PROTECTED]
Signed-off-by: David Brownell [EMAIL PROTECTED]
Signed-off-by: Tony Lindgren [EMAIL PROTECTED]
---
 arch/arm/mach-omap2/mux.c |   44 -
 arch/arm/plat-omap/include/mach/mux.h |   41 +++
 2 files changed, 84 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c
index b139367..dacb41f 100644
--- a/arch/arm/mach-omap2/mux.c
+++ b/arch/arm/mach-omap2/mux.c
@@ -203,6 +203,15 @@ MUX_CFG_24XX(AE9_2430_USB0HS_NXT,0x13D,  0,  
0,  0,  1)
 MUX_CFG_24XX(AC7_2430_USB0HS_DATA7,  0x13E,  0,  0,  0,  1)
 
 /* 2430 McBSP */
+MUX_CFG_24XX(AD6_2430_MCBSP_CLKS,0x011E, 0,  0,  0,  1)
+
+MUX_CFG_24XX(AB2_2430_MCBSP1_CLKR,   0x011A, 0,  0,  0,  1)
+MUX_CFG_24XX(AD5_2430_MCBSP1_FSR,0x011B, 0,  0,  0,  1)
+MUX_CFG_24XX(AA1_2430_MCBSP1_DX, 0x011C, 0,  0,  0,  1)
+MUX_CFG_24XX(AF3_2430_MCBSP1_DR, 0x011D, 0,  0,  0,  1)
+MUX_CFG_24XX(AB3_2430_MCBSP1_FSX,0x011F, 0,  0,  0,  1)
+MUX_CFG_24XX(Y9_2430_MCBSP1_CLKX,0x0120, 0,  0,  0,  1)
+
 MUX_CFG_24XX(AC10_2430_MCBSP2_FSX,   0x012E, 1,  0,  0,  1)
 MUX_CFG_24XX(AD16_2430_MCBSP2_CLX,   0x012F, 1,  0,  0,  1)
 MUX_CFG_24XX(AE13_2430_MCBSP2_DX,0x0130, 1,  0,  0,  1)
@@ -211,6 +220,31 @@ MUX_CFG_24XX(AC10_2430_MCBSP2_FSX_OFF,0x012E,0,  
0,  0,  1)
 MUX_CFG_24XX(AD16_2430_MCBSP2_CLX_OFF,0x012F,0,  0,  0,  
1)
 MUX_CFG_24XX(AE13_2430_MCBSP2_DX_OFF,0x0130, 0,  0,  0,  
1)
 MUX_CFG_24XX(AD13_2430_MCBSP2_DR_OFF,0x0131, 0,  0,  0,  
1)
+
+MUX_CFG_24XX(AC9_2430_MCBSP3_CLKX,   0x0103, 0,  0,  0,  1)
+MUX_CFG_24XX(AE4_2430_MCBSP3_FSX,0x0104, 0,  0,  0,  1)
+MUX_CFG_24XX(AE2_2430_MCBSP3_DR, 0x0105, 0,  0,  0,  1)
+MUX_CFG_24XX(AF4_2430_MCBSP3_DX, 0x0106, 0,  0,  0,  1)
+
+MUX_CFG_24XX(N3_2430_MCBSP4_CLKX,0x010B, 1,  0,  0,  1)
+MUX_CFG_24XX(AD23_2430_MCBSP4_DR,0x010C, 1,  0,  0,  1)
+MUX_CFG_24XX(AB25_2430_MCBSP4_DX,0x010D, 1,  0,  0,  1)
+MUX_CFG_24XX(AC25_2430_MCBSP4_FSX,   0x010E, 1,  0,  0,  1)
+
+MUX_CFG_24XX(AE16_2430_MCBSP5_CLKX,  0x00ED, 1,  0,  0,  1)
+MUX_CFG_24XX(AF12_2430_MCBSP5_FSX,   0x00ED, 1,  0,  0,  1)
+MUX_CFG_24XX(K7_2430_MCBSP5_DX,  0x00EF, 1,  0,  0,  1)
+MUX_CFG_24XX(M1_2430_MCBSP5_DR,  0x00F0, 1,  0,  0,  1)
+
+/* 2430 MCSPI1 */
+MUX_CFG_24XX(Y18_2430_MCSPI1_CLK,0x010F, 0,  0,  0,  1)
+MUX_CFG_24XX(AD15_2430_MCSPI1_SIMO,  0x0110, 0,  0,  0,  1)
+MUX_CFG_24XX(AE17_2430_MCSPI1_SOMI,  0x0111, 0,  0,  0,  1)
+MUX_CFG_24XX(U1_2430_MCSPI1_CS0, 0x0112, 0,  0,  0,  1)
+
+/* Touchscreen GPIO */
+MUX_CFG_24XX(AF19_2430_GPIO_85,  0x0113, 3,  0,  0,  1)
+
 };
 
 #define OMAP24XX_PINS_SZ   ARRAY_SIZE(omap24xx_pins)
@@ -417,6 +451,14 @@ MUX_CFG_34XX(AD2_3430_USB3FS_PHY_MM3_TXDAT, 0x188,
 MUX_CFG_34XX(AC1_3430_USB3FS_PHY_MM3_TXEN_N, 0x18a,
OMAP34XX_MUX_MODE6 | OMAP34XX_PIN_OUTPUT)
 
+
+/* 34XX GPIO - bidirectional, unless the name has an _OUT suffix.
+ * No internal pullup/pulldown without _UP or _DOWN suffix.
+ */
+MUX_CFG_34XX(AH8_34XX_GPIO29, 0x5fa,
+   OMAP34XX_MUX_MODE4 | OMAP34XX_PIN_INPUT)
+MUX_CFG_34XX(J25_34XX_GPIO170, 0x1c6,
+   OMAP34XX_MUX_MODE4 | OMAP34XX_PIN_INPUT)
 };
 
 #define OMAP34XX_PINS_SZ   ARRAY_SIZE(omap34xx_pins)
@@ -452,7 +494,7 @@ static void __init_or_module omap2_cfg_debug(const struct 
pin_config *cfg, u16 r
 #endif
 
 #ifdef CONFIG_ARCH_OMAP24XX
-int __init_or_module omap24xx_cfg_reg(const struct pin_config *cfg)
+static int __init_or_module omap24xx_cfg_reg(const struct pin_config *cfg)
 {
static DEFINE_SPINLOCK(mux_spin_lock);
unsigned long flags;
diff --git a/arch/arm/plat-omap/include/mach/mux.h 
b/arch/arm/plat-omap/include/mach/mux.h
index 6bbf178..f4362b8 100644
--- a/arch/arm/plat-omap/include/mach/mux.h
+++ b/arch/arm/plat-omap/include/mach/mux.h
@@ -632,6 +632,15 @@ enum omap24xx_index {
AC7_2430_USB0HS_DATA7,
 
/* 2430 McBSP */
+   AD6_2430_MCBSP_CLKS,
+
+   AB2_2430_MCBSP1_CLKR,
+   AD5_2430_MCBSP1_FSR,
+   AA1_2430_MCBSP1_DX,
+   AF3_2430_MCBSP1_DR,
+   AB3_2430_MCBSP1_FSX,
+   Y9_2430_MCBSP1_CLKX,
+
AC10_2430_MCBSP2_FSX,
AD16_2430_MCBSP2_CLX,
AE13_2430_MCBSP2_DX,
@@ -641,6 +650,30 @@ enum omap24xx_index {
AE13_2430_MCBSP2_DX_OFF,
AD13_2430_MCBSP2_DR_OFF,
 

Re: [irda-users] [PATCH] OMAP IrDA driver

2008-12-05 Thread Tony Lindgren
Hi,

Just one comment below.

* Trilok Soni [EMAIL PROTECTED] [081205 01:48]:
 Hi Samuel,
 
 On Fri, Dec 5, 2008 at 2:58 PM,  [EMAIL PROTECTED] wrote:
 
  Hi,
 
  On Fri, 5 Dec 2008 12:04:29 +0530, Trilok Soni [EMAIL PROTECTED]
  wrote:
  This time adding LKML too.
  Could you please inline the patch so that we can have an easier review ?
 
 I don't have proper git-send-email integration with gmail, so I am
 going to copy/paste this patch here:

snip

 diff --git a/drivers/net/irda/omap-ir.c b/drivers/net/irda/omap-ir.c
 new file mode 100644
 index 000..bf29585
 --- /dev/null
 +++ b/drivers/net/irda/omap-ir.c
 @@ -0,0 +1,893 @@

snip

 +
 +/*
 + * Set the IrDA communications speed.
 + * Interrupt have to be disabled here.
 + */
 +static int omap_irda_startup(struct net_device *dev)
 +{
 + struct omap_irda *omap_ir = netdev_priv(dev);
 +
 + /* FIXME: use clk_* apis for UART3 clock*/
 + /* Enable UART3 clock and set UART3 to IrDA mode */
 + if (machine_is_omap_h2() || machine_is_omap_h3())
 + omap_writel(omap_readl(MOD_CONF_CTRL_0) | (1  31) | (1  15),
 + MOD_CONF_CTRL_0);
 +
 + /* Only for H2?
 +  */
 + if (omap_ir-pdata-transceiver_mode  machine_is_omap_h2()) {
 + /* Is it select_irda on H2 ? */
 + omap_writel(omap_readl(FUNC_MUX_CTRL_A) | 7,
 + FUNC_MUX_CTRL_A);
 + omap_ir-pdata-transceiver_mode(omap_ir-dev, IR_SIRMODE);
 + }
 +

It would be best to get rid of the machine_is this or that code in the
drivers, and pass the necessary flags in the platform_data.

Regards,

Tony
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/2] Putting TPS6235x into the power regulator framework

2008-12-05 Thread David Brownell
I second the comment on splitting this patch up into
its constituent chunks.  It'll be practical to review
each of them properly at that point.

Like ... it seems wrong to teach plat-omap/devices.c
about EVM-specific stuff; it should stay generic.

And those EVM-specific bits are done wrong too; those
regulators are I2C devices, not platform devices!
Plus, their constraints should be board-specific, not
generic.  Move all that into the omap3evm board code.

You still didn't remove the drivers/i2c/chips stuff.
Move the *ENTIRE* driver to drivers/regulator, and
get rid of all the platform_device stuff.

Good to see this driver start moving into its proper
home, though.  :)


On Thursday 04 December 2008, [EMAIL PROTECTED] wrote:
 Not fixed comments:
 Not clear on how to implement runtime check for PR785 and would require some
 inputs on implementing the same.

The TPS driver should not know or care about the PR785 card;
it should just respond to the various requests.  If there's
any knowledge of PR785 in drivers/anything/* you should treat
that as a bug (and fix it before merge).  Since the chips are
pretty much the same other than some bit interpretations, just
use the driver_data in the i2c_device_id to describe whatever
differences the driver needs to know about.

With respect to runtime checking, first make sure the
OMAP3 EVM init code is able to cleanly choose between the
two power card options.  Once that's done you can try
turning that into a runtime check.

- Dave
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [irda-users] [PATCH] OMAP IrDA driver

2008-12-05 Thread Felipe Balbi
On Fri, Dec 05, 2008 at 03:18:10PM +0530, Trilok Soni wrote:
 +struct omap_irda {
 + unsigned char open;
 + int speed;  /* Current IrDA speed */
 + int newspeed;
 +
 + struct net_device_stats stats;
 + struct irlap_cb *irlap;
 + struct qos_info qos;
 +
 + int rx_dma_channel;
 + int tx_dma_channel;
 +
 + dma_addr_t rx_buf_dma_phys; /* Physical address of RX DMA buffer */
 + dma_addr_t tx_buf_dma_phys; /* Physical address of TX DMA buffer */
 +
 + void *rx_buf_dma_virt;  /* Virtual address of RX DMA buffer */
 + void *tx_buf_dma_virt;  /* Virtual address of TX DMA buffer */

should these two be void __iomem * ?

 +
 + struct device *dev;
 + struct omap_irda_config *pdata;
 +};
 +
 +static inline void uart_reg_out(int idx, u8 val)
 +{
 + omap_writeb(val, idx);

__raw_writeb(), pass a reference to struct omap_irda here so you'd have
access to a void __iomem *base (read below).

 +}
 +
 +static inline u8 uart_reg_in(int idx)
 +{
 + u8 b = omap_readb(idx);

ditto.

 + return b;
 +}
 +
 +/* forward declarations */
 +static int omap_irda_set_speed(struct net_device *dev, int speed);
 +
 +static void omap_irda_start_rx_dma(struct omap_irda *omap_ir)
 +{
 + /* Configure DMA */
 + omap_set_dma_src_params(omap_ir-rx_dma_channel, 0x3, 0x0,
 + omap_ir-pdata-src_start,
 + 0, 0);
 +
 + omap_enable_dma_irq(omap_ir-rx_dma_channel, 0x01);
 +
 + omap_set_dma_dest_params(omap_ir-rx_dma_channel, 0x0, 0x1,
 + omap_ir-rx_buf_dma_phys,
 + 0, 0);
 +
 + omap_set_dma_transfer_params(omap_ir-rx_dma_channel, 0x0,
 + IRDA_SKB_MAX_MTU, 0x1,
 + 0x0, omap_ir-pdata-rx_trigger, 0);
 +
 + omap_start_dma(omap_ir-rx_dma_channel);
 +}
 +
 +static void omap_start_tx_dma(struct omap_irda *omap_ir, int size)
 +{
 + /* Configure DMA */
 + omap_set_dma_dest_params(omap_ir-tx_dma_channel, 0x03, 0x0,
 + omap_ir-pdata-dest_start, 0, 0);
 +
 + omap_enable_dma_irq(omap_ir-tx_dma_channel, 0x01);
 +
 + omap_set_dma_src_params(omap_ir-tx_dma_channel, 0x0, 0x1,
 + omap_ir-tx_buf_dma_phys,
 + 0, 0);
 +
 + omap_set_dma_transfer_params(omap_ir-tx_dma_channel, 0x0, size, 0x1,
 + 0x0, omap_ir-pdata-tx_trigger, 0);
 +
 + /* Start DMA */
 + omap_start_dma(omap_ir-tx_dma_channel);
 +}
 +
 +/* DMA RX callback - normally, we should not go here,
 + * it calls only if something is going wrong
 + */
 +static void omap_irda_rx_dma_callback(int lch, u16 ch_status, void *data)
 +{
 + struct net_device *dev = data;
 + struct omap_irda *omap_ir = netdev_priv(dev);
 +
 + printk(KERN_ERR RX Transfer error or very big frame\n);

you have a device pointer in omap_ir, use it and convert these to
dev_dbg() calls.

ditto to all below.

 +static int omap_irda_startup(struct net_device *dev)
 +{
 + struct omap_irda *omap_ir = netdev_priv(dev);
 +
 + /* FIXME: use clk_* apis for UART3 clock*/
 + /* Enable UART3 clock and set UART3 to IrDA mode */
 + if (machine_is_omap_h2() || machine_is_omap_h3())
 + omap_writel(omap_readl(MOD_CONF_CTRL_0) | (1  31) | (1  15),
 + MOD_CONF_CTRL_0);
 +
 + /* Only for H2?
 +  */
 + if (omap_ir-pdata-transceiver_mode  machine_is_omap_h2()) {
 + /* Is it select_irda on H2 ? */
 + omap_writel(omap_readl(FUNC_MUX_CTRL_A) | 7,
 + FUNC_MUX_CTRL_A);

__raw_writel/__raw_readl.

 +static int omap_irda_probe(struct platform_device *pdev)
 +{
 + struct net_device *dev;
 + struct omap_irda *omap_ir;
 + struct omap_irda_config *pdata = pdev-dev.platform_data;
 + unsigned int baudrate_mask;
 + int err = 0;
 + int irq = NO_IRQ;

you should probably have a struct resource *res = platform_get_resource(pdev, 
IORESOURCE_MEM, 0);

and use it to ioremap() the base address. Then you can stop using the
omap_read[bsl]/omap_write[bsl] calls and switch over to standard
__raw_read[bsl]/__raw_write[bsl] ones.

 +
 + if (!pdata) {
 + printk(KERN_ERR IrDA Platform data not supplied\n);

dev_dbg(pdev-dev, ..);

 + return -ENOENT;
 + }
 +
 + if (!pdata-rx_channel || !pdata-tx_channel) {
 + printk(KERN_ERR IrDA invalid rx/tx channel value\n);
dev_dbg(pdev-dev, ..);
 + return -ENOENT;
 + }
 +
 + irq = platform_get_irq(pdev, 0);
 + if (irq = 0) {
 + printk(KERN_WARNING no irq for IrDA\n);

dev_dbg(pdev-dev, ..);

 + return -ENOENT;
 + }
 +
 + dev = alloc_irdadev(sizeof(struct omap_irda));
 + if (!dev)
 + goto err_mem_1;
 +
 +

one 

Re: Setting dss1_alwon_fck rate

2008-12-05 Thread Steve Sakoman
On Fri, Dec 5, 2008 at 1:02 AM,  [EMAIL PROTECTED] wrote:
 Hi,

 Any comments on these two patches from Mans, that enable setting
 dss1_alwon_fck? I've been using them with the new DSS, works fine for
 me.

I've been using them on recent Overo builds (using current DSS) and
they work for me too.

Steve


 http://marc.info/?l=linux-omapm=122454507816731w=2

 Filling the set_rate and round_rate fields of dpll4_m4_ck makes
 this clock programmable through clk_set_rate().  This is needed
 to give omapfb control over the dss1_alwon_fck rate.

 Signed-off-by: Mans Rullgard [EMAIL PROTECTED]
 ---
  arch/arm/mach-omap2/clock34xx.h |2 ++
  1 files changed, 2 insertions(+), 0 deletions(-)


 http://marc.info/?l=linux-omapm=122454507816734w=2

 This makes clk_get_parent() work on OMAP2/3.

 Signed-off-by: Mans Rullgard [EMAIL PROTECTED]
 ---
  arch/arm/mach-omap2/clock.c |5 +
  arch/arm/mach-omap2/clock.h |1 +
  arch/arm/mach-omap2/clock24xx.c |1 +
  arch/arm/mach-omap2/clock34xx.c |1 +
  4 files changed, 8 insertions(+), 0 deletions(-)

  Tomi
 --
 To unsubscribe from this list: send the line unsubscribe linux-omap in
 the body of a message to [EMAIL PROTECTED]
 More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Bug: enabling USB-TLL fclk

2008-12-05 Thread Steve Sakoman
On Fri, Oct 24, 2008 at 4:19 PM, Pandita, Vikram [EMAIL PROTECTED] wrote:

 Paul

  I was debugging why EHCI is not coming up and getting stuck in infinite loop 
 for TLL not enabling.

EHCI is still broken on the current top of tree -- same infinite loop.

Have anyone figured out what is going wrong here?

Steve


 I found that there is issue with clock framework in enabling usbtll_fck 
 clock.

 On enabling tll-fck clock, the framework returns error for the node:

 static struct clk dpll5_ck = {
.name   = dpll5_ck,
.parent = sys_ck,
.prcm_mod   = PLL_MOD,
.dpll_data  = dpll5_dd,
.flags  = CLOCK_IN_OMAP3430ES2 | RATE_PROPAGATES,
.enable = omap3_noncore_dpll_enable,
.disable= omap3_noncore_dpll_disable,
.round_rate = omap2_dpll_round_rate,
.set_rate   = omap3_noncore_dpll_set_rate,
.clkdm  = { .name = dpll5_clkdm },
.recalc = omap3_dpll_recalc,
 };


 If I set the FCLK for USB-TLL directly as per following patch, EHCI works 
 fine.
 Please check what is wrong with the above clock node.

 ---
 diff --git a/drivers/usb/host/ehci-omap.c b/drivers/usb/host/ehci-omap.c
 index 419e70a..96b9df5 100644
 --- a/drivers/usb/host/ehci-omap.c
 +++ b/drivers/usb/host/ehci-omap.c
 @@ -236,10 +236,9 @@ static int omap_start_ehc(struct platform_device *dev, 
 struct usb_hcd *hcd)
  #endif

/* Configure TLL for 60Mhz clk for ULPI */
 -   ehci_clocks-usbtll_fck_clk = clk_get(dev-dev, USBHOST_TLL_FCLK);
 -   if (IS_ERR(ehci_clocks-usbtll_fck_clk))
 -   return PTR_ERR(ehci_clocks-usbtll_fck_clk);
 -   clk_enable(ehci_clocks-usbtll_fck_clk);
 +
 +   /* Force enable FCLK for USB-TLL */
 +   omap_writel(12, 0x48004A08); /* CM_FCLKEN3_CORE */

ehci_clocks-usbtll_ick_clk = clk_get(dev-dev, USBHOST_TLL_ICKL);
if (IS_ERR(ehci_clocks-usbtll_ick_clk))
 --
 To unsubscribe from this list: send the line unsubscribe linux-omap in
 the body of a message to [EMAIL PROTECTED]
 More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Setting dss1_alwon_fck rate

2008-12-05 Thread Tony Lindgren
* Steve Sakoman [EMAIL PROTECTED] [081205 14:57]:
 On Fri, Dec 5, 2008 at 1:02 AM,  [EMAIL PROTECTED] wrote:
  Hi,
 
  Any comments on these two patches from Mans, that enable setting
  dss1_alwon_fck? I've been using them with the new DSS, works fine for
  me.
 
 I've been using them on recent Overo builds (using current DSS) and
 they work for me too.

Paul, have you had a chance to look at Mans' patches?

Tony


 
 Steve
 
 
  http://marc.info/?l=linux-omapm=122454507816731w=2
 
  Filling the set_rate and round_rate fields of dpll4_m4_ck makes
  this clock programmable through clk_set_rate().  This is needed
  to give omapfb control over the dss1_alwon_fck rate.
 
  Signed-off-by: Mans Rullgard [EMAIL PROTECTED]
  ---
   arch/arm/mach-omap2/clock34xx.h |2 ++
   1 files changed, 2 insertions(+), 0 deletions(-)
 
 
  http://marc.info/?l=linux-omapm=122454507816734w=2
 
  This makes clk_get_parent() work on OMAP2/3.
 
  Signed-off-by: Mans Rullgard [EMAIL PROTECTED]
  ---
   arch/arm/mach-omap2/clock.c |5 +
   arch/arm/mach-omap2/clock.h |1 +
   arch/arm/mach-omap2/clock24xx.c |1 +
   arch/arm/mach-omap2/clock34xx.c |1 +
   4 files changed, 8 insertions(+), 0 deletions(-)
 
   Tomi
  --
  To unsubscribe from this list: send the line unsubscribe linux-omap in
  the body of a message to [EMAIL PROTECTED]
  More majordomo info at  http://vger.kernel.org/majordomo-info.html
 
 --
 To unsubscribe from this list: send the line unsubscribe linux-omap in
 the body of a message to [EMAIL PROTECTED]
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: OMAP Zoom kernel ALSA build problem

2008-12-05 Thread David Brownell
On Thursday 04 December 2008, Tony Lindgren wrote:
  So for example the NAND acceleration stuff seems to have gone
  nowhere ... while that ZOOM fork may have some updates, they've not
  gotten into the main OMAP tree, or into mainline.
 
 That is frustrating. People at TI _should_ be working on sending
 patches from zoom to upstream.

Or even just getting their goodness into the linux-omap tree,
as a first step towards getting upstream.

I used the OMAP3 NAND stuff as an example, since we saw a few
(unmergeable) patches but then everything seemed to fizzle.


 Sure the other people can also 
 produce patches against the mainline and linux-omap kernel out
 of the zoom tree.

That would require people to track the ZOOM kernels, as well
as mainline and linux-omap (and their own patch queues).
Not too realistic.


 In general, here's how the patch flow needs to happen:
 
 - All driver patches need to be posted to the right driver mailing
   lists with linux-omap mailing list Cc'd. The patches need need
   to be against the mainline kernel tree. The recent developments
   with the ASoC and the new fb/v4l code is a good example how this
   is working.

Yes.  And in the case of stuff like NAND, where there's a ZOOM
driver and a Linux-OMAP driver but nothing in mainline, I suggest
syncing those two *before* pushing to mainline ... though there
may well be a case for involving the relevant mainline team at
that point too, or ignoring one driver.


 - All core omap code needs to be posted to linux-omap for review
   and will then be queued up into going into the mainline tree.
   For any patches that apply already into the mainline kernel,
   the patches need to be against the mainline kernel. For any
   more complex patches, also linux-arm-kernel and maybe LKML lists
   should be Cc'd.

Yep, that's straightforward.  By core I presume you mean
arch/arm/plat-omap or maybe mach-omap{1,2}.


 Soonish the linux-omap tree will become just a queue for patches
 for the merge windows. So essentially we'll be using the mainline
 kernel with some branches automerged hopefully real-soon-now.

That sounds like an interesting plan.  It'll cause some level
of disruption ... which we probably need to have, since without
it folk seem to have little incentive to track mainline.

A slightly different spin:  treat every divergence from mainline
as a bug that needs fixing.  Those branches should mostly have
fairly short lifespans...


 I think the right time to make that switch after Paul's clock
 patches are integrated into the mainline kernel. Then we'll move
 the non-mainline code into their own branches, or just drop it
 if nobody wants to maintain it.

Sounds like a plan.  Let's see how different the OMAP tree is
from mainline at that point, and see what the branches will be.

- Dave

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/2] OMAP: Make dpll4_m4_ck programmable with clk_set_rate()

2008-12-05 Thread Paul Walmsley
On Tue, 21 Oct 2008, Mans Rullgard wrote:

 Filling the set_rate and round_rate fields of dpll4_m4_ck makes
 this clock programmable through clk_set_rate().  This is needed
 to give omapfb control over the dss1_alwon_fck rate.
 
 Signed-off-by: Mans Rullgard [EMAIL PROTECTED]

Acked-by: Paul Walmsley [EMAIL PROTECTED]

Måns, sorry this took so long, these two patches slipped through the 
cracks here.


- Paul

Re: [PATCH 2/2] OMAP: Add clk_get_parent() for OMAP2/3

2008-12-05 Thread Paul Walmsley
On Tue, 21 Oct 2008, Mans Rullgard wrote:

 This makes clk_get_parent() work on OMAP2/3.
 
 Signed-off-by: Mans Rullgard [EMAIL PROTECTED]

Acked-by: Paul Walmsley [EMAIL PROTECTED]


- Paul
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/2] OMAP: Make dpll4_m4_ck programmable with clk_set_rate()

2008-12-05 Thread Tony Lindgren
* Paul Walmsley [EMAIL PROTECTED] [081205 15:52]:
 On Tue, 21 Oct 2008, Mans Rullgard wrote:
 
  Filling the set_rate and round_rate fields of dpll4_m4_ck makes
  this clock programmable through clk_set_rate().  This is needed
  to give omapfb control over the dss1_alwon_fck rate.
  
  Signed-off-by: Mans Rullgard [EMAIL PROTECTED]
 
 Acked-by: Paul Walmsley [EMAIL PROTECTED]
 
 Måns, sorry this took so long, these two patches slipped through the 
 cracks here.

Pushing both to l-o tree today. Paul, I take it you will queue these
up for mainline via your clock series?

Måns, I heard you have some display patches? How about queuing up
those on the fbdev list?

Regards,

Tony
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] OMAP2/3 clock: fix DPLL rate calculation

2008-12-05 Thread Tony Lindgren
* Paul Walmsley [EMAIL PROTECTED] [081130 23:44]:
 
 From: Tero Kristo [EMAIL PROTECTED]
 
 Noncore dpll can enter autoidle state, in which case the rate calculation
 fails.  Fixed by checking dpll mode instead of idle status.
 
 Also, previously, the OMAP2xxx code returned the wrong value for the
 DPLL rate under some conditions.  Move the CORE_CLK rate recalculation
 to clock24xx.c:omap2xxx_clk_get_core_rate().
 
 This patch is a collaboration between Tero Kristo [EMAIL PROTECTED] 
 and Paul Walmsley [EMAIL PROTECTED].  Thanks to Peter de Schrijver 
 [EMAIL PROTECTED] for help debugging and Kevin Hilman 
 [EMAIL PROTECTED] for reporting the OMAP2 build problems with 
 an earlier version of this patch.

Pushing to l-o tree today.

Tony

 
 Signed-off-by: Tero Kristo [EMAIL PROTECTED]
 Signed-off-by: Paul Walmsley [EMAIL PROTECTED]
 Cc: Kevin Hilman [EMAIL PROTECTED]
 Cc: Peter de Schrijver [EMAIL PROTECTED]
 ---
  arch/arm/mach-omap2/clock.c |   21 +++--
  arch/arm/mach-omap2/clock.h |   15 
  arch/arm/mach-omap2/clock24xx.c |   39 
 +--
  arch/arm/mach-omap2/clock24xx.h |4 ++-
  arch/arm/mach-omap2/clock34xx.c |7 +++---
  arch/arm/mach-omap2/sdrc2xxx.c  |2 ++
  arch/arm/plat-omap/include/mach/clock.h |   13 +++---
  7 files changed, 62 insertions(+), 39 deletions(-)
 
 diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c
 index 42af286..e7fa9b0 100644
 --- a/arch/arm/mach-omap2/clock.c
 +++ b/arch/arm/mach-omap2/clock.c
 @@ -71,10 +71,6 @@
  #define DPLL_FINT_UNDERFLOW  -1
  #define DPLL_FINT_INVALID-2
  
 -/* Some OMAP2xxx CM_CLKSEL_PLL.ST_CORE_CLK bits - for omap2_get_dpll_rate() 
 */
 -#define ST_CORE_CLK_REF  0x1
 -#define ST_CORE_CLK_32K  0x3
 -
  /* Bitmask to isolate the register type of clk.enable_reg */
  #define PRCM_REGTYPE_MASK0xf0
  /* various CM register type options */
 @@ -267,19 +263,20 @@ u32 omap2_get_dpll_rate(struct clk *clk)
   return 0;
  
   /* Return bypass rate if DPLL is bypassed */
 - v = cm_read_mod_reg(clk-prcm_mod, dd-idlest_reg);
 - v = dd-idlest_mask;
 - v = __ffs(dd-idlest_mask);
 + v = cm_read_mod_reg(clk-prcm_mod, dd-control_reg);
 + v = dd-enable_mask;
 + v = __ffs(dd-enable_mask);
 +
   if (cpu_is_omap24xx()) {
  
 - if (v == ST_CORE_CLK_REF)
 - return clk-parent-rate; /* sys_clk */
 - else if (v == ST_CORE_CLK_32K)
 - return 32768;
 + if (v == OMAP2XXX_EN_DPLL_LPBYPASS ||
 + v == OMAP2XXX_EN_DPLL_FRBYPASS)
 + return clk-parent-rate;
  
   } else if (cpu_is_omap34xx()) {
  
 - if (!v)
 + if (v == OMAP3XXX_EN_DPLL_LPBYPASS ||
 + v == OMAP3XXX_EN_DPLL_FRBYPASS)
   return dd-bypass_clk-rate;
  
   }
 diff --git a/arch/arm/mach-omap2/clock.h b/arch/arm/mach-omap2/clock.h
 index bcb0c03..c95e48c 100644
 --- a/arch/arm/mach-omap2/clock.h
 +++ b/arch/arm/mach-omap2/clock.h
 @@ -21,6 +21,21 @@
  /* The maximum error between a target DPLL rate and the rounded rate in Hz */
  #define DEFAULT_DPLL_RATE_TOLERANCE  5
  
 +/* CM_CLKSEL2_PLL.CORE_CLK_SRC bits (2XXX) */
 +#define CORE_CLK_SRC_32K 0x0
 +#define CORE_CLK_SRC_DPLL0x1
 +#define CORE_CLK_SRC_DPLL_X2 0x2
 +
 +/* OMAP2xxx CM_CLKEN_PLL.EN_DPLL bits - for omap2_get_dpll_rate() */
 +#define OMAP2XXX_EN_DPLL_LPBYPASS0x1
 +#define OMAP2XXX_EN_DPLL_FRBYPASS0x2
 +#define OMAP2XXX_EN_DPLL_LOCKED  0x3
 +
 +/* OMAP3xxx CM_CLKEN_PLL*.EN_*_DPLL bits - for omap2_get_dpll_rate() */
 +#define OMAP3XXX_EN_DPLL_LPBYPASS0x5
 +#define OMAP3XXX_EN_DPLL_FRBYPASS0x6
 +#define OMAP3XXX_EN_DPLL_LOCKED  0x7
 +
  int omap2_clk_init(void);
  int omap2_clk_enable(struct clk *clk);
  void omap2_clk_disable(struct clk *clk);
 diff --git a/arch/arm/mach-omap2/clock24xx.c b/arch/arm/mach-omap2/clock24xx.c
 index 32f6632..4bd21dd 100644
 --- a/arch/arm/mach-omap2/clock24xx.c
 +++ b/arch/arm/mach-omap2/clock24xx.c
 @@ -60,19 +60,32 @@ static struct clk *sclk;
   * Omap24xx specific clock functions
   *-*/
  
 -/* This actually returns the rate of core_ck, not dpll_ck. */
 -static u32 omap2_get_dpll_rate_24xx(struct clk *tclk)
 +/**
 + * omap2xxx_clk_get_core_rate - return the CORE_CLK rate
 + * @clk: pointer to the combined dpll_ck + core_ck (currently dpll_ck)
 + *
 + * Returns the CORE_CLK rate.  CORE_CLK can have one of three rate
 + * sources on OMAP2xxx: the DPLL CLKOUT rate, DPLL CLKOUTX2, or 32KHz
 + * (the latter is unusual).  This currently should be called with
 + * struct clk *dpll_ck, which is a composite clock of dpll_ck 

Re: [PATCH v2 1/5] OMAP3: PM: HSMMC: force MMC module reset on boot

2008-12-05 Thread Tony Lindgren
* Kevin Hilman [EMAIL PROTECTED] [081201 08:23]:
 The bootloader may leave the MMC in a state which prevents hitting
 retention.  Even when MMC is not compiled in, each MMC module needs to
 be forced into reset.

Pushing to l-o tree, and adding omap mmc queue for mainline.

Tony

 
 Signed-off-by: Kevin Hilman [EMAIL PROTECTED]
 ---
  arch/arm/mach-omap2/devices.c |   85 
 +
  1 files changed, 85 insertions(+), 0 deletions(-)
 
 diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
 index 241e418..423647e 100644
 --- a/arch/arm/mach-omap2/devices.c
 +++ b/arch/arm/mach-omap2/devices.c
 @@ -14,6 +14,7 @@
  #include linux/init.h
  #include linux/platform_device.h
  #include linux/io.h
 +#include linux/clk.h
  
  #include mach/hardware.h
  #include asm/mach-types.h
 @@ -358,6 +359,89 @@ static inline void omap_init_sha1_md5(void) { }
  
  /*-*/
  
 +#ifdef CONFIG_ARCH_OMAP3
 +
 +#define MMCHS_SYSCONFIG  0x0010
 +#define MMCHS_SYSCONFIG_SWRESET  (1  1)
 +#define MMCHS_SYSSTATUS  0x0014
 +#define MMCHS_SYSSTATUS_RESETDONE(1  0)
 +
 +static struct platform_device dummy_pdev = {
 + .dev = {
 + .bus = platform_bus_type,
 + },
 +};
 +
 +/**
 + * omap_hsmmc_reset() - Full reset of each HS-MMC controller
 + *
 + * Ensure that each MMC controller is fully reset.  Controllers
 + * left in an unknown state (by bootloader) may prevent retention
 + * or OFF-mode.  This is especially important in cases where the
 + * MMC driver is not enabled, _or_ built as a module.
 + *
 + * In order for reset to work, interface, functional and debounce
 + * clocks must be enabled.  The debounce clock comes from func_32k_clk
 + * and is not under SW control, so we only enable i- and f-clocks.
 + **/
 +static void __init omap_hsmmc_reset(void)
 +{
 + u32 i, nr_controllers = cpu_is_omap34xx() ? OMAP34XX_NR_MMC :
 + OMAP24XX_NR_MMC;
 +
 + for (i = 0; i  nr_controllers; i++) {
 + u32 v, base = 0;
 + struct clk *iclk, *fclk;
 + struct device *dev = dummy_pdev.dev;
 +
 + switch (i) {
 + case 0:
 + base = OMAP2_MMC1_BASE;
 + break;
 + case 1:
 + base = OMAP2_MMC2_BASE;
 + break;
 + case 2:
 + base = OMAP3_MMC3_BASE;
 + break;
 + }
 +
 + dummy_pdev.id = i;
 + iclk = clk_get(dev, mmchs_ick);
 + if (iclk  clk_enable(iclk))
 + iclk = NULL;
 +
 + fclk = clk_get(dev, mmchs_fck);
 + if (fclk  clk_enable(fclk))
 + fclk = NULL;
 +
 + if (!iclk || !fclk) {
 + printk(KERN_WARNING
 +%s: Unable to enable clocks for MMC%d, 
 +cannot reset.\n,  __func__, i);
 + break;
 + }
 +
 + omap_writel(MMCHS_SYSCONFIG_SWRESET, base + MMCHS_SYSCONFIG);
 + v = omap_readl(base + MMCHS_SYSSTATUS);
 + while (!(omap_readl(base + MMCHS_SYSSTATUS) 
 +  MMCHS_SYSSTATUS_RESETDONE))
 + cpu_relax();
 +
 + if (fclk) {
 + clk_disable(fclk);
 + clk_put(fclk);
 + }
 + if (iclk) {
 + clk_disable(iclk);
 + clk_put(iclk);
 + }
 + }
 +}
 +#else
 +static inline void omap_hsmmc_reset(void) {}
 +#endif
 +
  #if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE) || \
   defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE)
  
 @@ -477,6 +561,7 @@ static int __init omap2_init_devices(void)
   /* please keep these calls, and their implementations above,
* in alphabetical order so they're easier to sort through.
*/
 + omap_hsmmc_reset();
   omap_init_camera();
   omap_init_mbox();
   omap_init_mcspi();
 -- 
 1.6.0.3
 
 --
 To unsubscribe from this list: send the line unsubscribe linux-omap in
 the body of a message to [EMAIL PROTECTED]
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


mmc broken?

2008-12-05 Thread Steve Sakoman
I attempted an Overo build this afternoon with
fb3d15c023ff08c879155db630895f38526b95f6.

I set bootargs for rootfs on mmc.  The boot progresses normally and
then hangs waiting for the rootfs to mount.

Where I previously got:

  Waiting for root device /dev/mmcblk0p2...
  mmc0: host does not support reading read-only switch. assuming write-enable.
  mmc0: new SD card at address ee21
  mmcblk0: mmc0:ee21 SU02G 1.89 GiB
   mmcblk0: p1 p2

I now get:

  Waiting for root device /dev/mmcblk0p2...

Has anyone else seen mmc issues with rc7?

Steve
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[FYI PATCH] ASOC:TWL4030 Audio capture fix

2008-12-05 Thread Steve Sakoman
A couple of folks have noticed an issue with audio capture -- the
capture result is always silence.

The patch below is a quick fix for those with this issue.  There are
substantial changes to the codec driver that will be trickling down
from ASoC, and they deal with this issue differently.

So consider this as a bandaid for those who don't want to wait for the
trickle down :-)

Steve


diff --git a/sound/soc/codecs/twl4030.c b/sound/soc/codecs/twl4030.c
index ee2f0d3..8b4aafb 100644
--- a/sound/soc/codecs/twl4030.c
+++ b/sound/soc/codecs/twl4030.c
@@ -45,8 +45,8 @@ static const u8 twl4030_reg[TWL4030_CACHEREGNUM] = {
0xc3, /* REG_OPTION (0x2)   */
0x00, /* REG_UNKNOWN(0x3)   */
0x00, /* REG_MICBIAS_CTL(0x4)   */
-   0x24, /* REG_ANAMICL(0x5)   */
-   0x04, /* REG_ANAMICR(0x6)   */
+   0x34, /* REG_ANAMICL(0x5)   */
+   0x14, /* REG_ANAMICR(0x6)   */
0x0a, /* REG_AVADC_CTL  (0x7)   */
0x00, /* REG_ADCMICSEL  (0x8)   */
0x00, /* REG_DIGMIXING  (0x9)   */
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: mmc broken?

2008-12-05 Thread Tony Lindgren
* Tony Lindgren [EMAIL PROTECTED] [081205 16:34]:
 * Steve Sakoman [EMAIL PROTECTED] [081205 16:31]:
  I attempted an Overo build this afternoon with
  fb3d15c023ff08c879155db630895f38526b95f6.
  
  I set bootargs for rootfs on mmc.  The boot progresses normally and
  then hangs waiting for the rootfs to mount.
  
  Where I previously got:
  
Waiting for root device /dev/mmcblk0p2...
mmc0: host does not support reading read-only switch. assuming 
  write-enable.
mmc0: new SD card at address ee21
mmcblk0: mmc0:ee21 SU02G 1.89 GiB
 mmcblk0: p1 p2
  
  I now get:
  
Waiting for root device /dev/mmcblk0p2...
  
  Has anyone else seen mmc issues with rc7?
 
 I think I did it again while cleaning up.. Can you try this patch?
 The name was conflicting with the other MMC omap driver.

Actually now it breaks for earlier omaps, it  needs to be like this
patch instead.

 Tony

diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c
index 25c6d10..2c3c72f 100644
--- a/arch/arm/plat-omap/devices.c
+++ b/arch/arm/plat-omap/devices.c
@@ -204,9 +204,15 @@ int __init omap_mmc_add(int id, unsigned long base, unsigned long size,
 {
 	struct platform_device *pdev;
 	struct resource res[OMAP_MMC_NR_RES];
+	char *name;
 	int ret;
 
-	pdev = platform_device_alloc(mmci-omap, id);
+	if (cpu_class_is_omap1() || cpu_is_omap242x())
+		name = mmci-omap;
+	else
+		name = mmci-omap-hs;
+
+	pdev = platform_device_alloc(name, id);
 	if (!pdev)
 		return -ENOMEM;
 


Re: mmc broken?

2008-12-05 Thread Steve Sakoman
On Fri, Dec 5, 2008 at 4:49 PM, Tony Lindgren [EMAIL PROTECTED] wrote:
 * Tony Lindgren [EMAIL PROTECTED] [081205 16:34]:
 * Steve Sakoman [EMAIL PROTECTED] [081205 16:31]:
  I attempted an Overo build this afternoon with
  fb3d15c023ff08c879155db630895f38526b95f6.
 
  I set bootargs for rootfs on mmc.  The boot progresses normally and
  then hangs waiting for the rootfs to mount.
 
  Where I previously got:
 
Waiting for root device /dev/mmcblk0p2...
mmc0: host does not support reading read-only switch. assuming 
  write-enable.
mmc0: new SD card at address ee21
mmcblk0: mmc0:ee21 SU02G 1.89 GiB
 mmcblk0: p1 p2
 
  I now get:
 
Waiting for root device /dev/mmcblk0p2...
 
  Has anyone else seen mmc issues with rc7?

 I think I did it again while cleaning up.. Can you try this patch?
 The name was conflicting with the other MMC omap driver.

 Actually now it breaks for earlier omaps, it  needs to be like this
 patch instead.

Heh, isn't that how it always goes!  Two steps forward, one step back :-)

I tested your first patch and it did indeed solve the issue.  Looks
like your second patch will also work.  I'll verify this later this
evening.

Steve
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/2] OMAP: Make dpll4_m4_ck programmable with clk_set_rate()

2008-12-05 Thread Paul Walmsley
On Fri, 5 Dec 2008, Tony Lindgren wrote:

 Pushing both to l-o tree today. Paul, I take it you will queue these
 up for mainline via your clock series?

Yes, and that will go for any other clock patches that you push into l-o 
between now and the time that I send that series to Russell.

- Paul
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/2] OMAP: Make dpll4_m4_ck programmable with clk_set_rate()

2008-12-05 Thread Tony Lindgren
* Paul Walmsley [EMAIL PROTECTED] [081205 17:04]:
 On Fri, 5 Dec 2008, Tony Lindgren wrote:
 
  Pushing both to l-o tree today. Paul, I take it you will queue these
  up for mainline via your clock series?
 
 Yes, and that will go for any other clock patches that you push into l-o 
 between now and the time that I send that series to Russell.

OK, so I'll push the clock patches from Kevin's queue posted on Monday
to l-o, and then at some point we'll switch to your clock queue for
l-o tree.

Regards,

Tony
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: mmc broken?

2008-12-05 Thread Tony Lindgren
* Steve Sakoman [EMAIL PROTECTED] [081205 17:01]:
 On Fri, Dec 5, 2008 at 4:49 PM, Tony Lindgren [EMAIL PROTECTED] wrote:
  * Tony Lindgren [EMAIL PROTECTED] [081205 16:34]:
  * Steve Sakoman [EMAIL PROTECTED] [081205 16:31]:
   I attempted an Overo build this afternoon with
   fb3d15c023ff08c879155db630895f38526b95f6.
  
   I set bootargs for rootfs on mmc.  The boot progresses normally and
   then hangs waiting for the rootfs to mount.
  
   Where I previously got:
  
 Waiting for root device /dev/mmcblk0p2...
 mmc0: host does not support reading read-only switch. assuming 
   write-enable.
 mmc0: new SD card at address ee21
 mmcblk0: mmc0:ee21 SU02G 1.89 GiB
  mmcblk0: p1 p2
  
   I now get:
  
 Waiting for root device /dev/mmcblk0p2...
  
   Has anyone else seen mmc issues with rc7?
 
  I think I did it again while cleaning up.. Can you try this patch?
  The name was conflicting with the other MMC omap driver.
 
  Actually now it breaks for earlier omaps, it  needs to be like this
  patch instead.
 
 Heh, isn't that how it always goes!  Two steps forward, one step back :-)

:)

 I tested your first patch and it did indeed solve the issue.  Looks
 like your second patch will also work.  I'll verify this later this
 evening.

Pushed it already, seems to work.

Tony
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: OMAP Zoom kernel ALSA build problem

2008-12-05 Thread Tony Lindgren
* David Brownell [EMAIL PROTECTED] [081205 15:36]:
 On Thursday 04 December 2008, Tony Lindgren wrote:
   So for example the NAND acceleration stuff seems to have gone
   nowhere ... while that ZOOM fork may have some updates, they've not
   gotten into the main OMAP tree, or into mainline.
  
  That is frustrating. People at TI _should_ be working on sending
  patches from zoom to upstream.
 
 Or even just getting their goodness into the linux-omap tree,
 as a first step towards getting upstream.
 
 I used the OMAP3 NAND stuff as an example, since we saw a few
 (unmergeable) patches but then everything seemed to fizzle.

Well if somebody does a nand branch against the mainline tree
that we can automerge to l-o tree on daily basis, sure :)

  Sure the other people can also 
  produce patches against the mainline and linux-omap kernel out
  of the zoom tree.
 
 That would require people to track the ZOOM kernels, as well
 as mainline and linux-omap (and their own patch queues).
 Not too realistic.

Yeah well drivers are easier as they should be just patches
against the mainline tree.

  In general, here's how the patch flow needs to happen:
  
  - All driver patches need to be posted to the right driver mailing
    lists with linux-omap mailing list Cc'd. The patches need need
    to be against the mainline kernel tree. The recent developments
    with the ASoC and the new fb/v4l code is a good example how this
    is working.
 
 Yes.  And in the case of stuff like NAND, where there's a ZOOM
 driver and a Linux-OMAP driver but nothing in mainline, I suggest
 syncing those two *before* pushing to mainline ... though there
 may well be a case for involving the relevant mainline team at
 that point too, or ignoring one driver.

Sure.

  - All core omap code needs to be posted to linux-omap for review
    and will then be queued up into going into the mainline tree.
    For any patches that apply already into the mainline kernel,
    the patches need to be against the mainline kernel. For any
    more complex patches, also linux-arm-kernel and maybe LKML lists
    should be Cc'd.
 
 Yep, that's straightforward.  By core I presume you mean
 arch/arm/plat-omap or maybe mach-omap{1,2}.

Yup.

  Soonish the linux-omap tree will become just a queue for patches
  for the merge windows. So essentially we'll be using the mainline
  kernel with some branches automerged hopefully real-soon-now.
 
 That sounds like an interesting plan.  It'll cause some level
 of disruption ... which we probably need to have, since without
 it folk seem to have little incentive to track mainline.
 
 A slightly different spin:  treat every divergence from mainline
 as a bug that needs fixing.  Those branches should mostly have
 fairly short lifespans...

Yeah, and they should be against the mainline tree so they're
ready for merging when the time is right.

  I think the right time to make that switch after Paul's clock
  patches are integrated into the mainline kernel. Then we'll move
  the non-mainline code into their own branches, or just drop it
  if nobody wants to maintain it.
 
 Sounds like a plan.  Let's see how different the OMAP tree is
 from mainline at that point, and see what the branches will be.

Sounds like clocks and pm branches, then maybe usb, nand, alsa
as needed. And dspgateway branch and dspbridge branch. And then
maybe also twl4030 branch, hehe :)

Tony

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/2] OMAP: Make dpll4_m4_ck programmable with clk_set_rate()

2008-12-05 Thread Måns Rullgård
Tony Lindgren [EMAIL PROTECTED] writes:

 * Paul Walmsley [EMAIL PROTECTED] [081205 15:52]:
 On Tue, 21 Oct 2008, Mans Rullgard wrote:
 
  Filling the set_rate and round_rate fields of dpll4_m4_ck makes
  this clock programmable through clk_set_rate().  This is needed
  to give omapfb control over the dss1_alwon_fck rate.
  
  Signed-off-by: Mans Rullgard [EMAIL PROTECTED]
 
 Acked-by: Paul Walmsley [EMAIL PROTECTED]
 
 Måns, sorry this took so long, these two patches slipped through the 
 cracks here.

 Pushing both to l-o tree today. Paul, I take it you will queue these
 up for mainline via your clock series?

 Måns, I heard you have some display patches? How about queuing up
 those on the fbdev list?

It looks like Tomi's driver is shaping up nicely, so it's probably not
worthwhile spending any significant time on the current driver.  If
anyone is interested, everything I have is in my git tree.

-- 
Måns Rullgård
[EMAIL PROTECTED]
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Branch for fbdriver (Re: [PATCH 1/2] OMAP: Make dpll4_m4_ck programmable with clk_set_rate())

2008-12-05 Thread Tony Lindgren
* Måns Rullgård [EMAIL PROTECTED] [081205 17:40]:
 Tony Lindgren [EMAIL PROTECTED] writes:
 
  * Paul Walmsley [EMAIL PROTECTED] [081205 15:52]:
  On Tue, 21 Oct 2008, Mans Rullgard wrote:
  
   Filling the set_rate and round_rate fields of dpll4_m4_ck makes
   this clock programmable through clk_set_rate().  This is needed
   to give omapfb control over the dss1_alwon_fck rate.
   
   Signed-off-by: Mans Rullgard [EMAIL PROTECTED]
  
  Acked-by: Paul Walmsley [EMAIL PROTECTED]
  
  Måns, sorry this took so long, these two patches slipped through the 
  cracks here.
 
  Pushing both to l-o tree today. Paul, I take it you will queue these
  up for mainline via your clock series?
 
  Måns, I heard you have some display patches? How about queuing up
  those on the fbdev list?
 
 It looks like Tomi's driver is shaping up nicely, so it's probably not
 worthwhile spending any significant time on the current driver.  If
 anyone is interested, everything I have is in my git tree.

OK, good to know. Tomi, do you have a git branch against the
mainline kernel for your driver?

We could start mirroring it on linux-omap and then start automerging
it on daily basis to linux-omap for testing (Assuming it does not cause
problems with other stuff :)

Regards,

Tony
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 2/5] OMAP3: PM: Force IVA2 into idle during bootup

2008-12-05 Thread Paul Walmsley
Hi Kevin,

one quick comment.

On Mon, 1 Dec 2008, Kevin Hilman wrote:

 Signed-off-by: Kevin Hilman [EMAIL PROTECTED]
 ---
  arch/arm/mach-omap2/pm34xx.c  |   55 
 +
  arch/arm/plat-omap/include/mach/control.h |5 +++
  2 files changed, 60 insertions(+), 0 deletions(-)
 
 diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
 index bd74183..6ff6449 100644
 --- a/arch/arm/mach-omap2/pm34xx.c
 +++ b/arch/arm/mach-omap2/pm34xx.c
 @@ -29,6 +29,7 @@
  #include mach/pm.h
  #include mach/clockdomain.h
  #include mach/powerdomain.h
 +#include mach/control.h
  
  #include cm.h
  #include cm-regbits-34xx.h
 @@ -363,6 +364,58 @@ static struct platform_suspend_ops omap_pm_ops = {
   .valid  = suspend_valid_only_mem,
  };
  
 +
 +/**
 + * omap3_iva_idle(): ensure IVA is in idle so it can be put into
 + *   retention
 + *
 + * In cases where IVA2 is activated by bootcode, it may prevent
 + * full-chip retention or off-mode because it is not idle.  This
 + * function forces the IVA2 into idle state so it can go
 + * into retention/off and thus allow full-chip retention/off.
 + *
 + **/
 +static void __init omap3_iva_idle(void)
 +{
 + struct clk *iva2_ck;
 +
 + iva2_ck = clk_get(NULL, iva2_fclk);

This should be iva2_fck, right?

 + if (!iva2_ck) {
 + pr_err(Unable to get IVA2 fclk: cannot force idle.\n);
 + return;
 + }
 +
 + /* Disable IVA2 clock */
 + clk_disable(iva2_ck);
 +
 + /* Reset IVA2 */
 + prm_write_mod_reg(OMAP3430_RST1_IVA2 |
 +   OMAP3430_RST2_IVA2 |
 +   OMAP3430_RST3_IVA2,
 +   OMAP3430_IVA2_MOD, RM_RSTCTRL);
 +
 + /* Enable IVA2 clock */
 + clk_enable(iva2_ck);
 +
 + /* Set IVA2 boot mode to 'idle' */
 + omap_ctrl_writel(OMAP3_IVA2_BOOTMOD_IDLE,
 +  OMAP343X_CONTROL_IVA2_BOOTMOD);
 +
 + /* Un-reset IVA2 */
 + prm_write_mod_reg(0, OMAP3430_IVA2_MOD, RM_RSTCTRL);
 +
 + /* Disable IVA2 clocks */
 + clk_disable(iva2_ck);
 +
 + /* Reset IVA2 */
 + prm_write_mod_reg(OMAP3430_RST1_IVA2 |
 +   OMAP3430_RST2_IVA2 |
 +   OMAP3430_RST3_IVA2,
 +   OMAP3430_IVA2_MOD, RM_RSTCTRL);
 +
 + clk_put(iva2_ck);
 +}
 +
  static void __init prcm_setup_regs(void)
  {
   /* XXX Reset all wkdeps. This should be done when initializing
 @@ -514,6 +567,8 @@ static void __init prcm_setup_regs(void)
* it is selected to mpu wakeup goup */
   prm_write_mod_reg(OMAP3430_IO_EN | OMAP3430_WKUP_EN,
   OCP_MOD, OMAP2_PRM_IRQENABLE_MPU_OFFSET);
 +
 + omap3_iva_idle();
  }
  
  static int __init pwrdms_setup(struct powerdomain *pwrdm)
 diff --git a/arch/arm/plat-omap/include/mach/control.h 
 b/arch/arm/plat-omap/include/mach/control.h
 index ee3c39e..b51f7fd 100644
 --- a/arch/arm/plat-omap/include/mach/control.h
 +++ b/arch/arm/plat-omap/include/mach/control.h
 @@ -208,6 +208,11 @@
  #define OMAP2_PBIASLITEPWRDNZ0   (1  1)
  #define OMAP2_PBIASLITEVMODE0(1  0)
  
 +/* CONTROL_IVA2_BOOTMOD bits */
 +#define OMAP3_IVA2_BOOTMOD_SHIFT 0
 +#define OMAP3_IVA2_BOOTMOD_MASK  (0xf  0)
 +#define OMAP3_IVA2_BOOTMOD_IDLE  (0x1  0)
 +
  #ifndef __ASSEMBLY__
  #if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
  extern void __iomem *omap_ctrl_base_get(void);
 -- 
 1.6.0.3
 
 --
 To unsubscribe from this list: send the line unsubscribe linux-omap in
 the body of a message to [EMAIL PROTECTED]
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 


- Paul
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 1/5] OMAP3: PM: HSMMC: force MMC module reset on boot

2008-12-05 Thread Paul Walmsley
Hi Kevin,

another quick comment ...

On Mon, 1 Dec 2008, Kevin Hilman wrote:

 The bootloader may leave the MMC in a state which prevents hitting
 retention.  Even when MMC is not compiled in, each MMC module needs to
 be forced into reset.
 
 Signed-off-by: Kevin Hilman [EMAIL PROTECTED]
 ---
  arch/arm/mach-omap2/devices.c |   85 
 +
  1 files changed, 85 insertions(+), 0 deletions(-)
 
 diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
 index 241e418..423647e 100644
 --- a/arch/arm/mach-omap2/devices.c
 +++ b/arch/arm/mach-omap2/devices.c
 @@ -14,6 +14,7 @@
  #include linux/init.h
  #include linux/platform_device.h
  #include linux/io.h
 +#include linux/clk.h
  
  #include mach/hardware.h
  #include asm/mach-types.h
 @@ -358,6 +359,89 @@ static inline void omap_init_sha1_md5(void) { }
  
  /*-*/
  
 +#ifdef CONFIG_ARCH_OMAP3
 +
 +#define MMCHS_SYSCONFIG  0x0010
 +#define MMCHS_SYSCONFIG_SWRESET  (1  1)
 +#define MMCHS_SYSSTATUS  0x0014
 +#define MMCHS_SYSSTATUS_RESETDONE(1  0)
 +
 +static struct platform_device dummy_pdev = {
 + .dev = {
 + .bus = platform_bus_type,
 + },
 +};
 +
 +/**
 + * omap_hsmmc_reset() - Full reset of each HS-MMC controller
 + *
 + * Ensure that each MMC controller is fully reset.  Controllers
 + * left in an unknown state (by bootloader) may prevent retention
 + * or OFF-mode.  This is especially important in cases where the
 + * MMC driver is not enabled, _or_ built as a module.
 + *
 + * In order for reset to work, interface, functional and debounce
 + * clocks must be enabled.  The debounce clock comes from func_32k_clk
 + * and is not under SW control, so we only enable i- and f-clocks.
 + **/
 +static void __init omap_hsmmc_reset(void)
 +{
 + u32 i, nr_controllers = cpu_is_omap34xx() ? OMAP34XX_NR_MMC :
 + OMAP24XX_NR_MMC;
 +
 + for (i = 0; i  nr_controllers; i++) {
 + u32 v, base = 0;
 + struct clk *iclk, *fclk;
 + struct device *dev = dummy_pdev.dev;
 +
 + switch (i) {
 + case 0:
 + base = OMAP2_MMC1_BASE;
 + break;
 + case 1:
 + base = OMAP2_MMC2_BASE;
 + break;
 + case 2:
 + base = OMAP3_MMC3_BASE;
 + break;
 + }
 +
 + dummy_pdev.id = i;
 + iclk = clk_get(dev, mmchs_ick);
 + if (iclk  clk_enable(iclk))
 + iclk = NULL;
 +
 + fclk = clk_get(dev, mmchs_fck);
 + if (fclk  clk_enable(fclk))
 + fclk = NULL;
 +
 + if (!iclk || !fclk) {
 + printk(KERN_WARNING
 +%s: Unable to enable clocks for MMC%d, 
 +cannot reset.\n,  __func__, i);
 + break;
 + }
 +
 + omap_writel(MMCHS_SYSCONFIG_SWRESET, base + MMCHS_SYSCONFIG);
 + v = omap_readl(base + MMCHS_SYSSTATUS);
 + while (!(omap_readl(base + MMCHS_SYSSTATUS) 
 +  MMCHS_SYSSTATUS_RESETDONE))
 + cpu_relax();

I think Tony is trying to banish omap_{read,write}*(); so these should 
probably be __raw_{read,write}l() with IO_ADDRESS() or maybe ioremap().

 +
 + if (fclk) {
 + clk_disable(fclk);
 + clk_put(fclk);
 + }
 + if (iclk) {
 + clk_disable(iclk);
 + clk_put(iclk);
 + }
 + }
 +}
 +#else
 +static inline void omap_hsmmc_reset(void) {}
 +#endif
 +
  #if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE) || \
   defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE)
  
 @@ -477,6 +561,7 @@ static int __init omap2_init_devices(void)
   /* please keep these calls, and their implementations above,
* in alphabetical order so they're easier to sort through.
*/
 + omap_hsmmc_reset();
   omap_init_camera();
   omap_init_mbox();
   omap_init_mcspi();
 -- 
 1.6.0.3
 
 --
 To unsubscribe from this list: send the line unsubscribe linux-omap in
 the body of a message to [EMAIL PROTECTED]
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 


- Paul
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 3/5] OMAP3: PM: Add D2D clocks and auto-idle setup to PRCM init

2008-12-05 Thread Paul Walmsley
On Mon, 1 Dec 2008, Kevin Hilman wrote:

 Add D2D clocks (modem_fck, sad2d_ick, mad2d_ick) to clock framework,
 and also ensure that auto-idle bits are set for these clocks during
 PRCM init.
 
 Signed-off-by: Kevin Hilman [EMAIL PROTECTED]

Acked-by: Paul Walmsley [EMAIL PROTECTED]

- Paul
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 4/5] OMAP3: PM: D2D clockdomain supports SW supervised transitions

2008-12-05 Thread Paul Walmsley
On Mon, 1 Dec 2008, Kevin Hilman wrote:

 Signed-off-by: Kevin Hilman [EMAIL PROTECTED]
 ---
  arch/arm/mach-omap2/clockdomains.h |2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)
 
 diff --git a/arch/arm/mach-omap2/clockdomains.h 
 b/arch/arm/mach-omap2/clockdomains.h
 index bafa650..49a5774 100644
 --- a/arch/arm/mach-omap2/clockdomains.h
 +++ b/arch/arm/mach-omap2/clockdomains.h
 @@ -198,7 +198,7 @@ static struct clockdomain sgx_clkdm = {
  static struct clockdomain d2d_clkdm = {
   .name   = d2d_clkdm,
   .pwrdm  = { .name = core_pwrdm },
 - .flags  = CLKDM_CAN_HWSUP,
 + .flags  = CLKDM_CAN_HWSUP_SWSUP,
   .clktrctrl_mask = OMAP3430ES1_CLKTRCTRL_D2D_MASK,
   .omap_chip  = OMAP_CHIP_INIT(CHIP_IS_OMAP3430),
  };

Acked-by: Paul Walmsley [EMAIL PROTECTED]

might be nice to have a short commit msg.


- Paul
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] OMAP2: PM: fix fault in enter_full_retention()

2008-12-05 Thread Kevin Hilman
In omap24xx_cpu_suspend assembly routine, the r2 register which holds
the address of the SDRC_POWER reg is set to zero before the value is
written back triggering a fault due to writing to address zero.

It's hard to tell where this change was introduced since this file
has been moved and merged.

While this fix prevents a crash, suspend on my n810 is broken with
current kernels.  I never come out of suspend.

Signed-off-by: Kevin Hilman [EMAIL PROTECTED]
---
 arch/arm/mach-omap2/sleep24xx.S |3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-omap2/sleep24xx.S b/arch/arm/mach-omap2/sleep24xx.S
index 43336b9..bf9e961 100644
--- a/arch/arm/mach-omap2/sleep24xx.S
+++ b/arch/arm/mach-omap2/sleep24xx.S
@@ -93,9 +93,8 @@ ENTRY(omap24xx_cpu_suspend)
orr r4, r4, #0x40   @ enable self refresh on idle req
mov r5, #0x2000 @ set delay (DPLL relock + DLL relock)
str r4, [r2]@ make it so
-   mov r2, #0
nop
-   mcr p15, 0, r2, c7, c0, 4   @ wait for interrupt
+   mcr p15, 0, r3, c7, c0, 4   @ wait for interrupt
nop
 loop:
subsr5, r5, #0x1@ awake, wait just a bit
-- 
1.6.0.3

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html