linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: shawn.guo@linaro.org (Shawn Guo)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 00/10] Support imx6q WAIT mode with coupled cpuidle
Date: Tue, 23 Oct 2012 23:22:49 +0800	[thread overview]
Message-ID: <1351005779-30347-1-git-send-email-shawn.guo@linaro.org> (raw)

The imx6q has a low power mode named WAIT.  When all cores are in WFI,
imx6q will go into WAIT mode, and whenever there is a wakeup interrupt,
it will exit WAIT mode.  Software can configure hardware behavior during
WAIT mode, clock gating or power gating for ARM core.

The series implements ARM clock gating and power gating in WAIT mode
as two coupled cpuidle states, wait and srpg.  Though imx6q hardware
already handles sequencing, the voting provided by coupled cpuidle is
still quite useful, which will allow the system to at least get into
clock gating when one cpu wants clock gating and the other wants power
gating.

Patches 1 ~ 9 make necessary code changes to prepare for WAIT mode
enabling, and the last patch enables the feature eventually.

As WAIT mode is broken on TO1.0 silicon, the feature is only provided
for revisions later than TO1.0.

Shawn Guo (10):
  ARM: imx6q: print silicon version on boot
  ARM: imx: allow timer counter to roll over
  ARM: imx6q: select ARM and PL310 errata
  ARM: imx: initialize cpu power up counters
  ARM: imx: mask gpc interrupts initially
  ARM: imx6q: prepare imx6q_set_lpm for cpudile support
  ARM: imx6q: get v7_cpu_resume ready for cpuidle
  ARM: imx: move imx6q_cpuidle_driver into a separate file
  ARM: SMP: add function arch_send_wakeup_ipi_mask()
  ARM: imx6q: implement WAIT mode with coupled cpuidle

 arch/arm/include/asm/smp.h        |    1 +
 arch/arm/kernel/smp.c             |    5 ++
 arch/arm/mach-imx/Kconfig         |    9 ++
 arch/arm/mach-imx/Makefile        |    6 +-
 arch/arm/mach-imx/clk-imx6q.c     |   32 +++++--
 arch/arm/mach-imx/common.h        |    6 +-
 arch/arm/mach-imx/cpuidle-imx6q.c |  177 +++++++++++++++++++++++++++++++++++++
 arch/arm/mach-imx/cpuidle.c       |    3 +
 arch/arm/mach-imx/cpuidle.h       |    5 ++
 arch/arm/mach-imx/gpc.c           |   20 +++--
 arch/arm/mach-imx/headsmp.S       |   81 ++++++++++++++++-
 arch/arm/mach-imx/mach-imx6q.c    |   45 +++++++---
 arch/arm/mach-imx/platsmp.c       |   26 ++++--
 arch/arm/mach-imx/pm-imx6q.c      |    1 -
 arch/arm/mach-imx/time.c          |    6 +-
 15 files changed, 384 insertions(+), 39 deletions(-)
 create mode 100644 arch/arm/mach-imx/cpuidle-imx6q.c

-- 
1.7.9.5

             reply	other threads:[~2012-10-23 15:22 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-23 15:22 Shawn Guo [this message]
2012-10-23 15:22 ` [PATCH 01/10] ARM: imx6q: print silicon version on boot Shawn Guo
2012-11-15 18:09   ` Moseley, Drew
2012-11-16  2:23     ` Shawn Guo
2012-11-16  6:25       ` Dirk Behme
2012-11-16  6:54         ` Shawn Guo
2012-11-16  6:39       ` Shawn Guo
2012-10-23 15:22 ` [PATCH 02/10] ARM: imx: allow timer counter to roll over Shawn Guo
2012-10-23 15:22 ` [PATCH 03/10] ARM: imx6q: select ARM and PL310 errata Shawn Guo
2013-11-28 12:44   ` Dirk Behme
2013-11-29  2:10     ` Shawn Guo
2012-10-23 15:22 ` [PATCH 04/10] ARM: imx: initialize cpu power up counters Shawn Guo
2012-10-23 15:22 ` [PATCH 05/10] ARM: imx: mask gpc interrupts initially Shawn Guo
2012-10-23 15:22 ` [PATCH 06/10] ARM: imx6q: prepare imx6q_set_lpm for cpudile support Shawn Guo
2012-10-23 15:22 ` [PATCH 07/10] ARM: imx6q: get v7_cpu_resume ready for cpuidle Shawn Guo
2012-10-23 15:22 ` [PATCH 08/10] ARM: imx: move imx6q_cpuidle_driver into a separate file Shawn Guo
2012-10-23 15:22 ` [PATCH 09/10] ARM: SMP: add function arch_send_wakeup_ipi_mask() Shawn Guo
2012-10-31  3:43   ` Shawn Guo
2012-11-02 13:42     ` Shawn Guo
2012-11-06  3:18       ` Shawn Guo
2012-10-23 15:22 ` [PATCH 10/10] ARM: imx6q: implement WAIT mode with coupled cpuidle Shawn Guo
2012-10-23 16:09   ` Lee Robert-B18647
2012-10-24 14:04     ` Shawn Guo
2012-10-23 17:35   ` Lorenzo Pieralisi
2012-10-24 13:57     ` Shawn Guo
2012-10-24 15:29       ` Lorenzo Pieralisi

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=1351005779-30347-1-git-send-email-shawn.guo@linaro.org \
    --to=shawn.guo@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.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 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).