linux-omap.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Santosh Shilimkar <santosh.shilimkar@ti.com>
To: Jean Pihet <jean.pihet@newoldbits.com>
Cc: linux-omap@vger.kernel.org, Kevin Hilman <khilman@ti.com>,
	linux-arm-kernel@lists.infradead.org,
	Rajendra Nayak <rnayak@ti.com>
Subject: RE: [PATCH 14/17] omap4: cpuidle: Add MPUSS RET OFF states
Date: Mon, 21 Feb 2011 15:56:57 +0530	[thread overview]
Message-ID: <6176616fe77333f80f0cfaae4fc8aff3@mail.gmail.com> (raw)
In-Reply-To: <AANLkTik-hj+-ZPnfVKLCH0h-QeyziH4H-j6EE+_QHHCU@mail.gmail.com>

> -----Original Message-----
> From: Jean Pihet [mailto:jean.pihet@newoldbits.com]
> Sent: Monday, February 21, 2011 3:49 PM
> To: Santosh Shilimkar
> Cc: linux-omap@vger.kernel.org; khilman@ti.com; linux-arm-
> kernel@lists.infradead.org; Rajendra Nayak
> Subject: Re: [PATCH 14/17] omap4: cpuidle: Add MPUSS RET OFF states
>
> Hi Santosh,
>
[...]

>
> > + * cpuidle CORE retention support.
> > + * Currently only MPUSS latency numbers are added based on
> > + * measurements done internally. The numbers for MPUSS are
> > + * not board dependent and hence set directly here instead of
> > + * passing it from board files.
> > + */
> >  static struct cpuidle_params cpuidle_params_table[] = {
> > -       /* C1 */
> > -       {1, 2, 2, 5},
> > +       /* C1 - CPU0 WFI + CPU1 ON/OFF + MPU ON   + CORE ON */
> > +       {1,     2,      2,      5},
> > +       /* C2 - CPU0 ON + CPU1 OFF + MPU ON  + CORE ON */
> > +       {1,     140,    160,    300},
> > +       /* C3 - CPU0 OFF + CPU1 OFF + MPU CSWR + CORE ON */
> > +       {1,     200,    300,    700},
> > +       /* C4 - CPU0 OFF + CPU1 OFF + MPU OFF + CORE ON */
> > +       {1,     1400,   600,    5000},
> >  };
> >
> > +DEFINE_PER_CPU(struct cpuidle_device, omap4_idle_dev);
> > +
> > +static int omap4_idle_bm_check(void)
> > +{
> > +       /* FIXME: Populate this with CORE retention support */
> > +       return 0;
> > +}
> > +
> >  /**
> >  * omap4_enter_idle - Programs OMAP4 to enter the specified state
> >  * @dev: cpuidle device
> > @@ -57,7 +92,9 @@ static struct cpuidle_params
> cpuidle_params_table[] = {
> >  static int omap4_enter_idle(struct cpuidle_device *dev,
> >                        struct cpuidle_state *state)
> >  {
> > +       struct omap4_processor_cx *cx =
> cpuidle_get_statedata(state);
> >        struct timespec ts_preidle, ts_postidle, ts_idle;
> > +       u32 cpu1_state;
> >
> >        /* Used to keep track of the total time in idle */
> >        getnstimeofday(&ts_preidle);
> > @@ -65,28 +102,74 @@ static int omap4_enter_idle(struct
> cpuidle_device *dev,
> >        local_irq_disable();
> >        local_fiq_disable();
> >
> > -       cpu_do_idle();
>
> I think the piece of code below is rather difficult to read and
> understand. Based on the patch description and the comment here
> below
> I do not see the relation with the code.
>
There is relation. The comments are as per the conditions. And
The hardware constraint is back-ground behind the conditions.

> " On OMAP4 because of hardware constraints, no low power states are
>  targeted when both CPUs are online and in SMP mode. The low power
>  states are attempted only when secondary CPU gets offline to OFF
>  through hotplug infrastructure. "
> The test below does not seem to match this comment.
>
> > +       /*
> > +        * Special hardware/software considerations:
> > +        * 1. Do only WFI for secondary CPU(non-boot - CPU1).
> > +        *    Secondary cores are taken down only via hotplug
> path.
> The comment looks contradictory. Which one is taken OFF using this
> code, which one from hotplug?
> Does this correspond to the condition '(dev->cpu)' in the test
> below?

Yes.
>
> > +        * 2. Do only a WFI as long as in SMP mode.
> Does this correspond to the condition '(num_online_cpus() > 1)' in
> the
> test below? If so it this one triggering the low power mode for
> cpu0?
yes
>
> > +        * 3. Continue to do only WFI till CPU1 hits OFF state.
> > +        *    This is necessary to honour hardware recommondation
> > +        *    of triggeing all the possible low power modes once
> CPU1 is
> > +        *    out of coherency and in OFF mode.
> Does this correspond to the condition '(cpu1_state !=
> PWRDM_POWER_OFF)' in the test below?
>
Yes

> > +        * Update dev->last_state so that governor stats reflects
> right
> > +        * data.
> > +        */
> > +       cpu1_state = pwrdm_read_pwrst(cpu1_pd);
> > +       if ((dev->cpu) || (num_online_cpus() > 1) ||
> > +                       (cpu1_state != PWRDM_POWER_OFF)) {
> Are '||' correct here?
Yes.

> Sorry if the code behaves correctly, the remarks are about
> readability especially in the comments.
>
You got all three correct. Instead of having three If's doing
same thing I have merged them and added comments above.

And you got all of them correctly.

Regards,
Santosh
--
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

  reply	other threads:[~2011-02-21 10:27 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-19 10:42 [PATCH 00/17] omap4: pm: suspend, hotplug and cpuilde support Santosh Shilimkar
2011-02-19 10:42 ` [PATCH 01/17] omap4: pm: Add omap WakeupGen module support Santosh Shilimkar
2011-03-02 21:47   ` Kevin Hilman
2011-03-03 16:04     ` Santosh Shilimkar
2011-02-19 10:42 ` [PATCH 02/17] omap4: pm: Add SAR RAM support Santosh Shilimkar
2011-03-02 21:56   ` Kevin Hilman
2011-03-03 16:08     ` Santosh Shilimkar
2011-02-19 10:42 ` [PATCH 03/17] omap4: Export scu base address Santosh Shilimkar
2011-03-02 21:58   ` Kevin Hilman
2011-03-03 16:09     ` Santosh Shilimkar
2011-02-19 10:42 ` [PATCH 04/17] omap4: pm: Add CPUx OFF mode support Santosh Shilimkar
2011-03-02 22:12   ` Kevin Hilman
2011-03-03 16:14     ` Santosh Shilimkar
2011-02-19 10:42 ` [PATCH 05/17] omap4: pm: Initialise all the clockdomains to supported states Santosh Shilimkar
2011-03-02 22:17   ` Kevin Hilman
2011-03-03 16:14     ` Santosh Shilimkar
2011-02-19 10:42 ` [PATCH 06/17] omap4: pm: Program CPU1 to hit OFF when off-lined Santosh Shilimkar
2011-02-19 10:42 ` [PATCH 07/17] omap4: pm: CPU1 wakeup workaround form Low power modes Santosh Shilimkar
2011-03-02 22:23   ` Kevin Hilman
2011-03-03 16:15     ` Santosh Shilimkar
2011-03-02 23:44   ` Kevin Hilman
2011-02-19 10:42 ` [PATCH 08/17] omap4: pm: Add GIC save/restore support Santosh Shilimkar
2011-03-02 22:29   ` Kevin Hilman
2011-03-03 16:29     ` Santosh Shilimkar
2011-03-03 17:03       ` Kevin Hilman
2011-03-04  8:39     ` Santosh Shilimkar
2011-03-04 16:11       ` Kevin Hilman
2011-03-04 16:14         ` Santosh Shilimkar
2011-02-19 10:42 ` [PATCH 09/17] omap4: pm: Add WakeupGen " Santosh Shilimkar
2011-03-02 22:34   ` Kevin Hilman
2011-02-19 10:42 ` [PATCH 10/17] omap4: pm: Add L2 cache lowpower support Santosh Shilimkar
2011-03-02 22:36   ` Kevin Hilman
2011-03-03 16:30     ` Santosh Shilimkar
2011-02-19 10:42 ` [PATCH 11/17] omap4: suspend: Add MPUSS RET and OFF support Santosh Shilimkar
2011-03-02 22:45   ` Kevin Hilman
2011-03-03 16:31     ` Santosh Shilimkar
2011-02-19 10:42 ` [PATCH 12/17] omap4: pm-debug: Add wakeup timer and debug counters Santosh Shilimkar
2011-03-02 22:51   ` Kevin Hilman
2011-03-03 16:34     ` Santosh Shilimkar
2011-03-03 17:05       ` Kevin Hilman
2011-03-04  6:26         ` Santosh Shilimkar
2011-02-19 10:42 ` [PATCH 13/17] omap4: cpuidle: Basic CPUidle support Santosh Shilimkar
2011-03-02 22:55   ` Kevin Hilman
2011-02-19 10:42 ` [PATCH 14/17] omap4: cpuidle: Add MPUSS RET OFF states Santosh Shilimkar
2011-02-21 10:19   ` Jean Pihet
2011-02-21 10:26     ` Santosh Shilimkar [this message]
2011-02-21 14:01       ` Santosh Shilimkar
2011-03-02 23:32   ` Kevin Hilman
2011-02-19 10:42 ` [PATCH 15/17] omap4: cpuidle: Switch to gptimer from twd in deeper C-states Santosh Shilimkar
2011-02-19 10:42 ` [PATCH 16/17] omap4: cpuidle: Allow debugfs control through enable_off_mode Santosh Shilimkar
2011-03-02 23:43   ` Kevin Hilman
2011-02-19 10:42 ` [PATCH 17/17] omap4: Remove un-used do_wfi() macro Santosh Shilimkar
2011-03-02 23:46 ` [PATCH 00/17] omap4: pm: suspend, hotplug and cpuilde support Kevin Hilman
2011-03-03  7:20   ` Santosh Shilimkar
2011-03-04 17:20   ` Santosh Shilimkar

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=6176616fe77333f80f0cfaae4fc8aff3@mail.gmail.com \
    --to=santosh.shilimkar@ti.com \
    --cc=jean.pihet@newoldbits.com \
    --cc=khilman@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=rnayak@ti.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).