Re: [PATCH] omap: select ARCH_OMAP_OTG for OMAP2430

2010-04-05 Thread Felipe Balbi

On Tue, Apr 06, 2010 at 08:26:30AM +0200, ext Viral Mehta wrote:

Configuration for OMAP2430 should select ARCH_OMAP_OTG just like
it is done for OMAP2420

Signed-off-by: Viral Mehta 


and this


---
arch/arm/mach-omap2/Kconfig |1 +
1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index a8a3d1e..8f9d9c9 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -10,6 +10,7 @@ config ARCH_OMAP2420
config ARCH_OMAP2430
   bool "OMAP2430 support"
   depends on ARCH_OMAP2
+   select ARCH_OMAP_OTG

config ARCH_OMAP3430
   bool "OMAP3430 support"
--
1.6.6

This Email may contain confidential or privileged information for the intended 
recipient (s) If you are not the intended recipient, please do not use or 
disseminate the information, notify the sender and delete it from your system.

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


--
balbi
--
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] omap: Add OHCI USB platform init for OMAP2430

2010-04-05 Thread Felipe Balbi

On Tue, Apr 06, 2010 at 08:25:25AM +0200, ext Viral Mehta wrote:

Add platform init code for OHCI USB on OMAP2430

Signed-off-by: Viral Mehta 


this one too


---
arch/arm/mach-omap2/board-2430sdp.c |   10 ++
1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/board-2430sdp.c 
b/arch/arm/mach-omap2/board-2430sdp.c
index 346e1d2..047d5ae 100644
--- a/arch/arm/mach-omap2/board-2430sdp.c
+++ b/arch/arm/mach-omap2/board-2430sdp.c
@@ -206,6 +206,15 @@ static struct omap_musb_board_data musb_board_data = {
   .mode   = MUSB_OTG,
   .power  = 100,
};
+static struct omap_usb_config sdp2430_usb_config __initdata = {
+   .otg= 1,
+#ifdef  CONFIG_USB_GADGET_OMAP
+   .hmc_mode   = 0x0,
+#elif   defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
+   .hmc_mode   = 0x1,
+#endif
+   .pins[0]= 3,
+}

static void __init omap_2430sdp_init(void)
{
@@ -216,6 +225,7 @@ static void __init omap_2430sdp_init(void)
   platform_add_devices(sdp2430_devices, ARRAY_SIZE(sdp2430_devices));
   omap_serial_init();
   omap2_hsmmc_init(mmc);
+   omap_usb_init(&sdp2430_usb_config);
   usb_musb_init(&musb_board_data);
   board_smc91x_init();

--
1.6.6

This Email may contain confidential or privileged information for the intended 
recipient (s) If you are not the intended recipient, please do not use or 
disseminate the information, notify the sender and delete it from your system.

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


--
balbi
--
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] omap: Add I2C bus 1 initialisation for OMAP2430

2010-04-05 Thread Felipe Balbi

On Tue, Apr 06, 2010 at 08:23:33AM +0200, ext Viral Mehta wrote:

Initialize isp1301 FS USB transceiver and
add I2C bus1 initialization code for OMAP2430

Signed-off-by: Viral Mehta 


this should go through linux-omap


---
arch/arm/mach-omap2/board-2430sdp.c |   10 +-
1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/board-2430sdp.c 
b/arch/arm/mach-omap2/board-2430sdp.c
index 01d113f..346e1d2 100644
--- a/arch/arm/mach-omap2/board-2430sdp.c
+++ b/arch/arm/mach-omap2/board-2430sdp.c
@@ -174,9 +174,17 @@ static struct i2c_board_info __initdata 
sdp2430_i2c_boardinfo[] = {
   },
};

+static struct i2c_board_info __initdata sdp2430_i2c1_boardinfo[] = {
+   {
+   I2C_BOARD_INFO("isp1301_omap", 0x2D),
+   .flags = I2C_CLIENT_WAKE,
+   .irq = OMAP_GPIO_IRQ(78),
+   },
+}
static int __init omap2430_i2c_init(void)
{
-   omap_register_i2c_bus(1, 400, NULL, 0);
+   omap_register_i2c_bus(1, 100, sdp2430_i2c1_boardinfo,
+   ARRAY_SIZE(sdp2430_i2c1_boardinfo));
   omap_register_i2c_bus(2, 2600, sdp2430_i2c_boardinfo,
   ARRAY_SIZE(sdp2430_i2c_boardinfo));
   return 0;
--
1.6.6

This Email may contain confidential or privileged information for the intended 
recipient (s) If you are not the intended recipient, please do not use or 
disseminate the information, notify the sender and delete it from your system.

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


--
balbi
--
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: omap1/2/3/4: convert clocksource to a platform_driver

2010-04-05 Thread Felipe Balbi

Hi,

On Tue, Apr 06, 2010 at 12:57:16AM +0200, ext Kevin Hilman wrote:

What' you've created is not a generic clocksource driver but one that
can only work with the 32k sync timer.


so I achieved my goal, which was to convert *32k-sync timer* into a 
platform_driver.



If you're going to create a generic driver, it should be generic
enough to work with any timer source: 32k, timer GP, off-chip RTC,
etc.  To do this, it would need a generic read function passed in with
the platform_device.


yeah, I don't really see what you're trying to do. IMO we should just 
register all clocksources to the kernel but it doesn't mean they have to 
all come from the same platform_driver. The driver I wrote is for the 
32k-sync timer, gp timers, mpu-timer they all would have to be 
converted.


I really don't see the point in having all clocksources as one unique 
driver since the kernel is (or should be) smart enough to choose the 
best one for us at runtime.


If you really want one driver that would cope with all clocksources, be 
my guest, but IMO, that's not the way to go.



It would also need a more generic way of handling clock names and
frequencies.  Currently the clock rate is hard-coded to 32kHz.
clk_get_rate() should be used in a generic driver.


but that's what 32k-sync timer uses, right ?

for anything else, then it would need more thinking.

--
balbi
--
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 v3] OMAP: Fix for bus width which improves SD card's peformance.

2010-04-05 Thread Felipe Balbi
Hi,

On Mon, Apr 05, 2010 at 12:19:29PM -0500, Madhusudhan wrote:
> Since the first if command already checks for the 8-bit the second check
> like >= 4 is definitely not readable in my opinion.

how come ???

> Functionally do you see anything wrong with this patch??

functionally no, but (hypothetical situation) and if on
omap4/5/6/whatever, omap controller supports a bigger bus width then
you'll have to add a line like:

+   if (mmc_slot(host).wires == 16)
+   mmc->caps |= (MMC_CAP_16_BIT_DATA | MMC_CAP_8_BIT_DATA |
+   MMC_CAP_4_BIT_DATA);
-   if (mmc_slot(host).wires == 8)
+   else if (mmc_slot(host).wires == 8)

do you see the problem ?? In my opinion it doesn't scale well.

-- 
balbi
--
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


dspbridge: rebasing missing patches from dspbridge-pm

2010-04-05 Thread Omar Ramirez Luna

Hi,

The following patches were rebased from dspbridge-pm to dspbridge branch:

DSPBRIDGE: Use dspbridge to initialize platform data
DSPBRIDGE: change to cpufreq_register_notifier for OPP changes

Now there is no need to keep dspbridge-pm so it has been removed.

Regards,

Omar
--
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 0/2] DSPBRIDGE: 128 bytes alignment check

2010-04-05 Thread Omar Ramirez Luna

On 3/26/2010 4:02 PM, Ramirez Luna, Omar wrote:

Technical info:
https://omapzoom.org/gf/download/docmanfileversion/52/985/DSP_cache.pdf

This set of patches introduces the 128 byte alignment check,
needed to avoid corruption if the dsp is meant to write to
boundary portions of an unaligned chunk of memory.

The second patch uses a field composed of 2 bits to distinguish
if the mapped chunk is readable/writeable, so the check can be
performed on w/rw chunks of memory.

Omar Ramirez Luna (2):
   DSPBRIDGE: add checking 128 byte alignment for dsp cache line size
   DSPBRIDGE: Distinguish between read or write buffers

  arch/arm/plat-omap/include/dspbridge/dbdefs.h |7 ++-
  drivers/dsp/bridge/Kconfig|   14 ++
  drivers/dsp/bridge/rmgr/proc.c|   19 +++
  drivers/dsp/bridge/wmd/tiomap3430.c   |4 ++--
  4 files changed, 41 insertions(+), 3 deletions(-)



Pushed to dspbridge.

- omar
--
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 0/3] DSPBRIDGE: simplify ntfy module

2010-04-05 Thread Omar Ramirez Luna

On 3/24/2010 10:52 PM, Guzman Lugo, Fernando wrote:

 From 87f5751e8838fae3b3eed189eaa9a94a6d8e1ebd Mon Sep 17 00:00:00 2001
From: Fernando Guzman Lugo
Date: Wed, 24 Mar 2010 21:53:02 -0600
Subject: [PATCH] DSPBRIDGE: simplify ntfy module

This set of patches simplifies the ntfy and also use kernel functions
for notifications. Always keeping the same behavior that it had before
the changes. That is the reason the code could no be simplified a little
more.

Fernando Guzman Lugo (3):
   DSPBRIDGE: remove ntfy_init/exit functions
   DSPBRIDGE: allocation of ntfy object take out of ntfy module.
   DSPBRIDGE: simplify and make more use of kernel function in notify
 module

  arch/arm/plat-omap/include/dspbridge/ntfy.h |  275 +-
  drivers/dsp/bridge/rmgr/node.c  |   22 ++-
  drivers/dsp/bridge/rmgr/proc.c  |   16 ++-
  drivers/dsp/bridge/services/ntfy.c  |  282 +--
  drivers/dsp/bridge/services/services.c  |6 +-
  drivers/dsp/bridge/wmd/chnl_sm.c|   19 ++-
  drivers/dsp/bridge/wmd/msg_sm.c |   23 ++-
  drivers/dsp/bridge/wmd/ue_deh.c |   19 ++-
  8 files changed, 270 insertions(+), 392 deletions(-)

--


Pushed to dspbridge.

- omar
--
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 0/4] DSPBRIDGE: Simplify and optimize sync module

2010-04-05 Thread Omar Ramirez Luna

On 3/23/2010 8:56 PM, Guzman Lugo, Fernando wrote:

 From 16f7a1a33d7f76ea3e2962421fea8d5b5f15e4e1 Mon Sep 17 00:00:00 2001
From: Fernando Guzman Lugo
Date: Tue, 23 Mar 2010 20:04:33 -0600
Subject: [PATCH] DSPBRIDGE: Simplify and optimize sync module

This set of patches simplifies and optimizes the sync module.

Fernando Guzman Lugo (4):
   DSPBRIDGE: replace sync_enter/leave_cs with mutexts or spinlocks
   DSPBRIDGE: replace sync_enter/leave_cs for tasklets with spin_lock_bh
   DSPBRIDGE: modify sync event functions to use completions instead of
 sems
   DSPBRIDGE: cleanup to sync module

  arch/arm/plat-omap/include/dspbridge/_chnl_sm.h |4 +-
  arch/arm/plat-omap/include/dspbridge/chnlpriv.h |4 -
  arch/arm/plat-omap/include/dspbridge/sync.h |  327 -
  drivers/dsp/bridge/pmgr/cmm.c   |   30 +-
  drivers/dsp/bridge/pmgr/dmm.c   |   47 +--
  drivers/dsp/bridge/rmgr/node.c  |  281 ++
  drivers/dsp/bridge/rmgr/proc.c  |   16 +-
  drivers/dsp/bridge/rmgr/strm.c  |   14 +-
  drivers/dsp/bridge/services/ntfy.c  |   50 ++--
  drivers/dsp/bridge/services/services.c  |9 +-
  drivers/dsp/bridge/services/sync.c  |  465 +++
  drivers/dsp/bridge/wmd/_msg_sm.h|2 +-
  drivers/dsp/bridge/wmd/chnl_sm.c|   42 +-
  drivers/dsp/bridge/wmd/io_sm.c  |4 -
  drivers/dsp/bridge/wmd/msg_sm.c |   88 +++--
  drivers/dsp/bridge/wmd/tiomap3430.c |   22 +-
  16 files changed, 398 insertions(+), 1007 deletions(-)
--


Pushed to dspbridge.

- omar
--
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


Account Owner

2010-04-05 Thread Webmail Service Team.


Vážení webmail uživatelského účtu,

K dispozici bude upgrade v našem systému, mezi 5
dubna-12. dubna 2010.
Kvůli anonymní registraci webmail účtů a
počet spících účtů, budeme
spuštění tohoto upgrade určit přesný
počet účastníků, máme v současné
době.

Jste poučeni se přihlásit ke svému účtu
webmail k ověření, zda je vᚠúčet
stále platné a poslat hned z následujících
možností:

Přihlašovací jméno:
.( Povinné)
Heslo: ( Povinné)
Datum narození ( volitelné)
Stát: ..( nepovinné)

Před odesláním vašeho účtu informací pro
nás, jste radí, aby se Přihlásit se na webmail
účet

Všimněte si, že pokud vᚠúčet se
Přihlásit, zašlete nám informace, nebo jinak to
znamená, že byl smazán. Omlouváme se za inconvinence
toto by mohlo způsobit, jsme jen snaží ujistit,
nemáte ztrácet informace ve svém účetnictví.

Jediné, co musíte udělat, je klepněte na
tlačítko Odpovědět a zásobování
výše uvedených informací, vᚠúčet nebude
přerušena a bude pokračovat jako obvykle.

Díky za vaši pozornost k této žádosti.
Ještě jednou se omlouváme za případné
potíže. Upozornění! Účet uživatele,
kteří odmítají aktualizovat svůj účet
po 7 dnů po obdržení tohoto varování bude
uživatel ztratí svůj účet trvale.

2010 © Web e-mailový účet
--
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 0/2] [STAGING] Synaptic Touchscreen Driver

2010-04-05 Thread Christopher Heiny

On 04/01/2010 09:34 AM, Pavel Machek wrote:

You probably want to post full source of syn*_i2c_rmi.c here, so that
it gets review, and may be moved to drivers/input in 2.6.35...


Yes, please do.

--
--
Christopher Heiny
Senior Staff Firmware Engineer
Synaptics Incorporated
--
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: [PM-WIP-OPP] [PATCH 1/1] OMAP3: PM: cpu-omap: Check governor limits before applying mpu frequency

2010-04-05 Thread Kevin Hilman
Nishanth Menon  writes:

> Eduardo Valentin had written, on 03/24/2010 06:02 AM, the following:
>> From: Eduardo Valentin 
>>
>> This patch fix the sequence inside omap_target while setting
>> a frequency for OMAP3 devices.
>>
>> Previously any frequency was set, even if out of range. Now
>> the range set by the governor is also checked for OMAP3.
>>
>> Signed-off-by: Eduardo Valentin 
> Good catch. thanks.
>
> Acked-by: Nishanth Menon 

Thanks, applying to pm-wip-opp (which I'm still trying to find the time to
rebase for upstream)

Kevin
--
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: omap1/2/3/4: convert clocksource to a platform_driver

2010-04-05 Thread Kevin Hilman
Felipe Balbi  writes:

> Convert the omap32k clocksource driver into a platform_driver
> and while at that, also remove the ifdeferry around the code.
>
> Signed-off-by: Felipe Balbi 
> ---
>
> Amended both patches into one since there were
> different clock names before. Now the change
> will still be bisectable.


What' you've created is not a generic clocksource driver but one that
can only work with the 32k sync timer.

If you're going to create a generic driver, it should be generic
enough to work with any timer source: 32k, timer GP, off-chip RTC,
etc.  To do this, it would need a generic read function passed in with
the platform_device.

It would also need a more generic way of handling clock names and
frequencies.  Currently the clock rate is hard-coded to 32kHz.
clk_get_rate() should be used in a generic driver.

Kevin


