RE: [PATCH 0/8] OMAP3: PM: Open Switch Retention support in the cpuidle thread.

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

 



On Thu, 21 Jan 2010, Gopinath, Thara wrote:

> >>-----Original Message-----
> >>From: Paul Walmsley [mailto:paul@xxxxxxxxx]
> >>Sent: Thursday, January 21, 2010 11:54 AM
> >>To: Gopinath, Thara
> >>Cc: linux-omap@xxxxxxxxxxxxxxx; khilman@xxxxxxxxxxxxxxxxxxx
> >>Subject: Re: [PATCH 0/8] OMAP3: PM: Open Switch Retention support in the cpuidle thread.
> >>
> >>I'd like to merge the powerdomain changes separately from the other
> >>changes, most of which should probably go through Kevin's PM branch.
> >>
> >>After you revise your patches based on the comments, can you take your
> >>patches 3, 4, and the powerdomain portions of patch 7 and post those in a
> >>separate series as an OSWR preparatory powerdomain patch set?  That will
> >>make it easier for both Kevin and I to handle.
> 
> When you say patch 7, I believe you are mentioning the book keeping part 
> for OSWR where logic_ret_off and mem_ret_off counters are added.

Yes, to be specific, I'm talking about:

diff --git a/arch/arm/mach-omap2/powerdomain.c b/arch/arm/mach-omap2/powerdomain.c
index 06bf290..ef9f1bb 100644
--- a/arch/arm/mach-omap2/powerdomain.c
+++ b/arch/arm/mach-omap2/powerdomain.c
@@ -126,6 +126,16 @@ static int _pwrdm_state_switch(struct powerdomain 
*pwrdm, int flag)
                prev = pwrdm_read_prev_pwrst(pwrdm);
                if (pwrdm->state != prev)
                        pwrdm->state_counter[prev]++;
+               if (prev == PWRDM_POWER_RET) {
+                       if ((pwrdm->pwrsts_logic_ret == PWRSTS_OFF_RET) &&
+                                       (pwrdm_read_prev_logic_pwrst(pwrdm) ==
+                                        PWRDM_POWER_OFF))
+                               pwrdm->ret_logic_off_counter++;
+                       if ((pwrdm->pwrsts_mem_ret[0] == PWRSTS_OFF_RET) &&
+                                       (pwrdm_read_prev_mem_pwrst(pwrdm, 0) ==
+                                       PWRDM_POWER_OFF))
+                               pwrdm->ret_mem_off_counter++;
+               }
                break;
        default:
                return -EINVAL;
@@ -161,6 +171,9 @@ static __init void _pwrdm_setup(struct powerdomain *pwrdm)
        for (i = 0; i < PWRDM_MAX_PWRSTS; i++)
                pwrdm->state_counter[i] = 0;
 
+       pwrdm->ret_logic_off_counter = 0;
+       pwrdm->ret_mem_off_counter = 0;
+
        pwrdm_wait_transition(pwrdm);
        pwrdm->state = pwrdm_read_pwrst(pwrdm);
        pwrdm->state_counter[pwrdm->state] = 1;


and

diff --git a/arch/arm/plat-omap/include/plat/powerdomain.h b/arch/arm/plat-omap/include/plat/powerdomain.h
index 7576559..405ccd6 100644
--- a/arch/arm/plat-omap/include/plat/powerdomain.h
+++ b/arch/arm/plat-omap/include/plat/powerdomain.h
@@ -124,6 +124,8 @@ struct powerdomain {
 
        int state;
        unsigned state_counter[PWRDM_MAX_PWRSTS];
+       unsigned ret_logic_off_counter;
+       unsigned ret_mem_off_counter;
 
 #ifdef CONFIG_PM_DEBUG
        s64 timer;

> I can separate this out and post these three patches separately. Do let 
> me know should I base these on linux-omap master branch or Kevin's pm 
> tree.

l-o master, please.

> >>Note: the powerdomain code will need to be edited somewhat to bring it
> >>up-to-date with the latest OMAP4 changes in the for_2.6.34 branch, which
> >>is where your patches will go.  I'm happy to do this, but after I do it,
> >>will you be able to test the updated series to ensure that this process
> >>didn't break anything?
> 
> Thanks for this and sure I can test the updated series!

Great.

> But I do not understand what OMAP4 specific support has to be added for 
> these three patches. These three patches will be considerably free of 
> OMAP2/OMAP3/OMAP4 specific stuff. Or are you talking of rebasing on 
> 2.6.34 kernel?

OMAP4 has an additional memory bank.  Also the names of the bitfields have 
been abstracted out, e.g., OMAP_MEM0_RETSTATE_MASK instead of 
OMAP3430_SHAREDL1CACHEFLATRETSTATE.   You can check 'for_2.6.34' branch at 
git://git.pwsan.com/linux-2.6 to see what it looks like.


- Paul

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

[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