From: "Rajendra Nayak" <rnayak@ti.com>
To: "'\"Högander\" Jouni'" <jouni.hogander@nokia.com>
Cc: linux-omap@vger.kernel.org
Subject: RE: [PATCH 00/11] OMAP3 CPUidle patches
Date: Thu, 3 Jul 2008 15:50:19 +0530 [thread overview]
Message-ID: <005101c8dcf6$658fd650$68bf18ac@ent.ti.com> (raw)
In-Reply-To: <87hcb7qzkp.fsf@trdhcp146196.ntc.nokia.com>
> -----Original Message-----
> From: "Högander" Jouni [mailto:jouni.hogander@nokia.com]
> Sent: Thursday, July 03, 2008 11:28 AM
> To: ext Rajendra Nayak
> Cc: linux-omap@vger.kernel.org
> Subject: Re: [PATCH 00/11] OMAP3 CPUidle patches
>
> "ext Rajendra Nayak" <rnayak@ti.com> writes:
>
> > Hi,
> >
> > The following patches define and enable all of the below
> mentioned C states for OMAP3.
> > These are tested with a minimal kernel config on
> OMAP3430sdp as most drivers today don't have context
> save/restore in place and
> > some even lack aggresive clock handling.
> > These apply on top of the workaround patch set submitted by Jouni.
> > ([PATCH 0/6] 34XX: PM: Workarounds to get omap3 to retention 4th.)
> >
> > The following is neccessay even with a minimal config to
> achieve OFF.
> > $ echo 1 > /sys/power/sleep_while_idle
> > $ echo 1 > /sys/power/clocks_off_while_idle
> >
> > The following C states are defined
> > C0 - System executing code
> > C1 - MPU WFI + Core active
> > C2 - MPU CSWR + Core active
> > C3 - MPU OFF + Core active
> > C4 - MPU CSWR + Core CSWR
> > C5 - MPU OFF + Core CSWR
> > C6 - MPU OFF + Core OFF
> >
> > regards,
> > Rajendra
>
> One more general comment on these patches as I looked at the code
> after applying them.
>
> Most of the code in omap3_enter_idle in cpuidle34xx.c could be shared
> between suspend/pm_idle/cpuidle. I would do these changes to share
> this code between these three things:
>
> 1. read mpu_pd pwrst, neon_pd pwrst, core_pd pwrst values in
> omap_sram_idle in pm34xx.c
>
> 2. Move all the logic from omap3_enter_idle to omap_sram_idle. Use
> values read in previous step to decide wether ctx savings/restores
> are needed, what should be written to neon_pd next_pwrst, wether
> omap2_gpio_prepare_for/resume_after_retention is needed, wether to
> disable/enable serial and gpio clocks.
>
> Basically what is left into omap3_enter_idle is writing next pwrsts
> and cpuidle related stuff, something like this:
>
> static int omap3_enter_idle(struct cpuidle_device *dev,
> struct cpuidle_state *state)
> {
> struct omap3_processor_cx *cx = cpuidle_get_statedata(state);
> struct timespec ts_preidle, ts_postidle, ts_idle;
> struct powerdomain *mpu_pd, *core_pd;
>
> current_cx_state = *cx;
>
> if (cx->type == OMAP3_STATE_C0) {
> /* Do nothing for C0, not even a wfi */
> return 0;
> }
>
> local_irq_disable();
> local_fiq_disable();
>
> /* Used to keep track of the total time in idle */
> getnstimeofday(&ts_preidle);
>
> if (cx->type > OMAP3_STATE_C1)
> sched_clock_idle_sleep_event(); /* about to
> enter deep idle */
>
> mpu_pd = pwrdm_lookup("mpu_pwrdm");
> core_pd = pwrdm_lookup("core_pwrdm");
>
> pwrdm_set_next_pwrst(mpu_pd, cx->mpu_state);
> pwrdm_set_next_pwrst(core_pd, cx->core_state);
>
> if (omap_irq_pending())
> goto return_sleep_time;
>
> /* Execute ARM wfi */
> omap_sram_idle();
>
> return_sleep_time:
> getnstimeofday(&ts_postidle);
> ts_idle = timespec_sub(ts_postidle, ts_preidle);
>
> if (cx->type > OMAP3_STATE_C1)
> sched_clock_idle_wakeup_event(timespec_to_ns(&ts_idle));
>
> local_irq_enable();
> local_fiq_disable();
>
> return (u32)timespec_to_ns(&ts_idle)/1000;
> }
>
> If this is not done, we need to copy paste code from omap3_enter_idle
> into suspend code anyway if we want to use offmode in it. It would be
> more nice to have one funcion with this logic shared between
> suspend/pm_idle/cpuidle rather than two or even three copies of it.
Yes, all this looks good to me.
>
> --
> Jouni Högander
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2008-07-03 12:00 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-01 14:16 [PATCH 00/11] OMAP3 CPUidle patches Rajendra Nayak
2008-07-02 13:11 ` Peter 'p2' De Schrijver
2008-07-02 13:37 ` Rajendra Nayak
2008-07-02 15:42 ` Peter 'p2' De Schrijver
2008-07-03 8:39 ` Rajendra Nayak
2008-07-03 12:44 ` Peter 'p2' De Schrijver
2008-07-04 7:26 ` Högander Jouni
2008-07-04 9:32 ` Högander Jouni
2008-07-04 9:45 ` Koen Kooi
2008-07-04 9:45 ` Rajendra Nayak
2008-07-04 9:55 ` Högander Jouni
2008-07-04 11:08 ` Högander Jouni
2008-07-07 9:38 ` Kalle Jokiniemi
2008-07-07 9:56 ` Högander Jouni
2008-07-07 13:58 ` Premi, Sanjeev
2008-07-07 22:25 ` Woodruff, Richard
2008-07-08 6:15 ` Högander Jouni
2008-07-08 12:11 ` Woodruff, Richard
2008-07-08 13:41 ` Högander Jouni
2008-07-08 13:52 ` Woodruff, Richard
2008-07-09 6:48 ` Högander Jouni
2008-07-09 16:31 ` Woodruff, Richard
2008-07-04 11:05 ` Peter 'p2' De Schrijver
2008-07-04 11:39 ` Peter 'p2' De Schrijver
2008-07-03 5:57 ` Högander Jouni
2008-07-03 10:20 ` Rajendra Nayak [this message]
2008-07-15 13:20 ` Rajendra Nayak
2008-07-18 13:18 ` [PATCH 00/11] OMAP3 CPUidle patches - ver 2 Rajendra Nayak
[not found] ` <002f01c8f7c5$0790fea0$LocalHost@wipultra1382>
2008-08-06 13:12 ` Rajendra Nayak
2008-08-07 9:54 ` Kalle Jokiniemi
2008-08-12 12:40 ` Högander Jouni
2008-08-13 5:57 ` Rajendra Nayak
2008-08-13 6:06 ` Rajendra Nayak
2008-08-13 6:55 ` Högander Jouni
2008-08-13 12:35 ` Woodruff, Richard
2008-08-13 13:12 ` Högander Jouni
2008-08-14 5:25 ` Rajendra Nayak
2008-08-19 19:08 ` Paul Walmsley
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='005101c8dcf6$658fd650$68bf18ac@ent.ti.com' \
--to=rnayak@ti.com \
--cc=jouni.hogander@nokia.com \
--cc=linux-omap@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.