RE: Integration branch base switchover to Tony's omap-for-linus branch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Rajendra,

> -----Original Message-----
> From: Rajendra Nayak [mailto:rnayak@xxxxxx]
> Sent: Friday, March 04, 2011 7:38 PM
> To: Paul Walmsley
> Cc: Santosh Shilimkar; linux-omap@xxxxxxxxxxxxxxx
> Subject: Re: Integration branch base switchover to Tony's omap-for-
> linus branch
>
> Hi Paul,
>
> On Thursday 03 March 2011 06:00 PM, Rajendra Nayak wrote:
> > Hi Paul,
> >
> > On Wednesday 02 March 2011 03:03 AM, Paul Walmsley wrote:
> >> Hi Santosh
> >>
> >> On Tue, 1 Mar 2011, Santosh Shilimkar wrote:
> >>
> >>>> -----Original Message-----
> >>>> From: linux-omap-owner@xxxxxxxxxxxxxxx [mailto:linux-omap-
> >>>> owner@xxxxxxxxxxxxxxx] On Behalf Of Paul Walmsley
> >>>> Sent: Saturday, February 26, 2011 5:56 AM
> >>>> To: linux-omap@xxxxxxxxxxxxxxx
> >>>> Subject: Integration branch base switchover to Tony's omap-for-
> linus
> >>>> branch
> >>>>
> >>>>
> >>>> Hi,
> >>>>
> >>>> this is a quick note for anyone using the integration-2.6.39
> branch
> >>>> on
> >>>> git://git.pwsan.com/linux-2.6: I've switched the base over from
> >>>> mainline to Tony's omap-for-linus branch.
> >>>>
> >>>
> >>> I observed an issue when integrated omap-for-linus + your branch
> >>> + OMAP4 PM patches. After debugging this with Rajendra, it seems
> >>> that issue is seen only when static dependency between MPU
> >>> and L4PER clock-domain is cleared _and_ L4_PER clock-domain
> >>> is programmed to HW_SUP.
> >>>
> >>> Since the issue is observed with only I2C IP block from L4_PER
> >>> and none of the other modules are affected, the suspect is I2C
> >>> IP block. The hardware team is investigating this issue.
> >>>
> >>> So for now, to avoid this abort, there are two options
> >>> - Remove HW_SUP from L4_PER CD
> >>> - Keep MPU<->L4_PER static dependency.
> >>>
> >>> We tried both the options and they seems to work.
> >>> Which one you prefer till we have hardware root-cause
> >>> of this issue?
> >>
> >> Between the two alternatives you suggested, I'd prefer #1; but
> could you
> >> try forcing the I2C blocks to use software idle control instead
> and
> >> see if
> >> that fixes it without the need to change the clockdomains file?
> Sample
> >> patch follows. If that fixes it, it might be useful to know
> whether it is
> >> the HWMOD_SWSUP_SIDLE flag or HWMOD_NO_OCP_AUTOIDLE flag or both
> that is
> >> required.
> >
> > Yes, it does seem to fix the issue also, and its the
> HWMOD_SWSUP_SIDLE
> > that apparently makes a difference. HWMOD_NO_OCP_AUTOIDLE alone
> does
> > not fix it.
>
> Some more debugging by the Hardware team and analyzing
> the register dumps showed that the I2C_WE register of the i2c
> modules needs to be programmed correctly for i2c wakeups to
> function as expected.
> This turned out to be the root cause for the i2c issues observed
> by clearing the staticdeps and a patch has been posted
> to address this...
> http://marc.info/?l=linux-omap&m=129924557219813&w=2
>
> >
> > Also some more testing showed up a lockup in suspend on OMAP4
> which I
> > could narrow down to a similar case with GPT1. Either keeping the
> > staticdep between MPU and L4_WKUP _or_ forcing GPT1 to use
> software
> > idle control seems to help.
>
> This however is still not rootcaused and is not the same as the
> issue
> seen with i2c as the WE for GPT1 is already programmed for enabling
> wakeup.
>
> The one way to fix this for now is to put GPT1 block in software
> controlled idle as was done by your test patch for i2c.
>
I tried all the floating patches for static dependency. It did
worked when CPU RET was tried but with MPU OFF I see the hang.

Below is the global hack I have which works as expected for
all cases.

---
>From cd14eb718a7e909e32a5d1916517ae76312f0557 Mon Sep 17 00:00:00 2001
From: Santosh Shilimkar <santosh.shilimkar@xxxxxx>
Date: Thu, 3 Mar 2011 15:10:07 +0530
Subject: [PATCH] omap4: static-deps: Temporary hack to disable mpu
wakupdeps

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxx>
---
 arch/arm/mach-omap2/clockdomains44xx_data.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/clockdomains44xx_data.c
b/arch/arm/mach-omap2/clockdomains44xx_data.c
index a607ec1..3c89bcc 100644
--- a/arch/arm/mach-omap2/clockdomains44xx_data.c
+++ b/arch/arm/mach-omap2/clockdomains44xx_data.c
@@ -281,6 +281,7 @@ static struct clkdm_dep l4_secure_wkup_sleep_deps[] =
{
 };

 static struct clkdm_dep mpuss_wkup_sleep_deps[] = {
+#if 0
 	{
 		.clkdm_name	 = "abe_clkdm",
 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
@@ -337,6 +338,7 @@ static struct clkdm_dep mpuss_wkup_sleep_deps[] = {
 		.clkdm_name	 = "tesla_clkdm",
 		.omap_chip	 = OMAP_CHIP_INIT(CHIP_IS_OMAP4430)
 	},
+#endif
 	{ NULL },
 };

-- 
1.6.0.4

Attachment: 0001-omap4-static-deps-Temporary-hack-to-disable-mpu-wa.patch
Description: Binary data


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux