Thread (4 messages) 4 messages, 3 authors, 2017-06-29

Re: Clocks used by another OS/CPU

From: Dirk Behme <hidden>
Date: 2017-06-29 12:55:14
Also in: linux-arm-kernel, linux-clk, linux-pm, linux-renesas-soc

On 29.06.2017 14:45, Geert Uytterhoeven wrote:
Hi Dirk,

On Thu, Jun 29, 2017 at 2:07 PM, Dirk Behme [off-list ref] wrote:
quoted
On 29.06.2017 13:56, Geert Uytterhoeven wrote:
quoted
On Thu, Jun 29, 2017 at 11:27 AM, Geert Uytterhoeven
[off-list ref] wrote:
quoted
CC clock, ARM, DT, PM people

TL;DR: Clocks may be in use by another CPU not running Linux, while Linux
disables them as being unused.
quoted
Of course this is not limited to clocks, but also to e.g. PM domains.
BTW, how do you prevent Linux from powering down the CR7 PM domain,
which contains the Cortex R7?
The idea is
--- a/drivers/soc/renesas/r8a7795-sysc.c
+++ b/drivers/soc/renesas/r8a7795-sysc.c
@@ -38,7 +38,8 @@ static const struct rcar_sysc_area r8a7795_areas[]
__initconst = {
         { "ca53-cpu3",  0x200, 3, R8A7795_PD_CA53_CPU3, R8A7795_PD_CA53_SCU,
           PD_CPU_NOCR },
         { "a3vp",       0x340, 0, R8A7795_PD_A3VP,      R8A7795_PD_ALWAYS_ON
},
-       { "cr7",        0x240, 0, R8A7795_PD_CR7,       R8A7795_PD_ALWAYS_ON
},
+       { "cr7",        0x240, 0, R8A7795_PD_CR7,
R8A7795_PD_ALWAYS_ON,
+         PD_CPU_NOCR },
         { "a3vc",       0x380, 0, R8A7795_PD_A3VC,      R8A7795_PD_ALWAYS_ON
},
         { "a2vc0",      0x3c0, 0, R8A7795_PD_A2VC0,     R8A7795_PD_A3VC },
         { "a2vc1",      0x3c0, 1, R8A7795_PD_A2VC1,     R8A7795_PD_A3VC },


Not finally tested, though.
Pretending the CR7 PM Domain can only be controlled through WFI/APMU only should
work.
But IMHO it is a hack, just like your solution for the CANFD clock.

Well, it seems to be the best solution recent mainline gives us and 
seems to work ;)

And for me it looks at least better than the other solution I've seen so 
far: Remove the 'cr7', 'canfd' etc lines completely from the kernel.

Best regards

Dirk
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help