RE: [PATCH] OMAP3: Fix McBSP poll read and write for 32bit reg access

2009-10-15 Thread Shilimkar, Santosh
snip
 -Original Message-
 From: Varadarajan, Charu Latha
 Sent: Thursday, October 15, 2009 10:59 AM
 To: Shilimkar, Santosh; linux-omap@vger.kernel.org
 Cc: Syed, Rafiuddin
 Subject: RE: [PATCH] OMAP3: Fix McBSP poll read and write for 32bit reg
 access
 
 __
 
Subject: RE: [PATCH] OMAP3: Fix McBSP poll read and write for
32bit reg access
   
Charu,
   
 -Original Message-
 From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-
 ow...@vger.kernel.org] On Behalf Of Varadarajan, Charu Latha
 Sent: Wednesday, October 14, 2009 3:00 PM
 To: linux-omap@vger.kernel.org
 Cc: Varadarajan, Charu Latha; Syed, Rafiuddin
 Subject: [PATCH] OMAP3: Fix McBSP poll read and write for
32bit reg access

 omap_mcbsp_pollwrite and omap_mcbsp_pollread functions access
 McBSP registers as 16-bit registers.

 The McBSP registers (DRR_REG and DXR_REG) are limited to
 32-bit data accesses (L4 Interconnect). 16-bit and 8-bit is
 not allowed and can corrupt register content.

 This patch modifies omap_mcbsp_pollwrite and
 omap_mcbsp_pollread functions to do 32 bit access for above
 mentioned McBSP registers. Data accepted by these
 functions is also modified to 32-bit.

 Signed-off-by: Charulatha V ch...@ti.com
 Signed-off-by: Syed Rafiuddin rafiuddin.s...@ti.com
 ---
  arch/arm/plat-omap/include/mach/mcbsp.h |4 +-
  arch/arm/plat-omap/mcbsp.c  |   46
++
 -
  2 files changed, 23 insertions(+), 27 deletions(-)

 diff --git a/arch/arm/plat-omap/include/mach/mcbsp.h
b/arch/arm/plat-
 omap/include/mach/mcbsp.h
 index 7e9cae3..05b0d8d 100644
 --- a/arch/arm/plat-omap/include/mach/mcbsp.h
 +++ b/arch/arm/plat-omap/include/mach/mcbsp.h
 @@ -455,8 +455,8 @@ int
omap_mcbsp_spi_master_recv_word_poll(unsigned int
 id, u32 * word);
  void omap_mcbsp_set_spi_mode(unsigned int id, const struct
 omap_mcbsp_spi_cfg * spi_cfg);

  /* Polled read/write functions */
 -int omap_mcbsp_pollread(unsigned int id, u16 * buf);
 -int omap_mcbsp_pollwrite(unsigned int id, u16 buf);
 +int omap_mcbsp_pollread(unsigned int id, u32 *buf);
 +int omap_mcbsp_pollwrite(unsigned int id, u32 buf);
If the issue is with DRR_REG and DXR_REG, why are you
changing the signature of the generic API. You can handle
these registers as a exceptions in the code.
   If 32 bit data could be read and written on McBSP, why should we
 restrict
   poll read and
   poll write functions only for 16 bit data read and write?
  If these API's are only accessing the DXR and DRR regs then this is OK.
 
  int omap_mcbsp_set_io_type(unsigned int id, omap_mcbsp_io_type_t
 io_type);

  #endif
 diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-
 omap/mcbsp.c
 index 88ac976..1f278a2 100644
 --- a/arch/arm/plat-omap/mcbsp.c
 +++ b/arch/arm/plat-omap/mcbsp.c
 @@ -613,7 +613,7 @@ void omap_mcbsp_stop(unsigned int id,
int tx, int rx)
  EXPORT_SYMBOL(omap_mcbsp_stop);

  /* polled mcbsp i/o operations */
 -int omap_mcbsp_pollwrite(unsigned int id, u16 buf)
 +int omap_mcbsp_pollwrite(unsigned int id, u32 buf)
  {
 struct omap_mcbsp *mcbsp;
 void __iomem *base;
 @@ -626,26 +626,24 @@ int omap_mcbsp_pollwrite(unsigned int
id, u16 buf)
 mcbsp = id_to_mcbsp_ptr(id);
 base = mcbsp-io_base;

 -   writew(buf, base + OMAP_MCBSP_REG_DXR1);
 +   OMAP_MCBSP_WRITE(base, DXR, buf);
Why do you need this? Is writew()/readw() not doing 16 bit
operations  ?
   The intension is to use 32 bit access and not 16 bit access
  Use readl() / writel() then.
 
 Yes,  OMAP_MCBSP_WRITE macro makes use of readl() / writel() for OMAP3

Good!! Then get rid of this macro and directly use kernel standard API- readl() 
/ writel()
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2] ARM: OMAP: SDMA: Fix omap_stop_dma() API for channel linking

2009-10-15 Thread Santosh Shilimkar
OMAP sDMA driver API omap_stop_dma() doesn't really stop the dma when used
in linking scenario. This patch fixes the same.

Signed-off-by: Santosh Shilimkar santosh.shilim...@ti.com
Signed-off-by: Venkatraman S svenk...@ti.com
Reviewed-By: Tony Lindgren t...@atomide.com
CC: Hari n hari.z...@gmail.com
CC: Jarkko Nikula jhnik...@gmail.com
---
 arch/arm/plat-omap/dma.c |5 +
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index fd3154a..1c933b4 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -987,6 +987,11 @@ void omap_stop_dma(int lch)
/* Mark the current channel */
dma_chan_link_map[cur_lch] = 1;
 
+   /* Disable the DMA channel */
+   l = dma_read(CCR(lch));
+   l = ~OMAP_DMA_CCR_EN;
+   dma_write(l, CCR(lch));
+
disable_lnk(cur_lch);
 
next_lch = dma_chan[cur_lch].next_lch;
-- 
1.5.4.7

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


Re: [PATCH] OMAP3: Fix McBSP poll read and write for 32bit reg access

2009-10-15 Thread Peter Ujfalusi
On Thursday 15 October 2009 09:10:54 ext Shilimkar, Santosh wrote:
  -   writew(buf, base + OMAP_MCBSP_REG_DXR1);
  +   OMAP_MCBSP_WRITE(base, DXR, buf);

 Why do you need this? Is writew()/readw() not doing 16 bit
 operations  ?
   
The intension is to use 32 bit access and not 16 bit access
  
   Use readl() / writel() then.
 
  Yes,  OMAP_MCBSP_WRITE macro makes use of readl() / writel() for OMAP3
 
 Good!! Then get rid of this macro and directly use kernel standard
  API- readl() / writel() --

Well, OMAP1 and OMAP2 still has 16 bit registers in McBSP.

-- 
Péter
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH] OMAP3: Fix McBSP poll read and write for 32bit reg access

2009-10-15 Thread Shilimkar, Santosh
Charu,
 -Original Message-
 From: Peter Ujfalusi [mailto:peter.ujfal...@nokia.com]
 Sent: Thursday, October 15, 2009 12:56 PM
 To: Shilimkar, Santosh
 Cc: Varadarajan, Charu Latha; linux-omap@vger.kernel.org; Syed, Rafiuddin
 Subject: Re: [PATCH] OMAP3: Fix McBSP poll read and write for 32bit reg
 access
 
 On Thursday 15 October 2009 09:10:54 ext Shilimkar, Santosh wrote:
   -   writew(buf, base + OMAP_MCBSP_REG_DXR1);
   +   OMAP_MCBSP_WRITE(base, DXR, buf);
 
  Why do you need this? Is writew()/readw() not doing 16 bit
  operations  ?

 The intension is to use 32 bit access and not 16 bit access
   
Use readl() / writel() then.
  
   Yes,  OMAP_MCBSP_WRITE macro makes use of readl() / writel() for OMAP3
 
  Good!! Then get rid of this macro and directly use kernel standard
   API-   readl() / writel() --
 
 Well, OMAP1 and OMAP2 still has 16 bit registers in McBSP.
Please look at this comment from Peter. So please reconsider your patch and 
decision of changing the signature of the API since it breaks OMAP1 and OMAP2.

Regards,
Santosh
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [alsa-devel] [PATCH 5/8] board-rx51-peripherals: split vaux3 and vmmc2 supplies

2009-10-15 Thread Mark Brown
On Wed, Oct 14, 2009 at 10:15:48AM -0700, Tony Lindgren wrote:
 * Mark Brown broo...@opensource.wolfsonmicro.com [091012 02:18]:
  On Mon, Oct 12, 2009 at 11:08:58AM +0300, Eduardo Valentin wrote:

   I'm afraid using dev_name is not that easy. The mmc driver generates 
   device
   name at runtime. That's why this board file setups .dev at runtime as 
   well.

...

   So, changing this supply to something static using .dev_name it is not
   possible with current code. That would need refactoring the whole mmc and
   hsmmc setup. And the device naming procedure is dependent on cpu as well.
   Check arch/arm/mach-omap2/device.c:omap2_init_mmc.

  same answer each time it's run?  How does this work with the clock API?

 The clocks are matched using clkdev. Basically the driver just requests
 functional clock (fck) and interface clock (ick):

 $ grep mmci arch/arm/*omap*/clock*.c
 arch/arm/mach-omap1/clock.c:  CLK(mmci-omap.0, fck,   mmc1_ck,   
 CK_16XX | CK_1510 | CK_310),
 arch/arm/mach-omap1/clock.c:  CLK(mmci-omap.0, ick,   armper_ck.clk, 
 CK_16XX | CK_1510 | CK_310),

So this is using the standard dev_name based clkdev matching which
Eduardo said was impossible for the regulators.  Is it just that this
will actually work fine for the regulators or is there some other magic
in the OMAP code that joins things up?
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH v2] OMAP3: introduce OMAP3630

2009-10-15 Thread Pais, Allen
Muxes for OMAP 3630.