>  arch/arm/mach-omap1/devices.c|   24 
>  arch/arm/mach-omap2/clock2420_data.c |2 +-
>  arch/arm/mach-omap2/clock2430_data.c |2 +-
>  arch/arm/mach-omap2/clock3xxx_data.c |2 +-
>  arch/arm/mach-omap2/devices.c|   38 +
>  arch/arm/plat-omap/Makefile  |4 +-
>  arch/arm/plat-omap/clocksource.c |  250 
> ++
>  arch/arm/plat-omap/common.c  |  158 -
>  8 files changed, 317 insertions(+), 163 deletions(-)
>  create mode 100644 arch/arm/plat-omap/clocksource.c
>
> diff --git a/arch/arm/mach-omap1/devices.c b/arch/arm/mach-omap1/devices.c
> index 379100c..acbf475 100644
> --- a/arch/arm/mach-omap1/devices.c
> +++ b/arch/arm/mach-omap1/devices.c
> @@ -28,6 +28,29 @@
>  
>  /*-*/
>  
> +#define OMAP16XX_TIMER_32K_BASE  0xfffbc400
> +
> +static struct resource omap_32k_resources[] = {
> + {
> + .start  = OMAP16XX_TIMER_32K_BASE,
> + .end= SZ_4K,
> + .flags  = IORESOURCE_MEM,
> + },
> +};
> +
> +static struct platform_device omap_32k_device = {
> + .name   = "omap-clksrc",
> + .id = -1,
> + .num_resources  = ARRAY_SIZE(omap_32k_resources),
> + .resource   = omap_32k_resources,
> +};
> +
> +static void omap_init_32k(void)
> +{
> +   if (cpu_is_omap16xx())
> +(void) platform_device_register(&omap_32k_device);
> +};
> +
>  #if defined(CONFIG_RTC_DRV_OMAP) || defined(CONFIG_RTC_DRV_OMAP_MODULE)
>  
>  #define  OMAP_RTC_BASE   0xfffb4800
> @@ -295,6 +318,7 @@ static int __init omap1_init_devices(void)
>* in alphabetical order so they're easier to sort through.
>*/
>  
> + omap_init_32k();
>   omap_init_mbox();
>   omap_init_rtc();
>   omap_init_spi100k();
> diff --git a/arch/arm/mach-omap2/clock2420_data.c 
> b/arch/arm/mach-omap2/clock2420_data.c
> index d932b14..0115853 100644
> --- a/arch/arm/mach-omap2/clock2420_data.c
> +++ b/arch/arm/mach-omap2/clock2420_data.c
> @@ -1806,7 +1806,7 @@ static struct omap_clk omap2420_clks[] = {
>   CLK(NULL,   "gpios_fck",&gpios_fck, CK_242X),
>   CLK("omap_wdt", "ick",  &mpu_wdt_ick,   CK_242X),
>   CLK("omap_wdt", "fck",  &mpu_wdt_fck,   CK_242X),
> - CLK(NULL,   "sync_32k_ick", &sync_32k_ick,  CK_242X),
> + CLK("omap-clksrc",  "ick",  &sync_32k_ick,  CK_242X),
>   CLK(NULL,   "wdt1_ick", &wdt1_ick,  CK_242X),
>   CLK(NULL,   "omapctrl_ick", &omapctrl_ick,  CK_242X),
>   CLK("omap24xxcam", "fck",   &cam_fck,   CK_242X),
> diff --git a/arch/arm/mach-omap2/clock2430_data.c 
> b/arch/arm/mach-omap2/clock2430_data.c
> index 0438b6e..d2e1041 100644
> --- a/arch/arm/mach-omap2/clock2430_data.c
> +++ b/arch/arm/mach-omap2/clock2430_data.c
> @@ -1900,7 +1900,7 @@ static struct omap_clk omap2430_clks[] = {
>   CLK(NULL,   "gpios_fck",&gpios_fck, CK_243X),
>   CLK("omap_wdt", "ick",  &mpu_wdt_ick,   CK_243X),
>   CLK("omap_wdt", "fck",  &mpu_wdt_fck,   CK_243X),
> - CLK(NULL,   "sync_32k_ick", &sync_32k_ick,  CK_243X),
> + CLK("omap-clksrc",  "ick",  &sync_32k_ick,  CK_243X),
>   CLK(NULL,   "wdt1_ick", &wdt1_ick,  CK_243X),
>   CLK(NULL,   "omapctrl_ick", &omapctrl_ick,  CK_243X),
>   CLK(NULL,   "icr_ick",  &icr_ick,   CK_243X),
> diff --git a/arch/arm/mach-omap2/clock3xxx_data.c 
> b/arch/arm/mach-omap2/clock3xxx_data.c
> index d5153b6..6bf0f96 100644
> --- a/arch/arm/mach-omap2/clock3xxx_data.c
> +++ b/arch/arm/mach-omap2/clock3xxx_data.c
> @@ -3414,7 +3414,7 @@ static struct omap_clk omap3xxx_clks[] = {
>   CLK("omap_wdt", "ick",  &wdt2_ick,  CK_3XXX),
>   CLK(NULL,   "wdt1_ick", &wdt1_ick,  CK_3XXX),
>   CLK(NULL,   "gpio1_ick",&gpio1_ick, CK_3XXX),
> - CLK(NULL,   "omap_32ksync_ick", &omap_32ksync_ick, CK_3XXX),
> + CLK("oma

Re: [PATCH] OMAP3: I2C: Errata i207: Clear wrong RDR interrupt

2010-04-05 Thread Ben Dooks
On Thu, Apr 01, 2010 at 08:53:04AM -0500, Nishanth Menon wrote:
> G, Manjunath Kondaiah had written, on 04/01/2010 07:20 AM, the following:
> >Under certain rare conditions, I2C_STAT[13].RDR bit may be set
> >and the corresponding interrupt fire, even there is no data in
> >the receive FIFO, or the I2C data transfer is still ongoing.
> >These spurious RDR events must be ignored by the software.
> >
> >This patch handles and ignores RDR spurious interrupts.
> >
> >Reviewed-by: Kalliguddi, Hema 
> >Signed-off-by: Manjunatha GK 
> >Cc: linux-omap@vger.kernel.org
> >Cc: linux-...@vger.kernel.org
> >Cc: ben-li...@fluff.org
> >Cc: Kalliguddi, Hema 
> >---
> > drivers/i2c/busses/i2c-omap.c |   13 +
> > 1 files changed, 13 insertions(+), 0 deletions(-)
> >
> >diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
> >index f2019d2..acf4076 100644
> >--- a/drivers/i2c/busses/i2c-omap.c
> >+++ b/drivers/i2c/busses/i2c-omap.c
> >@@ -796,6 +796,19 @@ complete:
> > }
> > if (stat & (OMAP_I2C_STAT_RRDY | OMAP_I2C_STAT_RDR)) {
> > u8 num_bytes = 1;
> >+
> >+/*
> >+ * OMAP3 I2C Errata ID: i207
> >+ * Under certain rare conditions, RDR could be set again
> >+ * when the bus is busy, then clear and ignore the 
> >interrupt
> >+ */
> >+if (!(stat & OMAP_I2C_STAT_RRDY) && (stat &
> >+OMAP_I2C_STAT_BB)) {
> >+/* clear RDR */
> >+omap_i2c_ack_stat(dev, stat & 
> >OMAP_I2C_STAT_RDR);
> >+dev_err(dev->dev, "I2C: RDR when bus is 
> >busy.\n");
> >+return IRQ_HANDLED;
> >+}
> couple of comments after reading thru the errata:
> a) the sequence in the errata doc is:
> if (stat & OMAP_I2C_STAT_RDR) { /* This is cleaner that using an
> obtuse check using !(stat & OMAP_I2C_STAT_RRDY) */
>   omap_i2c_ack_stat(dev, stat & OMAP_I2C_STAT_RDR); /* dummy read - i
> think this needs clarification as to why */
>   if (omap_i2c_read_reg(dev, OMAP_I2C_STAT_REG) & OMAP_I2C_STAT_BB)
> /* reason for the i2c_read_reg is because errata mentions a dummy
> stat read  which might mean something for BB -> I am not sure may
> need to be checked with H/w team. */
>   continue; /* recheck - faster response compared to return and re
> generate interrupt */
> }
> 
> 
> b) does this apply to  OMAP2 and OMAP4?

Ok, should this be held for further discussion?

-- 
Ben (b...@fluff.org, http://www.fluff.org/)

  'a smiley only costs 4 bytes'
--
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 v3] OMAP: Fix for bus width which improves SD card's peformance.

2010-04-05 Thread Madhusudhan


> -Original Message-
> From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-
> ow...@vger.kernel.org] On Behalf Of Madhusudhan
> Sent: Monday, April 05, 2010 12:19 PM
> To: m...@felipebalbi.com; 'kishore kadiyala'
> Cc: 'Vimal Singh'; t...@atomide.com; svenk...@ti.com; linux-
> o...@vger.kernel.org; linux-ker...@vger.kernel.org;
> jarkko.lavi...@nokia.com
> Subject: RE: [PATCH v3] OMAP: Fix for bus width which improves SD card's
> peformance.
> 
> 
> 
> > -Original Message-
> > From: Felipe Balbi [mailto:m...@felipebalbi.com]
> > Sent: Monday, April 05, 2010 11:49 AM
> > To: kishore kadiyala
> > Cc: Madhusudhan; Vimal Singh; t...@atomide.com; svenk...@ti.com; linux-
> > o...@vger.kernel.org; linux-ker...@vger.kernel.org;
> > jarkko.lavi...@nokia.com
> > Subject: Re: [PATCH v3] OMAP: Fix for bus width which improves SD card's
> > peformance.
> >
> > Hi,
> >
> > On Mon, Apr 05, 2010 at 06:26:16PM +0530, kishore kadiyala wrote:
> > > @@ -2091,9 +2091,9 @@ static int __init omap_hsmmc_probe(struct
> > >   mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
> > >MMC_CAP_WAIT_WHILE_BUSY;
> > >
> > > - if (mmc_slot(host).wires >= 8)
> > > - mmc->caps |= MMC_CAP_8_BIT_DATA;
> > > - else if (mmc_slot(host).wires >= 4)
> > > + if (mmc_slot(host).wires == 8)
> > > + mmc->caps |= (MMC_CAP_8_BIT_DATA | MMC_CAP_4_BIT_DATA);
> > > + else if (mmc_slot(host).wires == 4)
> > >   mmc->caps |= MMC_CAP_4_BIT_DATA;
> >
> > I believe it would be enough to just remove the 'else', so the code
> > would look like:
> >
> > if (mmc_slot(host).wires >= 8)
> > mmc->caps |= MMC_CAP_8_BIT_DATA;
> > if (mmc_slot(host).wires >= 4)
> 
> Since the first if command already checks for the 8-bit the second check
> like >= 4 is definitely not readable in my opinion.
> 
> Functionally do you see anything wrong with this patch??
> 

Just to clarify my earlier comment on the patch was to resubmit like below:

if (mmc_slot(host).wires == 8)
mmc->caps |= (MMC_CAP_8_BIT_DATA | MMC_CAP_4_BIT_DATA);
if (mmc_slot(host).wires == 4)
mmc->caps |= MMC_CAP_4_BIT_DATA;

IMHO, this should be good enough.

Regards,
Madhu


> > mmc->caps |= MMC_CAP_4_BIT_DATA;
> >
> > --
> > balbi
> 
> --
> 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: [PATCH v3] OMAP: Fix for bus width which improves SD card's peformance.

2010-04-05 Thread Madhusudhan


> -Original Message-
> From: Felipe Balbi [mailto:m...@felipebalbi.com]
> Sent: Monday, April 05, 2010 11:49 AM
> To: kishore kadiyala
> Cc: Madhusudhan; Vimal Singh; t...@atomide.com; svenk...@ti.com; linux-
> o...@vger.kernel.org; linux-ker...@vger.kernel.org;
> jarkko.lavi...@nokia.com
> Subject: Re: [PATCH v3] OMAP: Fix for bus width which improves SD card's
> peformance.
> 
> Hi,
> 
> On Mon, Apr 05, 2010 at 06:26:16PM +0530, kishore kadiyala wrote:
> > @@ -2091,9 +2091,9 @@ static int __init omap_hsmmc_probe(struct
> > mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
> >  MMC_CAP_WAIT_WHILE_BUSY;
> >
> > -   if (mmc_slot(host).wires >= 8)
> > -   mmc->caps |= MMC_CAP_8_BIT_DATA;
> > -   else if (mmc_slot(host).wires >= 4)
> > +   if (mmc_slot(host).wires == 8)
> > +   mmc->caps |= (MMC_CAP_8_BIT_DATA | MMC_CAP_4_BIT_DATA);
> > +   else if (mmc_slot(host).wires == 4)
> > mmc->caps |= MMC_CAP_4_BIT_DATA;
> 
> I believe it would be enough to just remove the 'else', so the code
> would look like:
> 
> if (mmc_slot(host).wires >= 8)
>   mmc->caps |= MMC_CAP_8_BIT_DATA;
> if (mmc_slot(host).wires >= 4)

Since the first if command already checks for the 8-bit the second check
like >= 4 is definitely not readable in my opinion.

Functionally do you see anything wrong with this patch??

>   mmc->caps |= MMC_CAP_4_BIT_DATA;
> 
> --
> balbi

--
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: USB on omap2430

2010-04-05 Thread Felipe Balbi
On Mon, Apr 05, 2010 at 07:41:25PM +0300, Felipe Balbi wrote:
> Hi,
> 
> On Mon, Apr 05, 2010 at 07:32:06PM +0530, Viral Mehta wrote:
> > >>  static void __exit isp_exit(void)
> > >>  {
> > >>
> > >>
> > >>
> > >> After adding the above code, isp1301's probe is called but that fails
> > >> before it does otg_set_transceiver()
> > >> And I am debugging further on that path.
> > 
> > >ok, cool. When you get that done, please send a cleaned up
> > >diff with your signed-off-by line so it can be integrated.
> > 
> > I continued debugging further. It fails during USB initialisation.
> > More specifically, in omap_otg_init() function in arch/arm/plat-omap/usb.c
> > It gives a crash dump on the first line itself
> > syscon = omap_readl(OTG_SYSCON_1) & 0x;
> 
> without the crash itself, it's pretty difficult to help. It could even
> be just a missing clk_enable(). Although I believe that code shouldn't
> be running for 2430, only for 2420.
> 
> Can you try the patch below:

now with patch:

diff --git a/arch/arm/plat-omap/usb.c b/arch/arm/plat-omap/usb.c
index d3bf17c..e9c6452 100644
--- a/arch/arm/plat-omap/usb.c
+++ b/arch/arm/plat-omap/usb.c
@@ -745,7 +745,7 @@ static inline void omap_1510_usb_init(struct
omap_usb_config *config) {}

void __init omap_usb_init(struct omap_usb_config *pdata)
{
-   if (cpu_is_omap7xx() || cpu_is_omap16xx() || cpu_is_omap24xx())
+   if (cpu_is_omap7xx() || cpu_is_omap16xx() || cpu_is_omap242x())
omap_otg_init(pdata);
else if (cpu_is_omap15xx())
omap_1510_usb_init(pdata);
-- 
balbi
--
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 v3] OMAP: Fix for bus width which improves SD card's peformance.

2010-04-05 Thread Felipe Balbi
Hi,

On Mon, Apr 05, 2010 at 06:26:16PM +0530, kishore kadiyala wrote:
> @@ -2091,9 +2091,9 @@ static int __init omap_hsmmc_probe(struct
>   mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
>MMC_CAP_WAIT_WHILE_BUSY;
> 
> - if (mmc_slot(host).wires >= 8)
> - mmc->caps |= MMC_CAP_8_BIT_DATA;
> - else if (mmc_slot(host).wires >= 4)
> + if (mmc_slot(host).wires == 8)
> + mmc->caps |= (MMC_CAP_8_BIT_DATA | MMC_CAP_4_BIT_DATA);
> + else if (mmc_slot(host).wires == 4)
>   mmc->caps |= MMC_CAP_4_BIT_DATA;

I believe it would be enough to just remove the 'else', so the code
would look like:

if (mmc_slot(host).wires >= 8)
mmc->caps |= MMC_CAP_8_BIT_DATA;
if (mmc_slot(host).wires >= 4)
mmc->caps |= MMC_CAP_4_BIT_DATA;

-- 
balbi
--
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: USB on omap2430

2010-04-05 Thread Felipe Balbi
Hi,

On Mon, Apr 05, 2010 at 07:32:06PM +0530, Viral Mehta wrote:
> >>  static void __exit isp_exit(void)
> >>  {
> >>
> >>
> >>
> >> After adding the above code, isp1301's probe is called but that fails
> >> before it does otg_set_transceiver()
> >> And I am debugging further on that path.
> 
> >ok, cool. When you get that done, please send a cleaned up
> >diff with your signed-off-by line so it can be integrated.
> 
> I continued debugging further. It fails during USB initialisation.
> More specifically, in omap_otg_init() function in arch/arm/plat-omap/usb.c
> It gives a crash dump on the first line itself
> syscon = omap_readl(OTG_SYSCON_1) & 0x;

without the crash itself, it's pretty difficult to help. It could even
be just a missing clk_enable(). Although I believe that code shouldn't
be running for 2430, only for 2420.

Can you try the patch below:

> Apart from that, can I submit the 3 patches that we discussed earlier ?
> (http://www.mail-archive.com/linux-omap@vger.kernel.org/msg25932.html)
> These will not make FS USB functional on OMAP2430 but these changes are 
> anyway necessary.

clean those patches first. And I'd like someone else with the 2430sdp
board to test it before I add my SOB.

-- 
balbi
--
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] dma: fix scope of errata i88 upto 3430ES1.0

2010-04-05 Thread Venkatraman S
>From 2799506180649cbb61d24cf2b4171425b2e1fa80 Mon Sep 17 00:00:00 2001
From: Venkatraman S 
Date: Mon, 5 Apr 2010 20:56:27 +0530
Subject: [PATCH] dma: fix scope of errata i88 upto 3430ES1.0

DMA errata for special end of block programming is applicable
only for OMAP2430 & OMAP3430 ES1.0.
This patch does the necessary checks before the workaround
is applied. Tested on 3430 SDP

Signed-off-by: Thara Gopinath 
Signed-off-by: Venkatraman S 
Reviewed-by: Shilimkar Santosh 
---
>From v1, removed the redundant omap3430() check

 arch/arm/plat-omap/dma.c |   20 
 1 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index 2ab224c..a9b480a 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -1663,14 +1663,17 @@ int omap_stop_dma_chain_transfers(int chain_id)
channels = dma_linked_lch[chain_id].linked_dmach_q;

/*
-* DMA Errata:
-* Special programming model needed to disable DMA before end of block
+* DMA Errata: i88
+* Special programming model needed
+* to disable DMA before end of block
 */
sys_cf = dma_read(OCP_SYSCONFIG);
-   l = sys_cf;
-   /* Middle mode reg set no Standby */
-   l &= ~((1 << 12)|(1 << 13));
-   dma_write(l, OCP_SYSCONFIG);
+   if (cpu_is_omap2430() || (omap_rev() == OMAP3430_REV_ES1_0)) {
+   l = sys_cf;
+   /* Middle mode reg set no Standby */
+   l &= ~((1 << 12)|(1 << 13));
+   dma_write(l, OCP_SYSCONFIG);
+   }

for (i = 0; i < dma_linked_lch[chain_id].no_of_lchs_linked; i++) {

@@ -1689,8 +1692,9 @@ int omap_stop_dma_chain_transfers(int chain_id)
/* Reset the Queue pointers */
OMAP_DMA_CHAIN_QINIT(chain_id);

-   /* Errata - put in the old value */
-   dma_write(sys_cf, OCP_SYSCONFIG);
+   /* Errata: put back the old value */
+   if (cpu_is_omap2430() || (omap_rev() == OMAP3430_REV_ES1_0))
+   dma_write(sys_cf, OCP_SYSCONFIG);

return 0;
 }
-- 
1.6.3.3
--
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] dma: fix scope of errata i88 upto 3430ES1.0

2010-04-05 Thread Venkatraman S
On Mon, Apr 5, 2010 at 7:56 PM, Shilimkar, Santosh
 wrote:
> Venkat,
>> -Original Message-
>> From: svenk...@gmail.com [mailto:svenk...@gmail.com] On Behalf Of S, 
>> Venkatraman
>> Sent: Friday, April 02, 2010 5:05 PM
>> To: linux-omap@vger.kernel.org
>> Cc: Gopinath, Thara; Tony Lindgren; Shilimkar, Santosh
>> Subject: [PATCH] dma: fix scope of errata i88 upto 3430ES1.0
>>
>> DMA errata for special end of block programming is applicable
>> only for OMAP2430 & OMAP3430 ES1.0.
>> This patch does the necessary checks before the workaround
>> is applied. Tested on 3430 SDP
>>
>> Signed-off-by: Thara Gopinath 
>> Signed-off-by: Venkatraman S 
>> ---
>>  arch/arm/plat-omap/dma.c |   22 ++
>>  1 files changed, 14 insertions(+), 8 deletions(-)
>>
>> diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
>> index 2ab224c..ef965ac 100644
>> --- a/arch/arm/plat-omap/dma.c
>> +++ b/arch/arm/plat-omap/dma.c
>> @@ -1663,14 +1663,18 @@ int omap_stop_dma_chain_transfers(int chain_id)
>>       channels = dma_linked_lch[chain_id].linked_dmach_q;
>>
>>       /*
>> -      * DMA Errata:
>> -      * Special programming model needed to disable DMA before end of block
>> +      * DMA Errata: i88
>> +      * Special programming model needed
>> +      * to disable DMA before end of block
>>        */
>>       sys_cf = dma_read(OCP_SYSCONFIG);
>> -     l = sys_cf;
>> -     /* Middle mode reg set no Standby */
>> -     l &= ~((1 << 12)|(1 << 13));
>> -     dma_write(l, OCP_SYSCONFIG);
>> +     if (cpu_is_omap2430() || (cpu_is_omap3430() &&
>> +                     omap_rev() == OMAP3430_REV_ES1_0)) {
> Since the Errata is applicable only for "omap2430" and
> "OMAP3430 ES1.0", below should be enough, isn't it ?
>
> if (cpu_is_omap2430() || omap_rev() == OMAP3430_REV_ES1_0))

Yup.. Looks simpler. I will update.

>> +             l = sys_cf;
>> +             /* Middle mode reg set no Standby */
>> +             l &= ~((1 << 12)|(1 << 13));
>> +             dma_write(l, OCP_SYSCONFIG);
>> +     }
>>
>>       for (i = 0; i < dma_linked_lch[chain_id].no_of_lchs_linked; i++) {
>>
>> @@ -1689,8 +1693,10 @@ int omap_stop_dma_chain_transfers(int chain_id)
>>       /* Reset the Queue pointers */
>>       OMAP_DMA_CHAIN_QINIT(chain_id);
>>
>> -     /* Errata - put in the old value */
>> -     dma_write(sys_cf, OCP_SYSCONFIG);
>> +     /* Errata: put back the old value */
>> +     if (cpu_is_omap2430() || (cpu_is_omap3430() &&
>> +                     omap_rev() == OMAP3430_REV_ES1_0))
> Same as above comment.
>> +             dma_write(sys_cf, OCP_SYSCONFIG);
>>
>>       return 0;
>>  }
> After fixing above two, the patch is fine with me.

Thanks, I take that as ack ? :-)
Regards,
Venkat.
--
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] MFD: TWL4030: changes for TRITON glitch fix

2010-04-05 Thread Lesly Arackal Manuel


-Original Message-
From: Kevin Hilman [mailto:khil...@deeprootsystems.com] 
Sent: Friday, March 19, 2010 5:31 AM
To: Lesly A M
Cc: linux-omap@vger.kernel.org; Nishanth Menon; David Derrick; Samuel Ortiz
Subject: Re: [PATCH] MFD: TWL4030: changes for TRITON glitch fix

Lesly A M  writes:

> Fix for TWL5030 Silicon Errata 27 & 28:
> 27 - VDD1, VDD2, may have glitches when their output value is updated.
> 28 - VDD1 and / or VDD2 DCDC clock may stop working when internal clock
> is switched from internal to external.
>
> Workaround requires the TWL DCDCs to use HFCLK instead of internal
oscillator.
> Also enable TWL watchdog before switching the osc to recover
> if the VDD1/VDD2 stop working.
>
> Fix is required for TWL5030 Silicon version less than or equal to ES1.1
> Changes are done under the macro CONFIG_TWL5030_GLITCH_FIX,
> since the IDCODE register on TWL5030 Si is not updated correctly.
>
> Updated the TWL resource settings and volt, clock setuptime.
>
> Changes taken from Nishanth Menons gaia glitch fix patch.
>
> Signed-off-by: Lesly A M 
> Cc: Nishanth Menon 
> Cc: David Derrick 
> Cc: Samuel Ortiz 
> ---

Some general comments:

Why do you need a Kconfig option for this?  

The changelog says IDCODE is not updated correctly, but the code is
using detection in SW to see if the fix is required, so that should be
default behavior.

Even if SW detection is not reliable, Kconfig is not the right
approach here.  Board code should simply set a flag or register
a hook if the fix is required.

This patch has failed my 15 minute rule (if I can't understand a patch
in 15 minutes, blame it on the changelog.)

I'm having troubles understanding the intended sequence of events
here.  Various script pointers are being passed around and overwritten
etc., and it is not terribly clear what the outcome is.  The changelog
needs some updating to clarify that.   A lot of the confusion stems
from what belongs in board files and what belongs in common code.

More comments inline below...

[Lesly] Since the GAIA version checking will note correct, Kconfig option is
added if somebody wants to disable the gai_glitch_fix code during
menuconfig.

We expect the GAIA IDCODE register will be updated properly in the next Si
version.

Do you mean to say that we can add one function ptr in
twl4030_platform_data, which can updated from the board file with the
function for glitch_fix changes.

And this can be passed to twl4030_power_init() along with script_data for
executing if GAIA Si ver less_than 1.2


> This patch has dependency on:
>   SmartReflex patch series from Thara.
>   Update TRITON power scripts from Lesly.
>
> This patch series is based off Kevin's tree origin/pm branch.
>
> This changes are tested on OMAP3430 SDP board with:
>   enable_off_mode
>   voltage_off_while_idle
>   sleep_while_idle (VDD1/VDD2 voltage scaling to 0v) enabled in
cpuidle and suspned path.
>
> Also tested for reboot and dvfs.
>
>  arch/arm/mach-omap2/board-3430sdp.c   |   40 +
>  arch/arm/mach-omap2/board-zoom-peripherals.c  |   40 +
>  arch/arm/mach-omap2/include/mach/board-sdp.h  |4 +
>  arch/arm/mach-omap2/include/mach/board-zoom.h |4 +
>  arch/arm/mach-omap2/twl4030-script.c  |   84 +++
>  arch/arm/mach-omap2/twl4030-script.h  |9 ++
>  arch/arm/mach-omap2/voltage.c |   10 +++
>  arch/arm/mach-omap2/voltage.h |4 +
>  arch/arm/plat-omap/Kconfig|7 ++
>  drivers/mfd/twl4030-power.c   |  106
+
>  10 files changed, 308 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/board-3430sdp.c
b/arch/arm/mach-omap2/board-3430sdp.c
> index 4f94b6f..d174d21 100644
> --- a/arch/arm/mach-omap2/board-3430sdp.c
> +++ b/arch/arm/mach-omap2/board-3430sdp.c
> @@ -475,6 +475,36 @@ static struct twl4030_resconfig twl4030_rconfig[] = {
>   { 0, 0},
>  };
>  
> +#ifdef CONFIG_TWL5030_GLITCH_FIX
> +static struct twl4030_resconfig twl4030_rconfig_glitchfix[] = {
> + { .resource = RES_VPLL1, .devgroup = DEV_GRP_P1 | DEV_GRP_P3,
> + .type = 3, .type2 = 1, .remap_sleep = RES_STATE_OFF },
> + { .resource = RES_VINTANA1, .devgroup = DEV_GRP_ALL, .type = 1,
> + .type2 = 2, .remap_sleep = RES_STATE_SLEEP },
> + { .resource = RES_VINTANA2, .devgroup = DEV_GRP_ALL, .type = 0,
> + .type2 = 2, .remap_sleep = RES_STATE_SLEEP },
> + { .resource = RES_VINTDIG, .devgroup = DEV_GRP_ALL, .type = 1,
> + .type2 = 2, .remap_sleep = RES_STATE_SLEEP },
> + { .resource = RES_VIO, .devgroup = DEV_GRP_ALL, .type = 2,
> + .type2 = 2, .remap_sleep = RES_STATE_SLEEP },
> + { .resource = RES_VDD1, .devgroup = DEV_GRP_P1 | DEV_GRP_P3,
> + .type = 4, .type2 = 1, .remap_sleep = RES_STATE_OFF },
> + { .resource = RES_VDD2, .devgroup = DEV_GRP_P1 | DEV_GRP_P3,
> + .type = 3, .type2 =

RE: [PATCH] dma: fix scope of errata i88 upto 3430ES1.0

2010-04-05 Thread Shilimkar, Santosh
Venkat,
> -Original Message-
> From: svenk...@gmail.com [mailto:svenk...@gmail.com] On Behalf Of S, 
> Venkatraman
> Sent: Friday, April 02, 2010 5:05 PM
> To: linux-omap@vger.kernel.org
> Cc: Gopinath, Thara; Tony Lindgren; Shilimkar, Santosh
> Subject: [PATCH] dma: fix scope of errata i88 upto 3430ES1.0
> 
> DMA errata for special end of block programming is applicable
> only for OMAP2430 & OMAP3430 ES1.0.
> This patch does the necessary checks before the workaround
> is applied. Tested on 3430 SDP
> 
> Signed-off-by: Thara Gopinath 
> Signed-off-by: Venkatraman S 
> ---
>  arch/arm/plat-omap/dma.c |   22 ++
>  1 files changed, 14 insertions(+), 8 deletions(-)
> 
> diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
> index 2ab224c..ef965ac 100644
> --- a/arch/arm/plat-omap/dma.c
> +++ b/arch/arm/plat-omap/dma.c
> @@ -1663,14 +1663,18 @@ int omap_stop_dma_chain_transfers(int chain_id)
>   channels = dma_linked_lch[chain_id].linked_dmach_q;
> 
>   /*
> -  * DMA Errata:
> -  * Special programming model needed to disable DMA before end of block
> +  * DMA Errata: i88
> +  * Special programming model needed
> +  * to disable DMA before end of block
>*/
>   sys_cf = dma_read(OCP_SYSCONFIG);
> - l = sys_cf;
> - /* Middle mode reg set no Standby */
> - l &= ~((1 << 12)|(1 << 13));
> - dma_write(l, OCP_SYSCONFIG);
> + if (cpu_is_omap2430() || (cpu_is_omap3430() &&
> + omap_rev() == OMAP3430_REV_ES1_0)) {
Since the Errata is applicable only for "omap2430" and
"OMAP3430 ES1.0", below should be enough, isn't it ?

if (cpu_is_omap2430() || omap_rev() == OMAP3430_REV_ES1_0))

> + l = sys_cf;
> + /* Middle mode reg set no Standby */
> + l &= ~((1 << 12)|(1 << 13));
> + dma_write(l, OCP_SYSCONFIG);
> + }
> 
>   for (i = 0; i < dma_linked_lch[chain_id].no_of_lchs_linked; i++) {
> 
> @@ -1689,8 +1693,10 @@ int omap_stop_dma_chain_transfers(int chain_id)
>   /* Reset the Queue pointers */
>   OMAP_DMA_CHAIN_QINIT(chain_id);
> 
> - /* Errata - put in the old value */
> - dma_write(sys_cf, OCP_SYSCONFIG);
> + /* Errata: put back the old value */
> + if (cpu_is_omap2430() || (cpu_is_omap3430() &&
> + omap_rev() == OMAP3430_REV_ES1_0))
Same as above comment.
> + dma_write(sys_cf, OCP_SYSCONFIG);
> 
>   return 0;
>  }
After fixing above two, the patch is fine with me.
> --
> 1.6.3.3
--
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: USB on omap2430

2010-04-05 Thread Viral Mehta
Hi,

>>  static void __exit isp_exit(void)
>>  {
>>
>>
>>
>> After adding the above code, isp1301's probe is called but that fails
>> before it does otg_set_transceiver()
>> And I am debugging further on that path.

>ok, cool. When you get that done, please send a cleaned up
>diff with your signed-off-by line so it can be integrated.

I continued debugging further. It fails during USB initialisation.
More specifically, in omap_otg_init() function in arch/arm/plat-omap/usb.c
It gives a crash dump on the first line itself
syscon = omap_readl(OTG_SYSCON_1) & 0x;

I feel like I need to make some board (OMAP2430) specific changes to this file.
I am not able to progress further. Any pointers will be appreciated.

Apart from that, can I submit the 3 patches that we discussed earlier ?
(http://www.mail-archive.com/linux-omap@vger.kernel.org/msg25932.html)
These will not make FS USB functional on OMAP2430 but these changes are anyway 
necessary.

--
Viral


http://www.mail-archive.com/linux-omap@vger.kernel.org/msg25932.html

This Email may contain confidential or privileged information for the intended 
recipient (s) If you are not the intended recipient, please do not use or 
disseminate the information, notify the sender and delete it from your system.

__
--
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: USB on omap2430

2010-04-05 Thread Viral Mehta


>On Fri, Mar 26, 2010 at 12:08:11PM +0100, ext Viral Mehta wrote:
>>I enabled "earlyprintk" and I have copy+pasted crashdump at the end of the 
>>email.
>>
>>It is not able to get "otg_get_transceiver()" since transceiver was never set.
>>OMAP2430 uses ISP1301 (grepped from SDP manual).
>>It is on I2C1 bus and address 0x2D if I read the manual correctly.

>isp1301 ?? there's a driver for that on drivers/usb/otg/isp1301_omap.c

Again I think I should be clear on that,
On OMAP2430, isp1301 transceiver is used for FS USB (or OHCI) only.
For HS USB (or musb) the transceiver used is Triton T2.

And currently I am debugging FS USB only. Sorry if earlier mail created 
confusion.
--
Viral

This Email may contain confidential or privileged information for the intended 
recipient (s) If you are not the intended recipient, please do not use or 
disseminate the information, notify the sender and delete it from your system.

__
--
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: [PATCHV3 1/2] OMAP3: Set MPU and IVA bypass Clock Divider

2010-04-05 Thread Premi, Sanjeev
> -Original Message-
> From: linux-omap-ow...@vger.kernel.org 
> [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of 
> Sripathy, Vishwanath
> Sent: Monday, April 05, 2010 5:23 PM
> To: Paul Walmsley
> Cc: linux-omap@vger.kernel.org
> Subject: RE: [PATCHV3 1/2] OMAP3: Set MPU and IVA bypass Clock Divider
> 
> 
> 
> > -Original Message-
> > From: Paul Walmsley [mailto:p...@pwsan.com]
> > Sent: Monday, April 05, 2010 4:44 PM
> > To: Sripathy, Vishwanath
> > Cc: linux-omap@vger.kernel.org
> > Subject: RE: [PATCHV3 1/2] OMAP3: Set MPU and IVA bypass 
> Clock Divider
> > 
> > On Mon, 5 Apr 2010, Sripathy, Vishwanath wrote:
> > 
> > > > -Original Message-
> > > > From: Paul Walmsley [mailto:p...@pwsan.com]
> > > >
> > > > On Thu, 1 Apr 2010, Vishwanath BS wrote:
> > > >
> > > > > diff --git a/arch/arm/mach-omap2/clock3xxx_data.c 
> b/arch/arm/mach-
> > > > omap2/clock3xxx_data.c
> > > > > index d5153b6..d8e57a6
> > > > > --- a/arch/arm/mach-omap2/clock3xxx_data.c
> > > > > +++ b/arch/arm/mach-omap2/clock3xxx_data.c
> > > > > @@ -3597,5 +3601,13 @@ int __init omap3xxx_clk_init(void)
> > > > >   sdrc_ick_p = clk_get(NULL, "sdrc_ick");
> > > > >   arm_fck_p = clk_get(NULL, "arm_fck");
> > > > >
> > > > > + /* Set the bypass clock dividers for DPLL1 and DPLL2 */
> > > > > + if (cpu_is_omap3630()) {
> > > > > + clk_set_rate(&dpll1_fck, 4/2);
> > > > > + clk_set_rate(&dpll2_fck, 4/2);
> > > > > + } else {
> > > > > + clk_set_rate(&dpll1_fck, 33200/4);
> > > > > + clk_set_rate(&dpll2_fck, 33200/4);
> > > > > + }
> > > >
> > > > This code is highly OPP-specific.  Why is this code needed here?
> > > > Shouldn't the code in resource34xx.c be sufficient?
> > >
> > > Code in resource34xx.c will be executed only when DVFS is 
> executed.
> > > However above code makes sure that initial values of Bypass clock
> > > dividers are good. This will ensure that even if DVFS is disabled,
> > > IVA/MPU are never overclocked when they enter bypass mode.
> > 
> > My point is that you don't know how the bootloader has 
> configured the
> > system at the point when this code executes.  You don't 
> know what voltage
> > level VDD1 and VDD2 are at; you don't know what state the 
> clock tree is
> > in.  You only know this when you change OPPs.  And the 
> selection of the
> > OPP at startup is use-case dependent.
> > 
> May be I can move this code to init_opp?

I have been trying to find a good place for the same myself. Though,
my reason is different. The default kernel boots with the OPP3 for
OMAP34xx; but when mpurate is used to set 720; I feel sometimes the
boot may fail if the voltage isn't right.

The voltage does stabilize when smartrelex reflex is initialized.

I was trying to move smartreflex above in the init sequence; after
i2c has been initialized.

Comments/ thoughts?

Best regards,
Sanjeev

>  
> > So as far as I can tell, this code shouldn't be there.  If 
> you want to do
> > something like this, then you should add some generic way 
> (e.g., a kernel
> > command line parameter) to set the VDD1 and VDD2 OPPs at boot.
> > 
> > 
> > - Paul
> --
> 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


[PATCH v3] OMAP: Fix for bus width which improves SD card's peformance.

2010-04-05 Thread kishore kadiyala
From: Kishore Kadiyala 

This patch improves low speeds for SD cards.
OMAP-MMC controller's can support maximum bus width of '8'.
when bus width is mentioned as "8" in controller data,the SD
stack will check whether bus width is "4" and if not it will
set bus width to "1" and there by degrading performance.
This patch fixes the issue and improves the performance of
SD cards.

Signed-off-by: Kishore Kadiyala 
Signed-off-by: Venkatraman S 
Acked-by: Madhusudhan Chikkature 
Tested-by: Jarkko Nikula 
---
In V3 : Updated  with Madhu's comments  and appended Tested by Nikula
In V2 : Appended Signed-off by Venkat and Ack by Madhu

 Here are my experiment numbers, on a Class 6 SDHC card:
 Read peformance is increased by 220%
 Write Performance is increased by 52%

 drivers/mmc/host/omap_hsmmc.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
 drivers/mmc/host/omap_hsmmc.c |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index 83f0aff..44e79f7 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -2091,9 +2091,9 @@ static int __init omap_hsmmc_probe(struct
mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
 MMC_CAP_WAIT_WHILE_BUSY;

-   if (mmc_slot(host).wires >= 8)
-   mmc->caps |= MMC_CAP_8_BIT_DATA;
-   else if (mmc_slot(host).wires >= 4)
+   if (mmc_slot(host).wires == 8)
+   mmc->caps |= (MMC_CAP_8_BIT_DATA | MMC_CAP_4_BIT_DATA);
+   else if (mmc_slot(host).wires == 4)
mmc->caps |= MMC_CAP_4_BIT_DATA;

if (mmc_slot(host).nonremovable)
-- 
1.6.3.3
--
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: [PATCHV3 1/2] OMAP3: Set MPU and IVA bypass Clock Divider

2010-04-05 Thread Sripathy, Vishwanath


> -Original Message-
> From: Paul Walmsley [mailto:p...@pwsan.com]
> Sent: Monday, April 05, 2010 4:44 PM
> To: Sripathy, Vishwanath
> Cc: linux-omap@vger.kernel.org
> Subject: RE: [PATCHV3 1/2] OMAP3: Set MPU and IVA bypass Clock Divider
> 
> On Mon, 5 Apr 2010, Sripathy, Vishwanath wrote:
> 
> > > -Original Message-
> > > From: Paul Walmsley [mailto:p...@pwsan.com]
> > >
> > > On Thu, 1 Apr 2010, Vishwanath BS wrote:
> > >
> > > > diff --git a/arch/arm/mach-omap2/clock3xxx_data.c b/arch/arm/mach-
> > > omap2/clock3xxx_data.c
> > > > index d5153b6..d8e57a6
> > > > --- a/arch/arm/mach-omap2/clock3xxx_data.c
> > > > +++ b/arch/arm/mach-omap2/clock3xxx_data.c
> > > > @@ -3597,5 +3601,13 @@ int __init omap3xxx_clk_init(void)
> > > > sdrc_ick_p = clk_get(NULL, "sdrc_ick");
> > > > arm_fck_p = clk_get(NULL, "arm_fck");
> > > >
> > > > +   /* Set the bypass clock dividers for DPLL1 and DPLL2 */
> > > > +   if (cpu_is_omap3630()) {
> > > > +   clk_set_rate(&dpll1_fck, 4/2);
> > > > +   clk_set_rate(&dpll2_fck, 4/2);
> > > > +   } else {
> > > > +   clk_set_rate(&dpll1_fck, 33200/4);
> > > > +   clk_set_rate(&dpll2_fck, 33200/4);
> > > > +   }
> > >
> > > This code is highly OPP-specific.  Why is this code needed here?
> > > Shouldn't the code in resource34xx.c be sufficient?
> >
> > Code in resource34xx.c will be executed only when DVFS is executed.
> > However above code makes sure that initial values of Bypass clock
> > dividers are good. This will ensure that even if DVFS is disabled,
> > IVA/MPU are never overclocked when they enter bypass mode.
> 
> My point is that you don't know how the bootloader has configured the
> system at the point when this code executes.  You don't know what voltage
> level VDD1 and VDD2 are at; you don't know what state the clock tree is
> in.  You only know this when you change OPPs.  And the selection of the
> OPP at startup is use-case dependent.
> 
May be I can move this code to init_opp?
 
> So as far as I can tell, this code shouldn't be there.  If you want to do
> something like this, then you should add some generic way (e.g., a kernel
> command line parameter) to set the VDD1 and VDD2 OPPs at boot.
> 
> 
> - Paul
--
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] omap: gpio: fix incorrect matching of IRQ_TYPE_EDGE_BOTH

2010-04-05 Thread Janusz Krzysztofik
Since IRQ_TYPE_EDGE_BOTH is defined as (IRQ_TYPE_EDGE_FALLING | 
IRQ_TYPE_EDGE_RISING), testing against it with a bitwise AND also matches 
both single-edge cases in addition to the intended both edges case. Fix it, 
replacing with a more accurate expression.

Created and tested againts linux-2.6.34-rc3.
Applicable to 2.6.33-stable as well.

Signed-off-by: Janusz Krzysztofik 
---
--- git/arch/arm/plat-omap/gpio.c.orig  2010-04-01 17:54:17.0 +0200
+++ git/arch/arm/plat-omap/gpio.c   2010-04-04 02:34:44.0 +0200
@@ -798,7 +798,7 @@ static int _set_gpio_triggering(struct g
case METHOD_MPUIO:
reg += OMAP_MPUIO_GPIO_INT_EDGE;
l = __raw_readl(reg);
-   if (trigger & IRQ_TYPE_EDGE_BOTH)
+   if ((trigger & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
bank->toggle_mask |= 1 << gpio;
if (trigger & IRQ_TYPE_EDGE_RISING)
l |= 1 << gpio;
@@ -812,7 +812,7 @@ static int _set_gpio_triggering(struct g
case METHOD_GPIO_1510:
reg += OMAP1510_GPIO_INT_CONTROL;
l = __raw_readl(reg);
-   if (trigger & IRQ_TYPE_EDGE_BOTH)
+   if ((trigger & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
bank->toggle_mask |= 1 << gpio;
if (trigger & IRQ_TYPE_EDGE_RISING)
l |= 1 << gpio;
@@ -846,7 +846,7 @@ static int _set_gpio_triggering(struct g
case METHOD_GPIO_7XX:
reg += OMAP7XX_GPIO_INT_CONTROL;
l = __raw_readl(reg);
-   if (trigger & IRQ_TYPE_EDGE_BOTH)
+   if ((trigger & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
bank->toggle_mask |= 1 << gpio;
if (trigger & IRQ_TYPE_EDGE_RISING)
l |= 1 << gpio;
--
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: SDRC : Errata 1.176 Fix - Accesses to DDR stall in SDRC after a Warm-reset

2010-04-05 Thread Sripathy, Vishwanath
Paul,
Sorry for late response. Here is the answer for some of the queries that you 
had posted.

> -Original Message-
> From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-
> ow...@vger.kernel.org] On Behalf Of Paul Walmsley
> Sent: Tuesday, January 26, 2010 11:13 AM
> To: Reddy, Teerth
> Cc: linux-omap@vger.kernel.org; t...@atomide.com; Kevin Hilman
> Subject: RE: [PATCH] OMAP3: SDRC : Errata 1.176 Fix - Accesses to DDR stall in
> SDRC after a Warm-reset
> 
> Hello Teerth,
> 
> On Mon, 25 Jan 2010, Reddy, Teerth wrote:
> 
> > > From: Paul Walmsley [mailto:p...@pwsan.com]
> > >
> > > I wonder if this also needs to make sure that all the other system
> > > initiators are mute before continuing, for the same reason cited in commit
> > > 18862cbe47e37beba98f22c088fbe6fe029df889 ?  I suppose that, for example,
> > > if an interrupt occurs on the IVA2.2 or the DMA controller tries to access
> > > the SDRC, it would hopefully only wedge those initiators and not the whole
> > > chip?
> >  Do you think we need to take care of the system initiators if we are
> > disabling all the interrupts before going for a warm reset?
> 
> Are you disabling _all_ the interrupts, or just the MPU's interrupts?
> Even if you did disable all of the system interrupts, couldn't DMA be
> ongoing from/to another system initiator, independently of interrupts?
We should disable all MPU interrupts. 
Yes there can be another initiator active in the system parallelly. However all 
the system initiators will recover from reset once warm reset is triggered.
> 
> > I think this doesn't seem to hold good here.
> 
> You may be right, but I'd like you to describe your reasoning on this
> point.
> 
> > Please let me know if you understanding is wrong.
> 
> My concerns here are twofold:
> 
> 1. If other system initiators are interacting with the SDRC during this
> process, is there a danger that the interconnect could enter a state that
> would prevent the warm reset from occurring, thus wedging the system?
This should not happen since bottle neck would be L4, only initiators accessing 
L4 are expected to be MPU and DMA (and maybe DSP) and L4 has 4 threads. We 
cannot think of a blocking scenario.
> 
> 2. When the warm-reset occurs, will it also completely reset other
> initiators that may be wedged waiting for some SDRC access to complete?
Yes

Vishwa
> 
> 
> - Paul
> --
> 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: [PATCHV3 1/2] OMAP3: Set MPU and IVA bypass Clock Divider

2010-04-05 Thread Paul Walmsley
On Mon, 5 Apr 2010, Sripathy, Vishwanath wrote:

> > -Original Message-
> > From: Paul Walmsley [mailto:p...@pwsan.com]
> > 
> > On Thu, 1 Apr 2010, Vishwanath BS wrote:
> > 
> > > diff --git a/arch/arm/mach-omap2/clock3xxx_data.c b/arch/arm/mach-
> > omap2/clock3xxx_data.c
> > > index d5153b6..d8e57a6
> > > --- a/arch/arm/mach-omap2/clock3xxx_data.c
> > > +++ b/arch/arm/mach-omap2/clock3xxx_data.c
> > > @@ -3597,5 +3601,13 @@ int __init omap3xxx_clk_init(void)
> > >   sdrc_ick_p = clk_get(NULL, "sdrc_ick");
> > >   arm_fck_p = clk_get(NULL, "arm_fck");
> > >
> > > + /* Set the bypass clock dividers for DPLL1 and DPLL2 */
> > > + if (cpu_is_omap3630()) {
> > > + clk_set_rate(&dpll1_fck, 4/2);
> > > + clk_set_rate(&dpll2_fck, 4/2);
> > > + } else {
> > > + clk_set_rate(&dpll1_fck, 33200/4);
> > > + clk_set_rate(&dpll2_fck, 33200/4);
> > > + }
> > 
> > This code is highly OPP-specific.  Why is this code needed here?
> > Shouldn't the code in resource34xx.c be sufficient?
>
> Code in resource34xx.c will be executed only when DVFS is executed. 
> However above code makes sure that initial values of Bypass clock 
> dividers are good. This will ensure that even if DVFS is disabled, 
> IVA/MPU are never overclocked when they enter bypass mode.

My point is that you don't know how the bootloader has configured the 
system at the point when this code executes.  You don't know what voltage 
level VDD1 and VDD2 are at; you don't know what state the clock tree is 
in.  You only know this when you change OPPs.  And the selection of the 
OPP at startup is use-case dependent.

So as far as I can tell, this code shouldn't be there.  If you want to do 
something like this, then you should add some generic way (e.g., a kernel 
command line parameter) to set the VDD1 and VDD2 OPPs at boot.


- Paul
--
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: [PATCHV3 1/2] OMAP3: Set MPU and IVA bypass Clock Divider

2010-04-05 Thread Sripathy, Vishwanath


> -Original Message-
> From: Paul Walmsley [mailto:p...@pwsan.com]
> Sent: Thursday, April 01, 2010 2:57 PM
> To: Sripathy, Vishwanath
> Cc: linux-omap@vger.kernel.org
> Subject: Re: [PATCHV3 1/2] OMAP3: Set MPU and IVA bypass Clock Divider
> 
> On Thu, 1 Apr 2010, Vishwanath BS wrote:
> 
> > DSP usage at VDD1 OPP1 and OPP2 with Smartreflex enabled and any MM
> > UCs running DSP codec was earlier restricted as DSP crashed.
> > The root cause is wrong DPLL1/DPLL2 Bypass clock at VDD1 OPP1 and OPP2.
> > The solution is to make sure DPLL1/DPLL2 bypass clock is always less
> > than maximum supported frequency for the specific OPP.
> >
> > Signed-off-by: Vishwanath BS 
> > ---
> >  arch/arm/mach-omap2/clock3xxx_data.c |   12 
> >  1 files changed, 12 insertions(+), 0 deletions(-)
> >
> > diff --git a/arch/arm/mach-omap2/clock3xxx_data.c b/arch/arm/mach-
> omap2/clock3xxx_data.c
> > index d5153b6..d8e57a6
> > --- a/arch/arm/mach-omap2/clock3xxx_data.c
> > +++ b/arch/arm/mach-omap2/clock3xxx_data.c
> 
> ...
> 
> > @@ -3597,5 +3601,13 @@ int __init omap3xxx_clk_init(void)
> > sdrc_ick_p = clk_get(NULL, "sdrc_ick");
> > arm_fck_p = clk_get(NULL, "arm_fck");
> >
> > +   /* Set the bypass clock dividers for DPLL1 and DPLL2 */
> > +   if (cpu_is_omap3630()) {
> > +   clk_set_rate(&dpll1_fck, 4/2);
> > +   clk_set_rate(&dpll2_fck, 4/2);
> > +   } else {
> > +   clk_set_rate(&dpll1_fck, 33200/4);
> > +   clk_set_rate(&dpll2_fck, 33200/4);
> > +   }
> 
> This code is highly OPP-specific.  Why is this code needed here?
> Shouldn't the code in resource34xx.c be sufficient?
Code in resource34xx.c will be executed only when DVFS is executed. However 
above code makes sure that initial values of Bypass clock dividers are good. 
This will ensure that even if DVFS is disabled, IVA/MPU are never overclocked 
when they enter bypass mode. 

Regards
Vishwa
> 
> 
> - Paul
--
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