From: John Crispin <john@phrozen.org>
To: linux-mips@linux-mips.org, Florian Fainelli <florian@openwrt.org>
Subject: Re: [PATCH] MIPS: add proper set_mode() to cevt-r4k
Date: Thu, 01 Aug 2013 08:15:50 +0200 [thread overview]
Message-ID: <51F9FD16.4030706@phrozen.org> (raw)
In-Reply-To: <1687511.8JA8mPPmNW@lenovo>
On 31/07/13 21:26, Florian Fainelli wrote:
> Le mercredi 31 juillet 2013 12:22:15 David Daney a écrit :
>> On 07/29/2013 04:14 AM, Florian Fainelli wrote:
>>> 2013/7/29 John Crispin<john@phrozen.org>:
>> [...]
>>
>>>>> It looks to me like you are moving the irq setup later just to ensure
>>>>> that your ralink clockevent device has been registered before and has
>>>>> set cp0_timer_irq_installed when the set_mode() r4k clockevent device
>>>>> runs, such that it won't register the same IRQ that your platforms
>>>>> uses. If that it the case, cannot you just ensure that you run your
>>>>> cevt device registration before mips_clockevent_init() is called?
>>>>
>>>> i dont like relying on the order in which the modules get loaded.
>>>
>>> plat_time_init() runs before mips_clockevent_init() and the ordering
>>> is explicit, would not that work for what you are trying to do?
>>>
>>>> the actual problem is not the irq sharing but that the cevt-r4k registers
>>>> the irq when the cevt is registered and not when it is activated. i
>>>> believe
>>>> that the patch fixes this problem
>>>
>>> Your patch certainly does what you say it does, but that is kind of an
>>> abuse of the set_mode() callback.
>>
>> I might as add my $0.02...
>>
>> There are many other clockevent drivers that do this type of thing
>> aren't there? The clockevent framework uses this to
>> install/remove/switch drivers, so why should cevt-r4k not be made to
>> work like this?
>
> Whatever works for you. I still would like to understand why plat_time_init()
> is not suitable for John's specific use case.
Hi Florian,
the reason is that fixing it in plat_time_init() works around the real
problem. the double request of the irq is a symptom of the actual
problem, which is, that the cevt-r4k sets up the timer during init and
not during setup. additionally, plat_time_init is used to probe the cevt
drivers from OF already. currently the mips code just assumes that on a
r4k we always have and want to run the cevt-r4k. this assumption is
wrong and can quickly be fixed by making the cevt-r4k use the correct api.
also fixing it this way allows the user to control the clocksource and
change it at runtime via sysfs, a feature als not working currently on
r4k as the cevt driver did not implement the set_mode() handler
correctly. to be quite honest, i cannot think of a single way in which
this can be fixed cleanly in the ralink plat_time_init() without using
some weird heuristic. also if i fix this inside ralink plat_time_init()
it is fixed only on ralink SoC and not on any other platform.
John
next prev parent reply other threads:[~2013-08-01 6:22 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-29 9:55 [PATCH] MIPS: add proper set_mode() to cevt-r4k John Crispin
2013-07-29 10:40 ` Florian Fainelli
2013-07-29 10:52 ` John Crispin
2013-07-29 11:14 ` Florian Fainelli
2013-07-29 11:14 ` John Crispin
2013-07-30 10:01 ` Florian Fainelli
2013-07-31 19:22 ` David Daney
2013-07-31 19:26 ` Florian Fainelli
2013-08-01 6:15 ` John Crispin [this message]
2013-08-01 14:13 ` Ralf Baechle
2013-08-01 14:16 ` John Crispin
2013-07-29 14:53 ` Maciej W. Rozycki
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=51F9FD16.4030706@phrozen.org \
--to=john@phrozen.org \
--cc=florian@openwrt.org \
--cc=linux-mips@linux-mips.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.