Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
57386798
Commit
57386798
authored
Jan 24, 2015
by
Michael Turquette
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'clk-has-parent' into clk-next
parents
ec6415dc
4e88f3de
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
47 additions
and
0 deletions
+47
-0
drivers/clk/clk.c
drivers/clk/clk.c
+30
-0
include/linux/clk.h
include/linux/clk.h
+17
-0
No files found.
drivers/clk/clk.c
View file @
57386798
...
@@ -1651,6 +1651,36 @@ void __clk_reparent(struct clk *clk, struct clk *new_parent)
...
@@ -1651,6 +1651,36 @@ void __clk_reparent(struct clk *clk, struct clk *new_parent)
__clk_recalc_rates
(
clk
,
POST_RATE_CHANGE
);
__clk_recalc_rates
(
clk
,
POST_RATE_CHANGE
);
}
}
/**
* clk_has_parent - check if a clock is a possible parent for another
* @clk: clock source
* @parent: parent clock source
*
* This function can be used in drivers that need to check that a clock can be
* the parent of another without actually changing the parent.
*
* Returns true if @parent is a possible parent for @clk, false otherwise.
*/
bool
clk_has_parent
(
struct
clk
*
clk
,
struct
clk
*
parent
)
{
unsigned
int
i
;
/* NULL clocks should be nops, so return success if either is NULL. */
if
(
!
clk
||
!
parent
)
return
true
;
/* Optimize for the case where the parent is already the parent. */
if
(
clk
->
parent
==
parent
)
return
true
;
for
(
i
=
0
;
i
<
clk
->
num_parents
;
i
++
)
if
(
strcmp
(
clk
->
parent_names
[
i
],
parent
->
name
)
==
0
)
return
true
;
return
false
;
}
EXPORT_SYMBOL_GPL
(
clk_has_parent
);
/**
/**
* clk_set_parent - switch the parent of a mux clk
* clk_set_parent - switch the parent of a mux clk
* @clk: the mux clk whose input we are switching
* @clk: the mux clk whose input we are switching
...
...
include/linux/clk.h
View file @
57386798
...
@@ -301,6 +301,18 @@ long clk_round_rate(struct clk *clk, unsigned long rate);
...
@@ -301,6 +301,18 @@ long clk_round_rate(struct clk *clk, unsigned long rate);
*/
*/
int
clk_set_rate
(
struct
clk
*
clk
,
unsigned
long
rate
);
int
clk_set_rate
(
struct
clk
*
clk
,
unsigned
long
rate
);
/**
* clk_has_parent - check if a clock is a possible parent for another
* @clk: clock source
* @parent: parent clock source
*
* This function can be used in drivers that need to check that a clock can be
* the parent of another without actually changing the parent.
*
* Returns true if @parent is a possible parent for @clk, false otherwise.
*/
bool
clk_has_parent
(
struct
clk
*
clk
,
struct
clk
*
parent
);
/**
/**
* clk_set_parent - set the parent clock source for this clock
* clk_set_parent - set the parent clock source for this clock
* @clk: clock source
* @clk: clock source
...
@@ -374,6 +386,11 @@ static inline long clk_round_rate(struct clk *clk, unsigned long rate)
...
@@ -374,6 +386,11 @@ static inline long clk_round_rate(struct clk *clk, unsigned long rate)
return
0
;
return
0
;
}
}
static
inline
bool
clk_has_parent
(
struct
clk
*
clk
,
struct
clk
*
parent
)
{
return
true
;
}
static
inline
int
clk_set_parent
(
struct
clk
*
clk
,
struct
clk
*
parent
)
static
inline
int
clk_set_parent
(
struct
clk
*
clk
,
struct
clk
*
parent
)
{
{
return
0
;
return
0
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment