From: Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
To: Geert Uytterhoeven <geert-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org>
Cc: Thomas Gleixner <tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>,
Kevin Hilman <khilman-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Jason Cooper <jason-NLaQJdtUoK4Be96aLqz0jA@public.gmane.org>,
Marc Zyngier <marc.zyngier-5wv7dgnIgG8@public.gmane.org>,
Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>,
Thierry Reding
<thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Linux PM list <linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"Rafael J. Wysocki" <rjw-LthD3rsA81gm4RdzfppkhA@public.gmane.org>
Subject: Re: [RFC PATCH 1/2] genirq: Add runtime resume/suspend support for IRQ chips
Date: Tue, 17 Nov 2015 11:57:12 +0000 [thread overview]
Message-ID: <564B1618.10806@nvidia.com> (raw)
In-Reply-To: <CAMuHMdW2L1gYO7cNjeeaBTcQQdEXc9q45E1sZj-=TPwokkGx2g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
Hi Geert,
On 16/11/15 10:48, Geert Uytterhoeven wrote:
> On Mon, Nov 16, 2015 at 11:34 AM, Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> wrote:
[snip]
>>> Handling it automatically needs more bookkeeping than a simple reference
>>> count.
>>
>> So what would you suggest? Adding a pm_runtime_register_irq() API that
>> would register an IRQ with the device that you want RPM to handle? Not
>> sure if there is a better/easier way to handle this.
>
> The irqchip needs to keep track how many times request_irq() has been
> called, cfr. your suggestion above.
>
> On the other side, the system needs to keep track how many times request_irq()
> has been called for each irqchip, so it can subtract those numbers from the
> irqchip's counters during suspend of the device, and re-add them during resume.
> So we need at least a "struct device *" parameter for request_irq().
> devm_request_irq() already has that, but not all drivers use that.
Yes that would make sense. However, I am wondering if the
syscore suspend/resume operators could be used here to do something
like ...
pm_runtime_disable(dev);
if (!pm_runtime_status_suspended(dev))
chip->irq_runtime_suspend(data);
> However, I think this should be looked at into the context of "[RFD]
> Functional dependencies between devices".
> https://lwn.net/Articles/662205/
> https://lkml.org/lkml/2015/10/27/388
>
> There can be other dependencies than interrupts between devices.
> All functions using dependencies need a "struct device *" parameter to
> record information.
Yes I like the sound of that. That would be ideal. However, I am
guessing that that is a way off at the moment ...
Cheers
Jon
WARNING: multiple messages have this Message-ID (diff)
From: Jon Hunter <jonathanh@nvidia.com>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
Kevin Hilman <khilman@kernel.org>,
Jason Cooper <jason@lakedaemon.net>,
Marc Zyngier <marc.zyngier@arm.com>,
Stephen Warren <swarren@wwwdotorg.org>,
Thierry Reding <thierry.reding@gmail.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
<linux-tegra@vger.kernel.org>,
Linux PM list <linux-pm@vger.kernel.org>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>
Subject: Re: [RFC PATCH 1/2] genirq: Add runtime resume/suspend support for IRQ chips
Date: Tue, 17 Nov 2015 11:57:12 +0000 [thread overview]
Message-ID: <564B1618.10806@nvidia.com> (raw)
In-Reply-To: <CAMuHMdW2L1gYO7cNjeeaBTcQQdEXc9q45E1sZj-=TPwokkGx2g@mail.gmail.com>
Hi Geert,
On 16/11/15 10:48, Geert Uytterhoeven wrote:
> On Mon, Nov 16, 2015 at 11:34 AM, Jon Hunter <jonathanh@nvidia.com> wrote:
[snip]
>>> Handling it automatically needs more bookkeeping than a simple reference
>>> count.
>>
>> So what would you suggest? Adding a pm_runtime_register_irq() API that
>> would register an IRQ with the device that you want RPM to handle? Not
>> sure if there is a better/easier way to handle this.
>
> The irqchip needs to keep track how many times request_irq() has been
> called, cfr. your suggestion above.
>
> On the other side, the system needs to keep track how many times request_irq()
> has been called for each irqchip, so it can subtract those numbers from the
> irqchip's counters during suspend of the device, and re-add them during resume.
> So we need at least a "struct device *" parameter for request_irq().
> devm_request_irq() already has that, but not all drivers use that.
Yes that would make sense. However, I am wondering if the
syscore suspend/resume operators could be used here to do something
like ...
pm_runtime_disable(dev);
if (!pm_runtime_status_suspended(dev))
chip->irq_runtime_suspend(data);
> However, I think this should be looked at into the context of "[RFD]
> Functional dependencies between devices".
> https://lwn.net/Articles/662205/
> https://lkml.org/lkml/2015/10/27/388
>
> There can be other dependencies than interrupts between devices.
> All functions using dependencies need a "struct device *" parameter to
> record information.
Yes I like the sound of that. That would be ideal. However, I am
guessing that that is a way off at the moment ...
Cheers
Jon
next prev parent reply other threads:[~2015-11-17 11:57 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-10 14:39 [RFC PATCH 0/2] Add support for Tegra210 AGIC Jon Hunter
2015-11-10 14:39 ` [RFC PATCH 1/2] genirq: Add runtime resume/suspend support for IRQ chips Jon Hunter
[not found] ` <1447166377-19707-2-git-send-email-jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-11-10 15:26 ` Thomas Gleixner
2015-11-10 15:26 ` Thomas Gleixner
2015-11-10 15:58 ` Jon Hunter
2015-11-10 15:58 ` Jon Hunter
[not found] ` <56421421.8070807-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-11-10 16:47 ` Grygorii Strashko
2015-11-10 16:47 ` Grygorii Strashko
[not found] ` <56421FA5.4020801-l0cyMroinI0@public.gmane.org>
2015-11-10 18:07 ` Lars-Peter Clausen
2015-11-10 18:07 ` Lars-Peter Clausen
[not found] ` <56423245.1040602-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
2015-11-11 10:13 ` Jon Hunter
2015-11-11 10:13 ` Jon Hunter
[not found] ` <564314D9.9040502-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-11-11 15:41 ` Grygorii Strashko
2015-11-11 15:41 ` Grygorii Strashko
[not found] ` <564361AE.4070303-l0cyMroinI0@public.gmane.org>
2015-11-12 10:59 ` Jon Hunter
2015-11-12 10:59 ` Jon Hunter
[not found] ` <5644710D.7080108-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-11-12 13:20 ` Lars-Peter Clausen
2015-11-12 13:20 ` Lars-Peter Clausen
2015-11-12 13:29 ` Grygorii Strashko
2015-11-12 13:29 ` Grygorii Strashko
[not found] ` <5644943E.1060102-l0cyMroinI0@public.gmane.org>
2015-11-12 13:34 ` Lars-Peter Clausen
2015-11-12 13:34 ` Lars-Peter Clausen
[not found] ` <5644957D.6060202-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
2015-11-13 18:07 ` Grygorii Strashko
2015-11-13 18:07 ` Grygorii Strashko
2015-11-12 13:35 ` Jon Hunter
2015-11-12 13:35 ` Jon Hunter
2015-11-12 13:47 ` Lars-Peter Clausen
[not found] ` <5644986B.5030901-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
2015-11-12 14:02 ` Jon Hunter
2015-11-12 14:02 ` Jon Hunter
[not found] ` <56449BF0.9090408-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-11-12 14:37 ` Lars-Peter Clausen
2015-11-12 14:37 ` Lars-Peter Clausen
[not found] ` <5644A418.2020906-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
2015-11-12 15:38 ` Jon Hunter
2015-11-12 15:38 ` Jon Hunter
2015-11-12 17:04 ` Sören Brinkmann
2015-11-12 17:04 ` Sören Brinkmann
2015-11-12 23:20 ` Kevin Hilman
[not found] ` <7hio56dctz.fsf-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
2015-11-13 9:01 ` Jon Hunter
2015-11-13 9:01 ` Jon Hunter
[not found] ` <5645A6F6.6020202-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-11-13 20:01 ` Thomas Gleixner
2015-11-13 20:01 ` Thomas Gleixner
2015-11-16 9:46 ` Jon Hunter
2015-11-16 9:46 ` Jon Hunter
2015-11-16 9:49 ` Geert Uytterhoeven
[not found] ` <CAMuHMdXazgRcw=+O-w+PsZpwiW8iCwZ8MmhNSjcOoZGRP45Y6Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-11-16 10:34 ` Jon Hunter
2015-11-16 10:34 ` Jon Hunter
[not found] ` <5649B135.8050800-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-11-16 10:48 ` Geert Uytterhoeven
2015-11-16 10:48 ` Geert Uytterhoeven
[not found] ` <CAMuHMdW2L1gYO7cNjeeaBTcQQdEXc9q45E1sZj-=TPwokkGx2g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-11-17 11:57 ` Jon Hunter [this message]
2015-11-17 11:57 ` Jon Hunter
2015-11-10 14:39 ` [RFC PATCH 2/2] irqchip/gic: Add support for tegra AGIC interrupt controller Jon Hunter
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=564B1618.10806@nvidia.com \
--to=jonathanh-ddmlm1+adcrqt0dzr+alfa@public.gmane.org \
--cc=geert-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org \
--cc=jason-NLaQJdtUoK4Be96aLqz0jA@public.gmane.org \
--cc=khilman-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=marc.zyngier-5wv7dgnIgG8@public.gmane.org \
--cc=rjw-LthD3rsA81gm4RdzfppkhA@public.gmane.org \
--cc=swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org \
--cc=tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org \
--cc=thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.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.