Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1327807 > unrolled thread

Re: [RFC PATCH V2 3/8] genirq: Add runtime power management support for IRQ chips

Started byLinus Walleij <linus.walleij@linaro.org>
First post2016-02-05 15:40 +0100
Last post2016-02-05 15:40 +0100
Articles 1 — 1 participant

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [RFC PATCH V2 3/8] genirq: Add runtime power management support  for IRQ chips Linus Walleij <linus.walleij@linaro.org> - 2016-02-05 15:40 +0100

#1327807 — Re: [RFC PATCH V2 3/8] genirq: Add runtime power management support for IRQ chips

FromLinus Walleij <linus.walleij@linaro.org>
Date2016-02-05 15:40 +0100
SubjectRe: [RFC PATCH V2 3/8] genirq: Add runtime power management support for IRQ chips
Message-ID<qYPIf-1t6-31@gated-at.bofh.it>
On Thu, Jan 21, 2016 at 8:51 PM, Thomas Gleixner <tglx@linutronix.de> wrote:

> So as long as an interrupt handler is installed, there is no sane way that we
> can decide to power down the irq chip, unless that chip has the magic ability
> to relay incoming interrupts while powered down :)

Actually isn't that exactly what almost every SoC that supports
deepsleep does?

They power off the primary interrupt controller and arm the padring
of the SoC with an asynchronous edge detector to wake up as soon
as something happens on a few select lines, like a keypad button
or whatnot.

The asynchronous edge detector is handled by the ROM or some
power-management microcontroller, which wakes up the system
and restores power to the CPU and primary interrupt controller.
That is the magic ability right there.

Of course as the wakeup signal may be deasserted at the
point the system actually comes back up, so the magic ROM
power management unit then needs to latch
any latent IRQs from some shadow register to the primary interrupt
controller, which as far as I've seen is done by out-of-tree hacks
similar to the irq_[get/set]_irqchip_state() implemented
by Marc Zyngier, albeit for virtualization.

I've not seen it on any non-primary interrupt controller though.

Yours,
Linus Walleij

[toc] | [standalone]


Back to top | Article view | linux.kernel


csiph-web