Signed-off-by: Allen Pais allen.p...@ti.com
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c
index b5fac32..93abb74 100644
--- a/arch/arm/mach-omap2/mux.c
+++ b/arch/arm/mach-omap2/mux.c
@@ -551,6 +551,42 @@ MUX_CFG_34XX(AF13_3430_MMC3_DAT3, 0x5e2,
 MUX_CFG_34XX(AF26_34XX_SYS_NIRQ, 0x1E0,
OMAP3_WAKEUP_EN | OMAP34XX_PIN_INPUT_PULLUP |
OMAP34XX_MUX_MODE0)
+
+/*Muxes for 3630 */
+MUX_CFG_34XX(H26_3630_DSS_DATA18, 0x100,
+   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX(H25_3630_DSS_DATA19, 0x102,
+   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX(E28_3630_DSS_DATA20, 0x104,
+   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX(J26_3630_DSS_DATA21, 0x106,
+   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX(AC27_3630_DSS_DATA22, 0x108,
+   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX(AC28_3630_DSS_DATA23, 0x10A,
+   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
+
+MUX_CFG_34XX(AF9_3630_ETKD8, 0x5EC,
+   OMAP34XX_MUX_MODE1 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX(AG9_3630_ETKD9, 0x5EE,
+   OMAP34XX_MUX_MODE1 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX(AG7_3630_ETKD12, 0x5F0,
+   OMAP34XX_MUX_MODE1 | OMAP34XX_PIN_INPUT_PULLDOWN)
+
+MUX_CFG_34XX(AA25_3630_UART2_TX, 0x178,
+   OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX(AD25_3630_UART2_RX, 0x17A,
+   OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX(AB25_3630_UART2_RTS, 0x176,
+   OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX(AB26_3630_UART2_CTS, 0x174,
+   OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
+
+MUX_CFG_34XX(H20_UART3_RX_IRRX, 0x19E,
+   OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX(H21_UART3_TX_IRTX, 0x1A0,
+   OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLDOWN)
+
 };
 
 #define OMAP34XX_PINS_SZ   ARRAY_SIZE(omap34xx_pins)
diff --git a/arch/arm/plat-omap/include/mach/mux.h 
b/arch/arm/plat-omap/include/mach/mux.h
index 0f49d2d..8d8cbe1 100644
--- a/arch/arm/plat-omap/include/mach/mux.h
+++ b/arch/arm/plat-omap/include/mach/mux.h
@@ -890,6 +890,32 @@ enum omap34xx_index {
 
/* SYS_NIRQ T2 INT1 */
AF26_34XX_SYS_NIRQ,
+
+   /*Muxes for 3630*/
+   K28_3630_CAM_D6,
+   L28_3630_CAM_D7,
+   K27_3630_CAM_D8,
+   L27_3630_CAM_D9,
+
+   H26_3630_DSS_DATA18,
+   H25_3630_DSS_DATA19,
+   E28_3630_DSS_DATA20,
+   J26_3630_DSS_DATA21,
+   AC27_3630_DSS_DATA22,
+   AC28_3630_DSS_DATA23,
+
+   AF9_3630_ETKD8,
+   AG9_3630_ETKD9,
+   AG7_3630_ETK12,
+
+   AA25_3630_UART2_TX,
+   AD25_3630_UART2_RX,
+   AB25_3630_UART2_RTS,
+   AB26_3630_UART2_CTS,
+
+   H20_UART3_RX_IRRX,
+   H21_UART3_TX_IRTX,
+
 };
 
 struct omap_mux_cfg {--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[RFC][Patch V1] OMAP3: Mux Changes.

2009-10-15 Thread Pais, Allen
Please ignore my previous mail.

Muxes for OMAP 3630.

Signed-off-by: Allen Pais allen.p...@ti.com diff --git 
a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c index b5fac32..93abb74 
100644
--- a/arch/arm/mach-omap2/mux.c
+++ b/arch/arm/mach-omap2/mux.c
@@ -551,6 +551,42 @@ MUX_CFG_34XX(AF13_3430_MMC3_DAT3, 0x5e2,  
MUX_CFG_34XX(AF26_34XX_SYS_NIRQ, 0x1E0,
OMAP3_WAKEUP_EN | OMAP34XX_PIN_INPUT_PULLUP |
OMAP34XX_MUX_MODE0)
+
+/*Muxes for 3630 */
+MUX_CFG_34XX(H26_3630_DSS_DATA18, 0x100,
+   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN) 
+MUX_CFG_34XX(H25_3630_DSS_DATA19, 0x102,
+   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN) 
+MUX_CFG_34XX(E28_3630_DSS_DATA20, 0x104,
+   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN) 
+MUX_CFG_34XX(J26_3630_DSS_DATA21, 0x106,
+   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN) 
+MUX_CFG_34XX(AC27_3630_DSS_DATA22, 0x108,
+   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN) 
+MUX_CFG_34XX(AC28_3630_DSS_DATA23, 0x10A,
+   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
+
+MUX_CFG_34XX(AF9_3630_ETKD8, 0x5EC,
+   OMAP34XX_MUX_MODE1 | OMAP34XX_PIN_INPUT_PULLDOWN) 
+MUX_CFG_34XX(AG9_3630_ETKD9, 0x5EE,
+   OMAP34XX_MUX_MODE1 | OMAP34XX_PIN_INPUT_PULLDOWN) 
+MUX_CFG_34XX(AG7_3630_ETKD12, 0x5F0,
+   OMAP34XX_MUX_MODE1 | OMAP34XX_PIN_INPUT_PULLDOWN)
+
+MUX_CFG_34XX(AA25_3630_UART2_TX, 0x178,
+   OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN) 
+MUX_CFG_34XX(AD25_3630_UART2_RX, 0x17A,
+   OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN) 
+MUX_CFG_34XX(AB25_3630_UART2_RTS, 0x176,
+   OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN) 
+MUX_CFG_34XX(AB26_3630_UART2_CTS, 0x174,
+   OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
+
+MUX_CFG_34XX(H20_UART3_RX_IRRX, 0x19E,
+   OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLDOWN) 
+MUX_CFG_34XX(H21_UART3_TX_IRTX, 0x1A0,
+   OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLDOWN)
+
 };
 
 #define OMAP34XX_PINS_SZ   ARRAY_SIZE(omap34xx_pins)
diff --git a/arch/arm/plat-omap/include/mach/mux.h 
b/arch/arm/plat-omap/include/mach/mux.h
index 0f49d2d..8d8cbe1 100644
--- a/arch/arm/plat-omap/include/mach/mux.h
+++ b/arch/arm/plat-omap/include/mach/mux.h
@@ -890,6 +890,32 @@ enum omap34xx_index {
 
/* SYS_NIRQ T2 INT1 */
AF26_34XX_SYS_NIRQ,
+
+   /*Muxes for 3630*/
+   K28_3630_CAM_D6,
+   L28_3630_CAM_D7,
+   K27_3630_CAM_D8,
+   L27_3630_CAM_D9,
+
+   H26_3630_DSS_DATA18,
+   H25_3630_DSS_DATA19,
+   E28_3630_DSS_DATA20,
+   J26_3630_DSS_DATA21,
+   AC27_3630_DSS_DATA22,
+   AC28_3630_DSS_DATA23,
+
+   AF9_3630_ETKD8,
+   AG9_3630_ETKD9,
+   AG7_3630_ETK12,
+
+   AA25_3630_UART2_TX,
+   AD25_3630_UART2_RX,
+   AB25_3630_UART2_RTS,
+   AB26_3630_UART2_CTS,
+
+   H20_UART3_RX_IRRX,
+   H21_UART3_TX_IRTX,
+
 };
 
 struct omap_mux_cfg {--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH v2] OMAP3: introduce OMAP3630

2009-10-15 Thread Hemanth V
 Muxes for OMAP 3630.

What is the plan to add omap_cfg_reg calls for these new pins, which actually
configures these pin muxes.

Thanks
Hemanth


 Signed-off-by: Allen Pais allen.p...@ti.com
 diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c
 index b5fac32..93abb74 100644
 --- a/arch/arm/mach-omap2/mux.c
 +++ b/arch/arm/mach-omap2/mux.c
 @@ -551,6 +551,42 @@ MUX_CFG_34XX(AF13_3430_MMC3_DAT3, 0x5e2,
  MUX_CFG_34XX(AF26_34XX_SYS_NIRQ, 0x1E0,
   OMAP3_WAKEUP_EN | OMAP34XX_PIN_INPUT_PULLUP |
   OMAP34XX_MUX_MODE0)
 +
 +/*Muxes for 3630 */
 +MUX_CFG_34XX(H26_3630_DSS_DATA18, 0x100,
 + OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(H25_3630_DSS_DATA19, 0x102,
 + OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(E28_3630_DSS_DATA20, 0x104,
 + OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(J26_3630_DSS_DATA21, 0x106,
 + OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(AC27_3630_DSS_DATA22, 0x108,
 + OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(AC28_3630_DSS_DATA23, 0x10A,
 + OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +
 +MUX_CFG_34XX(AF9_3630_ETKD8, 0x5EC,
 + OMAP34XX_MUX_MODE1 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(AG9_3630_ETKD9, 0x5EE,
 + OMAP34XX_MUX_MODE1 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(AG7_3630_ETKD12, 0x5F0,
 + OMAP34XX_MUX_MODE1 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +
 +MUX_CFG_34XX(AA25_3630_UART2_TX, 0x178,
 + OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(AD25_3630_UART2_RX, 0x17A,
 + OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(AB25_3630_UART2_RTS, 0x176,
 + OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(AB26_3630_UART2_CTS, 0x174,
 + OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +
 +MUX_CFG_34XX(H20_UART3_RX_IRRX, 0x19E,
 + OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(H21_UART3_TX_IRTX, 0x1A0,
 + OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +
  };

  #define OMAP34XX_PINS_SZ ARRAY_SIZE(omap34xx_pins)
 diff --git a/arch/arm/plat-omap/include/mach/mux.h
 b/arch/arm/plat-omap/include/mach/mux.h
 index 0f49d2d..8d8cbe1 100644
 --- a/arch/arm/plat-omap/include/mach/mux.h
 +++ b/arch/arm/plat-omap/include/mach/mux.h
 @@ -890,6 +890,32 @@ enum omap34xx_index {

   /* SYS_NIRQ T2 INT1 */
   AF26_34XX_SYS_NIRQ,
 +
 + /*Muxes for 3630*/
 + K28_3630_CAM_D6,
 + L28_3630_CAM_D7,
 + K27_3630_CAM_D8,
 + L27_3630_CAM_D9,
 +
 + H26_3630_DSS_DATA18,
 + H25_3630_DSS_DATA19,
 + E28_3630_DSS_DATA20,
 + J26_3630_DSS_DATA21,
 + AC27_3630_DSS_DATA22,
 + AC28_3630_DSS_DATA23,
 +
 + AF9_3630_ETKD8,
 + AG9_3630_ETKD9,
 + AG7_3630_ETK12,
 +
 + AA25_3630_UART2_TX,
 + AD25_3630_UART2_RX,
 + AB25_3630_UART2_RTS,
 + AB26_3630_UART2_CTS,
 +
 + H20_UART3_RX_IRRX,
 + H21_UART3_TX_IRTX,
 +
  };

  struct omap_mux_cfg {--
 To unsubscribe from this list: send the line unsubscribe linux-omap in
 the body of a message to majord...@vger.kernel.org
 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Memory performance / Cache problem

2009-10-15 Thread epsi

 On Wednesday 14 October 2009 17:48:39 ext e...@gmx.de wrote:
  Mem clock is both times 166MHz. I don't know whether are differences in
  cycle access and timing, but memclock is fine.
 
  Following Siarhei hints of initialize the buffers (around 1.2 MByte
 each)
  I get different results in 22kernel for use of
  malloc alone
  memcpy =   473.764, loop4 =   448.430, loop1 =   102.770, rand =   
 29.641
  calloc alone
  memcpy =   405.947, loop4 =   361.550, loop1 =95.441, rand =   
 21.853
  malloc+memset:
  memcpy =   239.294, loop4 =   188.617, loop1 =80.871, rand =
 4.726
 
  In 31kernel all 3 measures are about the same (unfortunatly low) level
 of
  malloc+memset in 22.
 
  First of all: What performance can be expected?
  Does 22 make failures if it is so much faster?
  Can the later kernels get a boost in memory handling?
 
 What you see is just a (fake) performance boost because you have a single
 physical page shared between all the virtual pages in the source buffer.
 So
 you get no cache misses on read operations and everything seems fast.
 
 This is unlikely to happen on real use, and it does not reflect real
 memory
 performance. So the benchmark is inadequate.

 
 You can get some basic information here:
 http://en.wikipedia.org/wiki/Copy-on-write
 
 Regarding the difference in behavior between .22 and recent kernels. It
 may be
 some regression in copy-on-write implementation, or just some change done
 on
 purpose. That is assuming that the userspace stuff was identical in both
 tests.
 

Ok, understand the difference if the memory is uninitialised.
But why there is the difference in malloc + memset and calloc?
In both cases the memory will be cleared.


-- 
Jetzt kostenlos herunterladen: Internet Explorer 8 und Mozilla Firefox 3.5 -
sicherer, schneller und einfacher! http://portal.gmx.net/de/go/atbrowser
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: SMP: BUG with PREEMPT enabled

2009-10-15 Thread Russell King - ARM Linux
On Wed, Oct 14, 2009 at 04:56:18PM +0530, Shilimkar, Santosh wrote:
  On the latest ARM kernel(v2.6.32-rc4),I have observed a BUG() dump when

Umm...

 @@ -350,7 +350,7 @@ static inline void local_flush_tlb_mm(struct mm_struct 
 *mm)
   if (tlb_flag(TLB_WB))
   dsb();
  
 - if (cpu_isset(smp_processor_id(), mm-cpu_vm_mask)) {
 + if (cpu_isset(get_cpu(), mm-cpu_vm_mask)) {

This isn't 2.6.32-rc4 code - which actually is:

if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(mm))) {

so what kernel version are you working with?

The result is this patch won't apply to 2.6.32-rc4.
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [RFC][Patch V1] OMAP3: Mux Changes.

2009-10-15 Thread Menon, Nishanth
Please send your patch using git send email. And generate your patch using git 
format patch

 -Original Message-
 From: Pais, Allen
 Sent: Thursday, October 15, 2009 4:38 AM
 
 Please ignore my previous mail.
 
 Muxes for OMAP 3630.
 
 Signed-off-by: Allen Pais allen.p...@ti.com diff --git a/arch/arm/mach-
 omap2/mux.c b/arch/arm/mach-omap2/mux.c index b5fac32..93abb74 100644


 --- a/arch/arm/mach-omap2/mux.c
 +++ b/arch/arm/mach-omap2/mux.c
 @@ -551,6 +551,42 @@ MUX_CFG_34XX(AF13_3430_MMC3_DAT3, 0x5e2,
 MUX_CFG_34XX(AF26_34XX_SYS_NIRQ, 0x1E0,
   OMAP3_WAKEUP_EN | OMAP34XX_PIN_INPUT_PULLUP |
   OMAP34XX_MUX_MODE0)
 +
 +/*Muxes for 3630 */
 +MUX_CFG_34XX(H26_3630_DSS_DATA18, 0x100,
 + OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(H25_3630_DSS_DATA19, 0x102,
 + OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(E28_3630_DSS_DATA20, 0x104,
 + OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(J26_3630_DSS_DATA21, 0x106,
 + OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(AC27_3630_DSS_DATA22, 0x108,
 + OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(AC28_3630_DSS_DATA23, 0x10A,
 + OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
Why cant I do this in Board file?
 +
 +MUX_CFG_34XX(AF9_3630_ETKD8, 0x5EC,
 + OMAP34XX_MUX_MODE1 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(AG9_3630_ETKD9, 0x5EE,
 + OMAP34XX_MUX_MODE1 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(AG7_3630_ETKD12, 0x5F0,
 + OMAP34XX_MUX_MODE1 | OMAP34XX_PIN_INPUT_PULLDOWN)
Why am I doing this?
 +
 +MUX_CFG_34XX(AA25_3630_UART2_TX, 0x178,
 + OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(AD25_3630_UART2_RX, 0x17A,
 + OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(AB25_3630_UART2_RTS, 0x176,
 + OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(AB26_3630_UART2_CTS, 0x174,
 + OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
Please explain..
 +
 +MUX_CFG_34XX(H20_UART3_RX_IRRX, 0x19E,
 + OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(H21_UART3_TX_IRTX, 0x1A0,
 + OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +
  };
??
 
  #define OMAP34XX_PINS_SZ ARRAY_SIZE(omap34xx_pins)
 diff --git a/arch/arm/plat-omap/include/mach/mux.h b/arch/arm/plat-
 omap/include/mach/mux.h
 index 0f49d2d..8d8cbe1 100644
 --- a/arch/arm/plat-omap/include/mach/mux.h
 +++ b/arch/arm/plat-omap/include/mach/mux.h
 @@ -890,6 +890,32 @@ enum omap34xx_index {
 
   /* SYS_NIRQ T2 INT1 */
   AF26_34XX_SYS_NIRQ,
 +
 + /*Muxes for 3630*/
 + K28_3630_CAM_D6,
 + L28_3630_CAM_D7,
 + K27_3630_CAM_D8,
 + L27_3630_CAM_D9,
 +
 + H26_3630_DSS_DATA18,
 + H25_3630_DSS_DATA19,
 + E28_3630_DSS_DATA20,
 + J26_3630_DSS_DATA21,
 + AC27_3630_DSS_DATA22,
 + AC28_3630_DSS_DATA23,
 +
 + AF9_3630_ETKD8,
 + AG9_3630_ETKD9,
 + AG7_3630_ETK12,
 +
 + AA25_3630_UART2_TX,
 + AD25_3630_UART2_RX,
 + AB25_3630_UART2_RTS,
 + AB26_3630_UART2_CTS,
 +
 + H20_UART3_RX_IRRX,
 + H21_UART3_TX_IRTX,
 +
  };
 
  struct omap_mux_cfg {
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: SMP: BUG with PREEMPT enabled

2009-10-15 Thread Shilimkar, Santosh
The patch submitted to patch-system I based it on 2.6.32-rc4

Have you tried that patch ?

The one attached was in email was based on 2.6.31

Regards,
Santosh

 -Original Message-
 From: Russell King - ARM Linux [mailto:li...@arm.linux.org.uk]
 Sent: Thursday, October 15, 2009 5:11 PM
 To: Shilimkar, Santosh
 Cc: linux-omap@vger.kernel.org; linux-arm-ker...@lists.infradead.org
 Subject: Re: SMP: BUG with PREEMPT enabled
 
 On Wed, Oct 14, 2009 at 04:56:18PM +0530, Shilimkar, Santosh wrote:
   On the latest ARM kernel(v2.6.32-rc4),I have observed a BUG() dump
 when
 
 Umm...
 
  @@ -350,7 +350,7 @@ static inline void local_flush_tlb_mm(struct
 mm_struct *mm)
  if (tlb_flag(TLB_WB))
  dsb();
 
  -   if (cpu_isset(smp_processor_id(), mm-cpu_vm_mask)) {
  +   if (cpu_isset(get_cpu(), mm-cpu_vm_mask)) {
 
 This isn't 2.6.32-rc4 code - which actually is:
 
 if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(mm))) {
 
 so what kernel version are you working with?
 
 The result is this patch won't apply to 2.6.32-rc4.

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


RE: SMP: BUG with PREEMPT enabled

2009-10-15 Thread Shilimkar, Santosh
 -Original Message-
 From: linux-arm-kernel-boun...@lists.infradead.org [mailto:linux-arm-
 kernel-boun...@lists.infradead.org] On Behalf Of Shilimkar, Santosh
 Sent: Thursday, October 15, 2009 6:55 PM
 To: Russell King - ARM Linux
 Cc: linux-omap@vger.kernel.org; linux-arm-ker...@lists.infradead.org
 Subject: RE: SMP: BUG with PREEMPT enabled
 
 The patch submitted to patch-system I based it on 2.6.32-rc4
 
 Have you tried that patch ?
 
 The one attached was in email was based on 2.6.31

I have submitted the correct version to patch system again.

Regards
Santosh
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2 0/2] OMAP3: PM: Make PRM setup times and CPUidle latencies/threshold board specific

2009-10-15 Thread Nayak, Rajendra
Hi,

The setup times to be programmed in the PRM module on OMAP (for clksetup, 
voltsetup etc)
are board specific. They depend heavily on the PMIC used and even on different 
boards
with the same PMIC, they vary based on the sleep/wake sequence used, system 
clock speed et al.

The CPUidle latencies and hence thresholds (derived from latencies and Power 
consumption numbers)
and very much dependent on these setup values and hence also need to be board 
specific.

This patchset makes it possible for the PRM setup times and the CPUidle 
latencies/threshold numbers to be
configured from board files, and some default values are used if nothing gets 
passed from board files.

Only the 3430SDP board file is currently been modifed to pass these values.

regards,
Rajendra--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2 2/2] OMAP3: PM: Configure CPUidle latencies/thresholds from board file

2009-10-15 Thread Rajendra Nayak
The CPUidle C state latencies and thresholds are dependent
on various board specific details.
This patch makes it possible to configure these values from the
respective board files.

omap3_pm_init_cpuidle() can now be optionally called from board
files to pass board specific cpuidle parameters.
If the board files do not use this function to pass the params
default values are used which might cause higher consumption
dur to wrong state selection by the governor.

This patch only updates the 3430sdp board files to use
omap3_pm_init_cpuidle().

Signed-off-by: Rajendra Nayak rna...@ti.com
---
 arch/arm/mach-omap2/board-3430sdp.c |   19 +++
 arch/arm/mach-omap2/cpuidle34xx.c   |   42 +++
 arch/arm/mach-omap2/pm.h|8 ++
 3 files changed, 69 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/board-3430sdp.c 
b/arch/arm/mach-omap2/board-3430sdp.c
index 0f1975c..d2b2f8f 100644
--- a/arch/arm/mach-omap2/board-3430sdp.c
+++ b/arch/arm/mach-omap2/board-3430sdp.c
@@ -73,6 +73,24 @@ static struct prm_setup_vc omap3_setuptime_table = {
.vdd1_off = 0x00,
 };
 
+/* FIXME: These values need to be updated based on more profiling on 3430sdp*/
+static struct cpuidle_params omap3_cpuidle_params_table[] = {
+   /* C1 */
+   {2, 2, 5},
+   /* C2 */
+   {10, 10, 30},
+   /* C3 */
+   {50, 50, 300},
+   /* C4 */
+   {1500, 1800, 4000},
+   /* C5 */
+   {2500, 7500, 12000},
+   /* C6 */
+   {3000, 8500, 15000},
+   /* C7 */
+   {1, 3, 30},
+};
+
 static int board_keymap[] = {
KEY(0, 0, KEY_LEFT),
KEY(0, 1, KEY_RIGHT),
@@ -203,6 +221,7 @@ static void __init omap_3430sdp_init_irq(void)
omap_board_config = sdp3430_config;
omap_board_config_size = ARRAY_SIZE(sdp3430_config);
omap3_pm_init_vc(omap3_setuptime_table);
+   omap3_pm_init_cpuidle(omap3_cpuidle_params_table);
omap2_init_common_hw(hyb18m512160af6_sdrc_params, NULL, 
omap3_mpu_rate_table,
 omap3_dsp_rate_table, omap3_l3_rate_table);
omap_init_irq();
diff --git a/arch/arm/mach-omap2/cpuidle34xx.c 
b/arch/arm/mach-omap2/cpuidle34xx.c
index c44a942..f5d8f55 100644
--- a/arch/arm/mach-omap2/cpuidle34xx.c
+++ b/arch/arm/mach-omap2/cpuidle34xx.c
@@ -60,6 +60,30 @@ struct omap3_processor_cx 
omap3_power_states[OMAP3_MAX_STATES];
 struct omap3_processor_cx current_cx_state;
 struct powerdomain *mpu_pd, *core_pd, *per_pd;
 
+/*
+ * The latencies/thresholds for various C states have
+ * to be configured from the respective board files.
+ * These are some default values (which might not provide
+ * the best power savings) used on boards which do not
+ * pass these details from the board file.
+ */
+static struct cpuidle_params cpuidle_params_table[] = {
+   /* C1 */
+   {2, 2, 5},
+   /* C2 */
+   {10, 10, 30},
+   /* C3 */
+   {50, 50, 300},
+   /* C4 */
+   {1500, 1800, 4000},
+   /* C5 */
+   {2500, 7500, 12000},
+   /* C6 */
+   {3000, 8500, 15000},
+   /* C7 */
+   {1, 3, 30},
+};
+
 static int omap3_idle_bm_check(void)
 {
if (!omap3_can_sleep())
@@ -165,6 +189,24 @@ static int omap3_enter_idle_bm(struct cpuidle_device *dev,
 
 DEFINE_PER_CPU(struct cpuidle_device, omap3_idle_dev);
 
+void omap3_pm_init_cpuidle(struct cpuidle_params *cpuidle_board_params)
+{
+   int i;
+
+   if (!cpuidle_board_params)
+   return;
+
+   for (i = OMAP3_STATE_C1; i  OMAP3_MAX_STATES; i++) {
+   cpuidle_params_table[i].sleep_latency =
+   cpuidle_board_params[i].sleep_latency;
+   cpuidle_params_table[i].wake_latency =
+   cpuidle_board_params[i].wake_latency;
+   cpuidle_params_table[i].threshold =
+   cpuidle_board_params[i].threshold;
+   }
+   return;
+}
+
 /* omap3_init_power_states - Initialises the OMAP3 specific C states.
  *
  * Below is the desciption of each C state.
diff --git a/arch/arm/mach-omap2/pm.h b/arch/arm/mach-omap2/pm.h
index ca673c5..0b814ab 100644
--- a/arch/arm/mach-omap2/pm.h
+++ b/arch/arm/mach-omap2/pm.h
@@ -41,7 +41,15 @@ struct prm_setup_vc {
u16 vdd1_ret;
u16 vdd1_off;
 };
+
+struct cpuidle_params {
+   u32 sleep_latency;
+   u32 wake_latency;
+   u32 threshold;
+};
+
 extern void omap3_pm_init_vc(struct prm_setup_vc *setup_vc);
+extern void omap3_pm_init_cpuidle(struct cpuidle_params *cpuidle_board_params);
 
 extern int resource_set_opp_level(int res, u32 target_level, int flags);
 extern int resource_access_opp_lock(int res, int delta);
-- 
1.5.4.7

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


[PATCH v2 1/2] OMAP3: PM: Configure PRM setup times from board files

2009-10-15 Thread Rajendra Nayak
The setup times to be programmed in the PRM module on OMAP
(for clksetup, voltsetup etc) are board specific.
They depend heavily on the PMIC used and even on different boards
with the same PMIC, they vary based on the sleep/wake
sequence used, system clock speed et al.

This patch makes it possible for these setup values to be
configured from different board files.
omap3_pm_init_vc() can now be optionally called from board files
to initialise the setup times. If board files do not use
this function to pass the setup times, default/conservative
values are used which are safe but would cause higher wakeup
latencies from sleep states.

This patch only updates the 3430sdp board file to use
omap3_pm_init_vc() to update the setup times.

Signed-off-by: Rajendra Nayak rna...@ti.com
---
 arch/arm/mach-omap2/board-3430sdp.c |   18 ++
 arch/arm/mach-omap2/pm.h|2 +-
 arch/arm/mach-omap2/pm34xx.c|5 -
 3 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-omap2/board-3430sdp.c 
b/arch/arm/mach-omap2/board-3430sdp.c
index 14868b5..0f1975c 100644
--- a/arch/arm/mach-omap2/board-3430sdp.c
+++ b/arch/arm/mach-omap2/board-3430sdp.c
@@ -56,6 +56,23 @@
 
 #define TWL4030_MSECURE_GPIO 22
 
+/* FIXME: These are not the optimal setup values to be used on 3430sdp*/
+static struct prm_setup_vc omap3_setuptime_table = {
+   .clksetup = 0xff,
+   .voltsetup_time1 = 0xfff,
+   .voltsetup_time2 = 0xfff,
+   .voltoffset = 0xff,
+   .voltsetup2 = 0xff,
+   .vdd0_on = 0x30,
+   .vdd0_onlp = 0x20,
+   .vdd0_ret = 0x1e,
+   .vdd0_off = 0x00,
+   .vdd1_on = 0x2c,
+   .vdd1_onlp = 0x20,
+   .vdd1_ret = 0x1e,
+   .vdd1_off = 0x00,
+};
+
 static int board_keymap[] = {
KEY(0, 0, KEY_LEFT),
KEY(0, 1, KEY_RIGHT),
@@ -185,6 +202,7 @@ static void __init omap_3430sdp_init_irq(void)
 {
omap_board_config = sdp3430_config;
omap_board_config_size = ARRAY_SIZE(sdp3430_config);
+   omap3_pm_init_vc(omap3_setuptime_table);
omap2_init_common_hw(hyb18m512160af6_sdrc_params, NULL, 
omap3_mpu_rate_table,
 omap3_dsp_rate_table, omap3_l3_rate_table);
omap_init_irq();
diff --git a/arch/arm/mach-omap2/pm.h b/arch/arm/mach-omap2/pm.h
index f8d11a2..ca673c5 100644
--- a/arch/arm/mach-omap2/pm.h
+++ b/arch/arm/mach-omap2/pm.h
@@ -41,7 +41,7 @@ struct prm_setup_vc {
u16 vdd1_ret;
u16 vdd1_off;
 };
-extern void omap3_set_prm_setup_vc(struct prm_setup_vc *setup_vc);
+extern void omap3_pm_init_vc(struct prm_setup_vc *setup_vc);
 
 extern int resource_set_opp_level(int res, u32 target_level, int flags);
 extern int resource_access_opp_lock(int res, int delta);
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
index 01260ec..3d7ae2f 100644
--- a/arch/arm/mach-omap2/pm34xx.c
+++ b/arch/arm/mach-omap2/pm34xx.c
@@ -1027,8 +1027,11 @@ int omap3_pm_set_suspend_state(struct powerdomain 
*pwrdm, int state)
return -EINVAL;
 }
 
-void omap3_set_prm_setup_vc(struct prm_setup_vc *setup_vc)
+void omap3_pm_init_vc(struct prm_setup_vc *setup_vc)
 {
+   if (!setup_vc)
+   return;
+
prm_setup.clksetup = setup_vc-clksetup;
prm_setup.voltsetup_time1 = setup_vc-voltsetup_time1;
prm_setup.voltsetup_time2 = setup_vc-voltsetup_time2;
-- 
1.5.4.7

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


[PATCH] OMAP3: PM: Removing redundant and potentially dangerous PRCM configration

2009-10-15 Thread Sripathy, Vishwanath
As part of Core domain context restoration while coming out of off mode
there are some registers being restored which are not required to be restored.
ROM code should have restored them already. Overwriting some of them can have
potential side effect. Eg: CM_CLKEN_PLL register should not be written while 
dpll is locked.

Signed-off-by: Vishwanath BS vishwanath...@ti.com
---

diff --git a/arch/arm/mach-omap2/prcm.c b/arch/arm/mach-omap2/prcm.c
index fb864cc..da16804 100644
--- a/arch/arm/mach-omap2/prcm.c
+++ b/arch/arm/mach-omap2/prcm.c
@@ -279,7 +279,6 @@ void omap3_prcm_save_context(void)
prcm_context.cm_sysconfig = __raw_readl(OMAP3430_CM_SYSCONFIG);
prcm_context.sgx_cm_clksel =
 cm_read_mod_reg(OMAP3430ES2_SGX_MOD, CM_CLKSEL);
-   prcm_context.wkup_cm_clksel = cm_read_mod_reg(WKUP_MOD, CM_CLKSEL);
prcm_context.dss_cm_clksel =
 cm_read_mod_reg(OMAP3430_DSS_MOD, CM_CLKSEL);
prcm_context.cam_cm_clksel =
@@ -296,8 +295,6 @@ void omap3_prcm_save_context(void)
cm_read_mod_reg(PLL_MOD, OMAP3430ES2_CM_CLKSEL4);
prcm_context.pll_cm_clksel5 =
 cm_read_mod_reg(PLL_MOD, OMAP3430ES2_CM_CLKSEL5);
-   prcm_context.pll_cm_clken =
-   cm_read_mod_reg(PLL_MOD, CM_CLKEN);
prcm_context.pll_cm_clken2 =
cm_read_mod_reg(PLL_MOD, OMAP3430ES2_CM_CLKEN2);
prcm_context.cm_polctrl = __raw_readl(OMAP3430_CM_POLCTRL);
@@ -343,8 +340,6 @@ void omap3_prcm_save_context(void)
 cm_read_mod_reg(OMAP3430_IVA2_MOD, CM_AUTOIDLE2);
prcm_context.mpu_cm_autoidle2 =
 cm_read_mod_reg(MPU_MOD, CM_AUTOIDLE2);
-   prcm_context.pll_cm_autoidle =
-cm_read_mod_reg(PLL_MOD, CM_AUTOIDLE);
prcm_context.iva2_cm_clkstctrl =
 cm_read_mod_reg(OMAP3430_IVA2_MOD, CM_CLKSTCTRL);
prcm_context.mpu_cm_clkstctrl =
@@ -436,7 +431,6 @@ void omap3_prcm_restore_context(void)
__raw_writel(prcm_context.cm_sysconfig, OMAP3430_CM_SYSCONFIG);
cm_write_mod_reg(prcm_context.sgx_cm_clksel, OMAP3430ES2_SGX_MOD,
 CM_CLKSEL);
-   cm_write_mod_reg(prcm_context.wkup_cm_clksel, WKUP_MOD, CM_CLKSEL);
cm_write_mod_reg(prcm_context.dss_cm_clksel, OMAP3430_DSS_MOD,
 CM_CLKSEL);
cm_write_mod_reg(prcm_context.cam_cm_clksel, OMAP3430_CAM_MOD,
@@ -453,7 +447,6 @@ void omap3_prcm_restore_context(void)
OMAP3430ES2_CM_CLKSEL4);
cm_write_mod_reg(prcm_context.pll_cm_clksel5, PLL_MOD,
 OMAP3430ES2_CM_CLKSEL5);
-   cm_write_mod_reg(prcm_context.pll_cm_clken, PLL_MOD, CM_CLKEN);
cm_write_mod_reg(prcm_context.pll_cm_clken2, PLL_MOD,
OMAP3430ES2_CM_CLKEN2);
__raw_writel(prcm_context.cm_polctrl, OMAP3430_CM_POLCTRL);
@@ -492,7 +485,6 @@ void omap3_prcm_restore_context(void)
cm_write_mod_reg(prcm_context.iva2_cm_autiidle2, OMAP3430_IVA2_MOD,
CM_AUTOIDLE2);
cm_write_mod_reg(prcm_context.mpu_cm_autoidle2, MPU_MOD, CM_AUTOIDLE2);
-   cm_write_mod_reg(prcm_context.pll_cm_autoidle, PLL_MOD, CM_AUTOIDLE);
cm_write_mod_reg(prcm_context.iva2_cm_clkstctrl, OMAP3430_IVA2_MOD,
CM_CLKSTCTRL);
cm_write_mod_reg(prcm_context.mpu_cm_clkstctrl, MPU_MOD, CM_CLKSTCTRL);
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] ARM: OMAP: SDMA: Fix omap_stop_dma() API for channel linking

2009-10-15 Thread Tony Lindgren
* Shilimkar, Santosh santosh.shilim...@ti.com [091014 21:40]:
  -Original Message-
  From: Tony Lindgren [mailto:t...@atomide.com]
  Sent: Wednesday, October 14, 2009 10:36 PM
  To: Shilimkar, Santosh
  Cc: linux-omap@vger.kernel.org; S, Venkatraman; Hari n; Jarkko Nikula
  Subject: Re: [PATCH] ARM: OMAP: SDMA: Fix omap_stop_dma() API for channel
  linking
  
  * Santosh Shilimkar santosh.shilim...@ti.com [091013 23:14]:
   OMAP sDMA driver API omap_stop_dma() doesn't really stop the dma when
  used
   in linking scenario. This patch fixes the same.
  
  To me it looks like this will break things for omap1 as the DMA channel
  interrupt is not disabled first. I guess the fix is to move the
  Disable all interrupts on the channel part above clearing the
  link mappings.
 Indeed it will break OMAP1. Initially I thought of putting this change at 
 this place so that it takes care of both normal and linking scenario. 
 
 I will rework this and send v2.

OK, thanks.
 
  This fix should be tested in linux-omap before we send this to mainline.
 Yes ofcourse. That what I meant by merge.

Yeah, we should still have enough time to get it into mainline kernel
as a fix during this -rc cycle.

Regards,

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


MMC_CAP_SDIO_IRQ for omap 3430

2009-10-15 Thread John Rigby
I have seen several discussions about lack of sdio irq support in the
hsmmc driver but no patches.  Has anyone on this list implemented this
and/or can anyone point me to patches?

Thanks
John
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] OMAP3: PM: Removing redundant and potentially dangerous PRCM configration

2009-10-15 Thread Sripathy, Vishwanath
As part of Core domain context restoration while coming out of off mode
there are some registers being restored which are not required to be restored.
ROM code should have restored them already. Overwriting some of them can have
potential side effect. Eg: CM_CLKEN_PLL register should not be written while 
dpll is locked.

Signed-off-by: Vishwanath BS vishwanath...@ti.com
---

diff --git a/arch/arm/mach-omap2/prcm.c b/arch/arm/mach-omap2/prcm.c
index fb864cc..da16804 100644
--- a/arch/arm/mach-omap2/prcm.c
+++ b/arch/arm/mach-omap2/prcm.c
@@ -279,7 +279,6 @@ void omap3_prcm_save_context(void)
prcm_context.cm_sysconfig = __raw_readl(OMAP3430_CM_SYSCONFIG);
prcm_context.sgx_cm_clksel =
 cm_read_mod_reg(OMAP3430ES2_SGX_MOD, CM_CLKSEL);
-   prcm_context.wkup_cm_clksel = cm_read_mod_reg(WKUP_MOD, CM_CLKSEL);
prcm_context.dss_cm_clksel =
 cm_read_mod_reg(OMAP3430_DSS_MOD, CM_CLKSEL);
prcm_context.cam_cm_clksel =
@@ -296,8 +295,6 @@ void omap3_prcm_save_context(void)
cm_read_mod_reg(PLL_MOD, OMAP3430ES2_CM_CLKSEL4);
prcm_context.pll_cm_clksel5 =
 cm_read_mod_reg(PLL_MOD, OMAP3430ES2_CM_CLKSEL5);
-   prcm_context.pll_cm_clken =
-   cm_read_mod_reg(PLL_MOD, CM_CLKEN);
prcm_context.pll_cm_clken2 =
cm_read_mod_reg(PLL_MOD, OMAP3430ES2_CM_CLKEN2);
prcm_context.cm_polctrl = __raw_readl(OMAP3430_CM_POLCTRL);
@@ -343,8 +340,6 @@ void omap3_prcm_save_context(void)
 cm_read_mod_reg(OMAP3430_IVA2_MOD, CM_AUTOIDLE2);
prcm_context.mpu_cm_autoidle2 =
 cm_read_mod_reg(MPU_MOD, CM_AUTOIDLE2);
-   prcm_context.pll_cm_autoidle =
-cm_read_mod_reg(PLL_MOD, CM_AUTOIDLE);
prcm_context.iva2_cm_clkstctrl =
 cm_read_mod_reg(OMAP3430_IVA2_MOD, CM_CLKSTCTRL);
prcm_context.mpu_cm_clkstctrl =
@@ -436,7 +431,6 @@ void omap3_prcm_restore_context(void)
__raw_writel(prcm_context.cm_sysconfig, OMAP3430_CM_SYSCONFIG);
cm_write_mod_reg(prcm_context.sgx_cm_clksel, OMAP3430ES2_SGX_MOD,
 CM_CLKSEL);
-   cm_write_mod_reg(prcm_context.wkup_cm_clksel, WKUP_MOD, CM_CLKSEL);
cm_write_mod_reg(prcm_context.dss_cm_clksel, OMAP3430_DSS_MOD,
 CM_CLKSEL);
cm_write_mod_reg(prcm_context.cam_cm_clksel, OMAP3430_CAM_MOD,
@@ -453,7 +447,6 @@ void omap3_prcm_restore_context(void)
OMAP3430ES2_CM_CLKSEL4);
cm_write_mod_reg(prcm_context.pll_cm_clksel5, PLL_MOD,
 OMAP3430ES2_CM_CLKSEL5);
-   cm_write_mod_reg(prcm_context.pll_cm_clken, PLL_MOD, CM_CLKEN);
cm_write_mod_reg(prcm_context.pll_cm_clken2, PLL_MOD,
OMAP3430ES2_CM_CLKEN2);
__raw_writel(prcm_context.cm_polctrl, OMAP3430_CM_POLCTRL);
@@ -492,7 +485,6 @@ void omap3_prcm_restore_context(void)
cm_write_mod_reg(prcm_context.iva2_cm_autiidle2, OMAP3430_IVA2_MOD,
CM_AUTOIDLE2);
cm_write_mod_reg(prcm_context.mpu_cm_autoidle2, MPU_MOD, CM_AUTOIDLE2);
-   cm_write_mod_reg(prcm_context.pll_cm_autoidle, PLL_MOD, CM_AUTOIDLE);
cm_write_mod_reg(prcm_context.iva2_cm_clkstctrl, OMAP3430_IVA2_MOD,
CM_CLKSTCTRL);
cm_write_mod_reg(prcm_context.mpu_cm_clkstctrl, MPU_MOD, CM_CLKSTCTRL);
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


24xx/n8x0 booting again, linux-omap updated to -rc5

2009-10-15 Thread Tony Lindgren
Hi all,

Thanks to Paul's OMAP2xxx clock: set up clockdomain pointer in struct clk
patch, we got 24xx booting again both in mainline and in linux-omap.

The following patch is also needed to change the n8x0 serial console CMDLINE
from ttyS0 to ttyS2 as the port numbering now matches the physical ports.
The patch is already in linux-omap, but not yet in mainline.

Also, I've rebuilt linux-omap again on top of -rc5. Will merge in the plat
header patches tomorrow.

Cheers,

Tony
From 71d3bff80f77cdd286303f19308058c6c844458f Mon Sep 17 00:00:00 2001
From: Tony Lindgren t...@atomide.com
Date: Thu, 15 Oct 2009 18:13:28 -0700
Subject: [PATCH] omap: Fix console serial port number for n8x0

With the recent changes omap serial ports match the physical
numbering like they should. Fix the kernel CMDLINE accordingly
so console works.

Signed-off-by: Tony Lindgren t...@atomide.com

diff --git a/arch/arm/configs/n8x0_defconfig b/arch/arm/configs/n8x0_defconfig
index 8da75de..264f52b 100644
--- a/arch/arm/configs/n8x0_defconfig
+++ b/arch/arm/configs/n8x0_defconfig
@@ -304,7 +304,7 @@ CONFIG_ALIGNMENT_TRAP=y
 CONFIG_ZBOOT_ROM_TEXT=0x10C08000
 CONFIG_ZBOOT_ROM_BSS=0x1020
 # CONFIG_ZBOOT_ROM is not set
-CONFIG_CMDLINE=root=1f03 rootfstype=jffs2 console=ttyS0,115200n8
+CONFIG_CMDLINE=root=1f03 rootfstype=jffs2 console=ttyS2,115200n8
 # CONFIG_XIP_KERNEL is not set
 # CONFIG_KEXEC is not set
 


RE: [RFC][Patch V1] OMAP3: Mux Changes.

2009-10-15 Thread Pais, Allen
 


Hi Allen,
a) A simple comment to all my comments: why cant we have these in bootloader 
and just simply leave the mux file alone?
[Allen] Yes Nishanth, this would be a much cleaner approach. Even Santosh had 
suggested
The same, if we can conclude on a approach here, I can go ahead and do the Mux 
Change it accordingly.
b) Are you doing this for a specific platform or are they generic 3630 pin mux 
changes?
[Allen] No, not as of now.

- Allen

 -Original Message-
 From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap- 
 ow...@vger.kernel.org] On Behalf Of Menon, Nishanth
 Sent: Thursday, October 15, 2009 7:24 AM
 To: Pais, Allen; Aguirre Rodriguez, Sergio Alberto; linux-omap
 Cc: Chikkature Rajashekar, Madhusudhan; Pandita, Vikram; Gadiyar, 
 Anand; Cousson, Benoit; Felipe Balbi; Kevin Hilman; Premi, Sanjeev; 
 Shilimkar, Santosh; Tony Lindgren
 Subject: RE: [RFC][Patch V1] OMAP3: Mux Changes.
 
 Please send your patch using git send email. And generate your patch 
 using git format patch
 
  -Original Message-
  From: Pais, Allen
  Sent: Thursday, October 15, 2009 4:38 AM
 
  Please ignore my previous mail.
 
  Muxes for OMAP 3630.
 
  Signed-off-by: Allen Pais allen.p...@ti.com diff --git
 a/arch/arm/mach-
  omap2/mux.c b/arch/arm/mach-omap2/mux.c index b5fac32..93abb74 
  100644
 
 
  --- a/arch/arm/mach-omap2/mux.c
  +++ b/arch/arm/mach-omap2/mux.c
  @@ -551,6 +551,42 @@ MUX_CFG_34XX(AF13_3430_MMC3_DAT3, 0x5e2, 
  MUX_CFG_34XX(AF26_34XX_SYS_NIRQ, 0x1E0,
  OMAP3_WAKEUP_EN | OMAP34XX_PIN_INPUT_PULLUP |
  OMAP34XX_MUX_MODE0)
  +
  +/*Muxes for 3630 */
  +MUX_CFG_34XX(H26_3630_DSS_DATA18, 0x100,
  +   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN) 
  +MUX_CFG_34XX(H25_3630_DSS_DATA19, 0x102,
  +   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN) 
  +MUX_CFG_34XX(E28_3630_DSS_DATA20, 0x104,
  +   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN) 
  +MUX_CFG_34XX(J26_3630_DSS_DATA21, 0x106,
  +   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN) 
  +MUX_CFG_34XX(AC27_3630_DSS_DATA22, 0x108,
  +   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN) 
  +MUX_CFG_34XX(AC28_3630_DSS_DATA23, 0x10A,
  +   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
 Why cant I do this in Board file?
I Really typed that??? Dumb me.. apologies on the noise.. I had meant 
bootloader..
  +
  +MUX_CFG_34XX(AF9_3630_ETKD8, 0x5EC,
  +   OMAP34XX_MUX_MODE1 | OMAP34XX_PIN_INPUT_PULLDOWN) 
  +MUX_CFG_34XX(AG9_3630_ETKD9, 0x5EE,
  +   OMAP34XX_MUX_MODE1 | OMAP34XX_PIN_INPUT_PULLDOWN) 
  +MUX_CFG_34XX(AG7_3630_ETKD12, 0x5F0,
  +   OMAP34XX_MUX_MODE1 | OMAP34XX_PIN_INPUT_PULLDOWN)
 Why am I doing this?
  +
  +MUX_CFG_34XX(AA25_3630_UART2_TX, 0x178,
  +   OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN) 
  +MUX_CFG_34XX(AD25_3630_UART2_RX, 0x17A,
  +   OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN) 
  +MUX_CFG_34XX(AB25_3630_UART2_RTS, 0x176,
  +   OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN) 
  +MUX_CFG_34XX(AB26_3630_UART2_CTS, 0x174,
  +   OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
 Please explain..
  +
  +MUX_CFG_34XX(H20_UART3_RX_IRRX, 0x19E,
  +   OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLDOWN) 
  +MUX_CFG_34XX(H21_UART3_TX_IRTX, 0x1A0,
  +   OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLDOWN)
  +
   };
 ??
 
   #define OMAP34XX_PINS_SZ   ARRAY_SIZE(omap34xx_pins)
  diff --git a/arch/arm/plat-omap/include/mach/mux.h b/arch/arm/plat- 
  omap/include/mach/mux.h index 0f49d2d..8d8cbe1 100644
  --- a/arch/arm/plat-omap/include/mach/mux.h
  +++ b/arch/arm/plat-omap/include/mach/mux.h
  @@ -890,6 +890,32 @@ enum omap34xx_index {
 
  /* SYS_NIRQ T2 INT1 */
  AF26_34XX_SYS_NIRQ,
  +
  +   /*Muxes for 3630*/
  +   K28_3630_CAM_D6,
  +   L28_3630_CAM_D7,
  +   K27_3630_CAM_D8,
  +   L27_3630_CAM_D9,
  +
  +   H26_3630_DSS_DATA18,
  +   H25_3630_DSS_DATA19,
  +   E28_3630_DSS_DATA20,
  +   J26_3630_DSS_DATA21,
  +   AC27_3630_DSS_DATA22,
  +   AC28_3630_DSS_DATA23,
  +
  +   AF9_3630_ETKD8,
  +   AG9_3630_ETKD9,
  +   AG7_3630_ETK12,
  +
  +   AA25_3630_UART2_TX,
  +   AD25_3630_UART2_RX,
  +   AB25_3630_UART2_RTS,
  +   AB26_3630_UART2_CTS,
  +
  +   H20_UART3_RX_IRRX,
  +   H21_UART3_TX_IRTX,
  +
   };
 
   struct omap_mux_cfg {
 --
 To unsubscribe from this list: send the line unsubscribe linux-omap 
 in the body of a message to majord...@vger.kernel.org More majordomo 
 info at  http://vger.kernel.org/majordomo-info.html


Regards,
Nishanth Menon

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


Re: [RFC][Patch V1] OMAP3: Mux Changes.

2009-10-15 Thread Nishanth Menon

Pais, Allen had written, on 10/15/2009 11:53 PM, the following:

a) A simple comment to all my comments: why cant we have these in bootloader 
and just simply leave the mux file alone?
[Allen] Yes Nishanth, this would be a much cleaner approach. Even Santosh had 
suggested
The same, if we can conclude on a approach here, I can go ahead and do the Mux 
Change it accordingly.

Then lets please fix the bootloader and drop this patch.


- Allen


-Original Message-
From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap- 
ow...@vger.kernel.org] On Behalf Of Menon, Nishanth

Sent: Thursday, October 15, 2009 7:24 AM
To: Pais, Allen; Aguirre Rodriguez, Sergio Alberto; linux-omap

Please try not to Top post. see [1]

--
Regards,
Nishanth Menon
Ref:
[1] http://www.arm.linux.org.uk/mailinglists/etiquette.php#e3
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH] ARM: OMAP: SDMA: Fix omap_stop_dma() API for channel linking

2009-10-15 Thread Shilimkar, Santosh
snip 
   This fix should be tested in linux-omap before we send this to
 mainline.
  Yes ofcourse. That what I meant by merge.
 
 Yeah, we should still have enough time to get it into mainline kernel
 as a fix during this -rc cycle.

OK. Also please merge other two patches in linux-omap master since omap4 needs 
those two patches to boot.
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html