Thread (10 messages) 10 messages, 2 authors, 2017-07-05

[RESEND PATCH v4] clk: stm32h7: Add stm32h743 clock driver

From: Gabriel FERNANDEZ <hidden>
Date: 2017-07-05 09:35:33
Also in: linux-clk, linux-devicetree, lkml


On 06/30/2017 08:54 PM, Stephen Boyd wrote:
On 06/30, Gabriel FERNANDEZ wrote:
quoted
On 06/30/2017 02:20 AM, Stephen Boyd wrote:
quoted
On 06/29, Gabriel FERNANDEZ wrote:
quoted
On 06/28/2017 05:59 PM, Stephen Boyd wrote:
quoted
On 06/27, Gabriel FERNANDEZ wrote:
quoted
On 06/22/2017 12:07 AM, Stephen Boyd wrote:
quoted
readl_poll_timeout?
if i use readl_poll_timeout (wich use 'ktime_get()') it can be
operational only after the selection of clocksource ? (device_initcall).
And then if a driver turn on a clock before, it could blocked the linux
console ?
Ok. I wonder if we could add some sort of starting check to
readl_poll_timeout() that tests system_state for booting vs.
scheduling? That should be sufficient to handle this case?
Oops i think i understood my problem...
i used readl_poll_timeout in atomic context.
I have to move my code in the .prepare ops.

If you are ok with that i will send a v5
There's readl_poll_timeout_atomic() for those modes.
yes it's exactly the test i made (use 'readl_poll_timeout()_atomic' in
.enable ops) but i'm blocked.

if i do the same in .prepare ops with 'readl_poll_timeout()' it's ok.
I'm still confused. readl_poll_timeout_atomic() uses ktime_get(),
and so does readl_poll_timeout(), so how does moving to the
prepare op fix the problem? What's the actual problem?
Yes both use ktime_get().

The issue concerns internal/external oscillator clocks (time 
stabilization could be long) and
if a driver wants to enable one these clocks before device_initcall().

By default the clocksource is the jiffies until the end of the boot 
(fs_initcall)
Then after, the best clocksource is selected (arm_system_timer or stm32 
timer, etc...)
There is no problem after because the counter is a hardware register.

But the jiffies counter is incremented by interruption and enable op
does not allow to be interrupted. (we can with prepare op).
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help