[PATCH v2 1/1] irqchip: exynos-combiner: Save IRQ enable set on suspend

Sudeep Holla sudeep.holla at arm.com
Tue Jun 16 06:11:29 PDT 2015



On 16/06/15 13:32, Tomasz Figa wrote:
> 2015-06-16 0:00 GMT+09:00 Javier Martinez Canillas <javier.martinez at collabora.co.uk>:
>> On 06/15/2015 11:01 AM, Sudeep Holla wrote:

[...]

>>>
>>> Agreed. But I would suggest also to add MASK_ON_SUSPEND and
>>> set_irq_wake also and then you can restore iff it's non-zero as
>>> irq core will take care of most of the non-wakeup sources.
>>> Because I am planning to push
>>
>> I've looking at this and a problem I found is that IIUC the
>> set_irq_wake is not propagated from the the Exynos pinctrl / GPIO
>> driver which is the combiner's external interrupt source so the
>> callback is never called. Which means that right now only the
>> state of the wakeup source IRQs can't be saved since that
>> information is not present.
>>
>> The drivers/pinctrl/samsung/pinctrl-exynos.c driver enables and
>> disables the combiner interrupts but its .irq_set_wake handler
>> only updates the wakeup source mask for the external interrupts but
>> does not call the combiner .set_irq_wake so that should be changed
>> as well.
>>
>
> As far as I'm aware of, wake-up events from pin controllers don't go
>  through GIC, but rather directly to PMU, which is a dedicated unit
> responsible for power management and not a standalone interrupt
> controller (well actually I saw a series making it a cascaded
> controller some time ago, but I'm not sure if that went in). Based on
> this, I don't think we have to call set_irq_wake on GIC. Correct me
> if I'm wrong, though.

Thanks for the details, this was my assumption when Doug confirmed that
the combiner is also powered down, either there must be some bypass or a
dedicated logic to wakeup. But I was not sure though so insisted
set_irq_wake but based on what you say it's not required.

Regards,
Sudeep



More information about the linux-arm-kernel mailing list