Re: [PATCH] clockevents/drivers/cs5535: Un-break driver with 'set-state' interface

From: David Gstir
Date: Wed Jan 04 2017 - 09:24:03 EST


Hi Daniel,

> On 04.01.2017, at 15:19, Daniel Lezcano <daniel.lezcano@xxxxxxxxxx> wrote:
>
> On 02/01/2017 10:34, Viresh Kumar wrote:
>
> [ ... ]
>
>>> --- a/drivers/clocksource/cs5535-clockevt.c
>>> +++ b/drivers/clocksource/cs5535-clockevt.c
>>> @@ -117,7 +117,8 @@ static irqreturn_t mfgpt_tick(int irq, void *dev_id)
>>> /* Turn off the clock (and clear the event) */
>>> disable_timer(cs5535_event_clock);
>>>
>>> - if (clockevent_state_shutdown(&cs5535_clockevent))
>>> + if (clockevent_state_shutdown(&cs5535_clockevent) ||
>>> + clockevent_state_detached(&cs5535_clockevent))
>>> return IRQ_HANDLED;
>>>
>>> /* Clear the counter */
>>
>> Sorry for breaking it, but it looks we have unearthed a bug because of
>> my patch.
>>
>> I wouldn't enable the IRQ unless the clockevents core has asked for
>> it, i.e. by calling set_state_periodic() or set_state_oneshot().
>>
>> The driver is currently enabling the IRQ from its init code and that's
>> where the problem is IMHO.
>
> Hi David,
>
> can you look at this ?

Yes, sure! Iâll get back to you with a new patch.

- David