* [PATCH 12/17] ARM: OMAP2+: remove misuse of IRQF_NO_SUSPEND flag
[not found] <1442850433-5903-1-git-send-email-sudeep.holla@arm.com>
@ 2015-09-21 15:47 ` Sudeep Holla
2015-10-12 20:20 ` Tony Lindgren
0 siblings, 1 reply; 6+ messages in thread
From: Sudeep Holla @ 2015-09-21 15:47 UTC (permalink / raw)
To: linux-pm, linux-kernel
Cc: Sudeep Holla, Thomas Gleixner, Rafael J. Wysocki, Tony Lindgren,
Kevin Hilman, linux-omap, linux-arm-kernel
The IRQF_NO_SUSPEND flag is used to identify the interrupts that should
be left enabled so as to allow them to work as expected during the
suspend-resume cycle, but doesn't guarantee that it will wake the system
from a suspended state, enable_irq_wake is recommended to be used for
the wakeup.
This patch removes the use of IRQF_NO_SUSPEND flags replacing it with
enable_irq_wake instead.
Cc: Tony Lindgren <tony@atomide.com>
Cc: Kevin Hilman <khilman@deeprootsystems.com>
Cc: linux-omap@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
---
arch/arm/mach-omap2/mux.c | 4 ++--
arch/arm/mach-omap2/pm34xx.c | 9 ++++-----
2 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c
index 176eef6ef338..12012bef8e63 100644
--- a/arch/arm/mach-omap2/mux.c
+++ b/arch/arm/mach-omap2/mux.c
@@ -810,13 +810,13 @@ int __init omap_mux_late_init(void)
return 0;
ret = request_irq(omap_prcm_event_to_irq("io"),
- omap_hwmod_mux_handle_irq, IRQF_SHARED | IRQF_NO_SUSPEND,
+ omap_hwmod_mux_handle_irq, IRQF_SHARED,
"hwmod_io", omap_mux_late_init);
if (ret)
pr_warn("mux: Failed to setup hwmod io irq %d\n", ret);
- return 0;
+ return enable_irq_wake(omap_prcm_event_to_irq("io"));
}
static void __init omap_mux_package_fixup(struct omap_mux *p,
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
index 87b98bf92366..4b7ac7cd633a 100644
--- a/arch/arm/mach-omap2/pm34xx.c
+++ b/arch/arm/mach-omap2/pm34xx.c
@@ -472,23 +472,22 @@ int __init omap3_pm_init(void)
prcm_setup_regs();
ret = request_irq(omap_prcm_event_to_irq("wkup"),
- _prcm_int_handle_wakeup, IRQF_NO_SUSPEND, "pm_wkup", NULL);
+ _prcm_int_handle_wakeup, 0, "pm_wkup", NULL);
if (ret) {
pr_err("pm: Failed to request pm_wkup irq\n");
goto err1;
}
+ enable_irq_wake(omap_prcm_event_to_irq("wkup"));
/* IO interrupt is shared with mux code */
ret = request_irq(omap_prcm_event_to_irq("io"),
- _prcm_int_handle_io, IRQF_SHARED | IRQF_NO_SUSPEND, "pm_io",
- omap3_pm_init);
- enable_irq(omap_prcm_event_to_irq("io"));
-
+ _prcm_int_handle_io, IRQF_SHARED, "pm_io", omap3_pm_init);
if (ret) {
pr_err("pm: Failed to request pm_io irq\n");
goto err2;
}
+ enable_irq_wake(omap_prcm_event_to_irq("io"));
ret = pwrdm_for_each(pwrdms_setup, NULL);
if (ret) {
--
1.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 12/17] ARM: OMAP2+: remove misuse of IRQF_NO_SUSPEND flag
2015-09-21 15:47 ` [PATCH 12/17] ARM: OMAP2+: remove misuse of IRQF_NO_SUSPEND flag Sudeep Holla
@ 2015-10-12 20:20 ` Tony Lindgren
2015-10-12 20:28 ` Tony Lindgren
0 siblings, 1 reply; 6+ messages in thread
From: Tony Lindgren @ 2015-10-12 20:20 UTC (permalink / raw)
To: Sudeep Holla
Cc: linux-pm, linux-kernel, Thomas Gleixner, Rafael J. Wysocki,
Kevin Hilman, linux-omap, linux-arm-kernel
* Sudeep Holla <sudeep.holla@arm.com> [150921 08:52]:
> The IRQF_NO_SUSPEND flag is used to identify the interrupts that should
> be left enabled so as to allow them to work as expected during the
> suspend-resume cycle, but doesn't guarantee that it will wake the system
> from a suspended state, enable_irq_wake is recommended to be used for
> the wakeup.
>
> This patch removes the use of IRQF_NO_SUSPEND flags replacing it with
> enable_irq_wake instead.
Applying into omap-for-v4.4/cleanup thanks.
Tony
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 12/17] ARM: OMAP2+: remove misuse of IRQF_NO_SUSPEND flag
2015-10-12 20:20 ` Tony Lindgren
@ 2015-10-12 20:28 ` Tony Lindgren
2015-10-13 10:42 ` Sudeep Holla
0 siblings, 1 reply; 6+ messages in thread
From: Tony Lindgren @ 2015-10-12 20:28 UTC (permalink / raw)
To: Sudeep Holla
Cc: linux-pm, Kevin Hilman, Rafael J. Wysocki, linux-kernel,
Thomas Gleixner, linux-omap, linux-arm-kernel
* Tony Lindgren <tony@atomide.com> [151012 13:27]:
> * Sudeep Holla <sudeep.holla@arm.com> [150921 08:52]:
> > The IRQF_NO_SUSPEND flag is used to identify the interrupts that should
> > be left enabled so as to allow them to work as expected during the
> > suspend-resume cycle, but doesn't guarantee that it will wake the system
> > from a suspended state, enable_irq_wake is recommended to be used for
> > the wakeup.
> >
> > This patch removes the use of IRQF_NO_SUSPEND flags replacing it with
> > enable_irq_wake instead.
>
> Applying into omap-for-v4.4/cleanup thanks.
Actually I don't think this does the right thing. The interrupts
in the $subject patch are in the always on powerdomain, and we really
want them to be excluded from the suspend.
So not applying without further explanations.
Regards,
Tony
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 12/17] ARM: OMAP2+: remove misuse of IRQF_NO_SUSPEND flag
2015-10-12 20:28 ` Tony Lindgren
@ 2015-10-13 10:42 ` Sudeep Holla
2015-10-13 14:53 ` Tony Lindgren
0 siblings, 1 reply; 6+ messages in thread
From: Sudeep Holla @ 2015-10-13 10:42 UTC (permalink / raw)
To: Tony Lindgren
Cc: Sudeep Holla, linux-pm, Kevin Hilman, Rafael J. Wysocki,
linux-kernel, Thomas Gleixner, linux-omap, linux-arm-kernel
On 12/10/15 21:28, Tony Lindgren wrote:
> * Tony Lindgren <tony@atomide.com> [151012 13:27]:
>> * Sudeep Holla <sudeep.holla@arm.com> [150921 08:52]:
>>> The IRQF_NO_SUSPEND flag is used to identify the interrupts that should
>>> be left enabled so as to allow them to work as expected during the
>>> suspend-resume cycle, but doesn't guarantee that it will wake the system
>>> from a suspended state, enable_irq_wake is recommended to be used for
>>> the wakeup.
>>>
>>> This patch removes the use of IRQF_NO_SUSPEND flags replacing it with
>>> enable_irq_wake instead.
>>
>> Applying into omap-for-v4.4/cleanup thanks.
>
> Actually I don't think this does the right thing. The interrupts
> in the $subject patch are in the always on powerdomain, and we really
Agreed
> want them to be excluded from the suspend.
>
OK but what's wrong with this patch. At-least the name suggest it's a
wakeup interrupt. And using IRQF_NO_SUSPEND for the wakeup interrupt is
simply wrong.
> So not applying without further explanations.
>
But I don't understand the real need for IRQF_NO_SUSPEND over wakeup APIs ?
--
Regards,
Sudeep
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 12/17] ARM: OMAP2+: remove misuse of IRQF_NO_SUSPEND flag
2015-10-13 10:42 ` Sudeep Holla
@ 2015-10-13 14:53 ` Tony Lindgren
2015-10-13 15:20 ` Sudeep Holla
0 siblings, 1 reply; 6+ messages in thread
From: Tony Lindgren @ 2015-10-13 14:53 UTC (permalink / raw)
To: Sudeep Holla
Cc: linux-pm, Kevin Hilman, Rafael J. Wysocki, linux-kernel,
Thomas Gleixner, linux-omap, linux-arm-kernel
* Sudeep Holla <sudeep.holla@arm.com> [151013 03:46]:
>
>
> On 12/10/15 21:28, Tony Lindgren wrote:
> >* Tony Lindgren <tony@atomide.com> [151012 13:27]:
> >>* Sudeep Holla <sudeep.holla@arm.com> [150921 08:52]:
> >>>The IRQF_NO_SUSPEND flag is used to identify the interrupts that should
> >>>be left enabled so as to allow them to work as expected during the
> >>>suspend-resume cycle, but doesn't guarantee that it will wake the system
> >>>from a suspended state, enable_irq_wake is recommended to be used for
> >>>the wakeup.
> >>>
> >>>This patch removes the use of IRQF_NO_SUSPEND flags replacing it with
> >>>enable_irq_wake instead.
> >>
> >>Applying into omap-for-v4.4/cleanup thanks.
> >
> >Actually I don't think this does the right thing. The interrupts
> >in the $subject patch are in the always on powerdomain, and we really
>
> Agreed
>
> >want them to be excluded from the suspend.
> >
>
> OK but what's wrong with this patch. At-least the name suggest it's a
> wakeup interrupt. And using IRQF_NO_SUSPEND for the wakeup interrupt is
> simply wrong.
Hmm so if we have a separate always on irq controller for the wake-up events
and we want to keep it always on and exclude it from any suspend related
things.. Why would we not use IRQF_NO_SUSPEND on it?
Above you say "The IRQF_NO_SUSPEND flag is used to identify the interrupts
that should be left enabled so as to allow them to work as expected during
the suspend-resume cycle..." and that's exactly what we want to do here :)
For the dedicated wake-up interrupts, we have separate registers to enable
and disable them. The $subject irq is the shared interrupt that allows
making use of the pin specific wake-up interrupts, and for those yes we
are using enable_irq_wake().
> >So not applying without further explanations.
> >
>
> But I don't understand the real need for IRQF_NO_SUSPEND over wakeup APIs ?
Because in the $subject case we just want to always keep it on and
never suspend it. It's unrelated to the wakeup APIs at least for the
omap related SoCs.
Regards,
Tony
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 12/17] ARM: OMAP2+: remove misuse of IRQF_NO_SUSPEND flag
2015-10-13 14:53 ` Tony Lindgren
@ 2015-10-13 15:20 ` Sudeep Holla
0 siblings, 0 replies; 6+ messages in thread
From: Sudeep Holla @ 2015-10-13 15:20 UTC (permalink / raw)
To: Tony Lindgren
Cc: linux-pm, Kevin Hilman, Rafael J. Wysocki, linux-kernel,
Sudeep Holla, Thomas Gleixner, linux-omap, linux-arm-kernel
On 13/10/15 15:53, Tony Lindgren wrote:
> * Sudeep Holla <sudeep.holla@arm.com> [151013 03:46]:
>>
>>
>> On 12/10/15 21:28, Tony Lindgren wrote:
>>> * Tony Lindgren <tony@atomide.com> [151012 13:27]:
>>>> * Sudeep Holla <sudeep.holla@arm.com> [150921 08:52]:
>>>>> The IRQF_NO_SUSPEND flag is used to identify the interrupts that should
>>>>> be left enabled so as to allow them to work as expected during the
>>>>> suspend-resume cycle, but doesn't guarantee that it will wake the system
>>>> >from a suspended state, enable_irq_wake is recommended to be used for
>>>>> the wakeup.
>>>>>
>>>>> This patch removes the use of IRQF_NO_SUSPEND flags replacing it with
>>>>> enable_irq_wake instead.
>>>>
>>>> Applying into omap-for-v4.4/cleanup thanks.
>>>
>>> Actually I don't think this does the right thing. The interrupts
>>> in the $subject patch are in the always on powerdomain, and we really
>>
>> Agreed
>>
>>> want them to be excluded from the suspend.
>>>
>>
>> OK but what's wrong with this patch. At-least the name suggest it's a
>> wakeup interrupt. And using IRQF_NO_SUSPEND for the wakeup interrupt is
>> simply wrong.
>
> Hmm so if we have a separate always on irq controller for the wake-up events
> and we want to keep it always on and exclude it from any suspend related
> things.. Why would we not use IRQF_NO_SUSPEND on it?
>
> Above you say "The IRQF_NO_SUSPEND flag is used to identify the interrupts
> that should be left enabled so as to allow them to work as expected during
> the suspend-resume cycle..." and that's exactly what we want to do here :)
>
OK if these interrupts meet that criteria to use IRQF_NO_SUSPEND, then
it should be fine, my earlier argument was based on the assumption that
it's just another wakeup interrupt.
> For the dedicated wake-up interrupts, we have separate registers to enable
> and disable them. The $subject irq is the shared interrupt that allows
> making use of the pin specific wake-up interrupts, and for those yes we
> are using enable_irq_wake().
>
If it's already take care, then fine. I am just hunting all the misuse
of IRQF_NO_SUSPEND flag especially as wakeup source and fixing them
>>> So not applying without further explanations.
>>>
>>
>> But I don't understand the real need for IRQF_NO_SUSPEND over wakeup APIs ?
>
> Because in the $subject case we just want to always keep it on and
> never suspend it. It's unrelated to the wakeup APIs at least for the
> omap related SoCs.
>
OK, understood now. Thanks
--
Regards,
Sudeep
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2015-10-13 15:20 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1442850433-5903-1-git-send-email-sudeep.holla@arm.com>
2015-09-21 15:47 ` [PATCH 12/17] ARM: OMAP2+: remove misuse of IRQF_NO_SUSPEND flag Sudeep Holla
2015-10-12 20:20 ` Tony Lindgren
2015-10-12 20:28 ` Tony Lindgren
2015-10-13 10:42 ` Sudeep Holla
2015-10-13 14:53 ` Tony Lindgren
2015-10-13 15:20 ` Sudeep Holla
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).