mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-24 07:31:41 +00:00
clk: Update docs after removal of clk-private.h
Currently Documentation/clk.txt describes an obsolete techinique to statically define struct clk objects. This capability was removed by b09d6d991025("clk: remove clk-private.h") and is no longer supported. The documentation describing the feature should be removed. Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Michael Turquette <mturquette@linaro.org> Cc: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
This commit is contained in:
parent
dbc3976d91
commit
42801ca467
1 changed files with 2 additions and 25 deletions
|
@ -230,30 +230,7 @@ clk_register(...)
|
||||||
|
|
||||||
See the basic clock types in drivers/clk/clk-*.c for examples.
|
See the basic clock types in drivers/clk/clk-*.c for examples.
|
||||||
|
|
||||||
Part 5 - static initialization of clock data
|
Part 5 - Disabling clock gating of unused clocks
|
||||||
|
|
||||||
For platforms with many clocks (often numbering into the hundreds) it
|
|
||||||
may be desirable to statically initialize some clock data. This
|
|
||||||
presents a problem since the definition of struct clk should be hidden
|
|
||||||
from everyone except for the clock core in drivers/clk/clk.c.
|
|
||||||
|
|
||||||
To get around this problem struct clk's definition is exposed in
|
|
||||||
include/linux/clk-private.h along with some macros for more easily
|
|
||||||
initializing instances of the basic clock types. These clocks must
|
|
||||||
still be initialized with the common clock framework via a call to
|
|
||||||
__clk_init.
|
|
||||||
|
|
||||||
clk-private.h must NEVER be included by code which implements struct
|
|
||||||
clk_ops callbacks, nor must it be included by any logic which pokes
|
|
||||||
around inside of struct clk at run-time. To do so is a layering
|
|
||||||
violation.
|
|
||||||
|
|
||||||
To better enforce this policy, always follow this simple rule: any
|
|
||||||
statically initialized clock data MUST be defined in a separate file
|
|
||||||
from the logic that implements its ops. Basically separate the logic
|
|
||||||
from the data and all is well.
|
|
||||||
|
|
||||||
Part 6 - Disabling clock gating of unused clocks
|
|
||||||
|
|
||||||
Sometimes during development it can be useful to be able to bypass the
|
Sometimes during development it can be useful to be able to bypass the
|
||||||
default disabling of unused clocks. For example, if drivers aren't enabling
|
default disabling of unused clocks. For example, if drivers aren't enabling
|
||||||
|
@ -264,7 +241,7 @@ are sorted out.
|
||||||
To bypass this disabling, include "clk_ignore_unused" in the bootargs to the
|
To bypass this disabling, include "clk_ignore_unused" in the bootargs to the
|
||||||
kernel.
|
kernel.
|
||||||
|
|
||||||
Part 7 - Locking
|
Part 6 - Locking
|
||||||
|
|
||||||
The common clock framework uses two global locks, the prepare lock and the
|
The common clock framework uses two global locks, the prepare lock and the
|
||||||
enable lock.
|
enable lock.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue