lkml.org 
[lkml]   [2021]   [Oct]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH 0/2] clk: fix the need of booking clk_ignore_unused=true on embedded devs
Date
Currently, the only way to boot a Kernel with drivers built as modules on embedded 
devices like HiKey 970 is to pass clk_ignore_unused=true as a modprobe parameter.

There are two separate issues:

1. the clk's core calls clk_disable_unused() too early. By the time this
function is called, only the builtin drivers were already probed/initialized.
Drivers built as modules will only be probed afterwards.

This cause a race condition and boot instability, as the clk core will try
to disable clocks while the drivers built as modules are still being
probed and initialized.

I suspect that the same problem used to happen at the regulator's core,
as there's a code that waits for 30 seconds before disabling unused
regulators;

2. there are some gate clocks defined at HiKey 970 that should always be on,
as otherwise the system will hang, or the filesystem I/O will stop.

Ps.:
I submitted already 3 or 4 versions of patches for HiKey 970 clock, but
they're all unreliable, due to the race conditions at the clk core due to (1).

Patch 1 solves the issue with the clk core.
Patch 2 solves the HiKey 970 specific issues.

Mauro Carvalho Chehab (2):
clk: wait for extra time before disabling unused clocks
clk: clk-hi3670: mark some clocks as CLK_IS_CRITICAL

drivers/clk/clk.c | 51 +++++++++++++++++++-----------
drivers/clk/hisilicon/clk-hi3670.c | 24 +++++++-------
2 files changed, 44 insertions(+), 31 deletions(-)

--
2.31.1


\
 
 \ /
  Last update: 2021-10-07 14:08    [W:1.099 / U:1.864 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site