Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
ea2de1dc
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
ea2de1dc
编写于
1月 19, 2010
作者:
B
Ben Dooks
浏览文件
操作
浏览文件
下载
差异文件
ARM: Merge next-samsung-clock2
Merge branch 'next-samsung-clock2' into next-samsung-try7
上级
668dfc75
f9e011b6
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
19 addition
and
15 deletion
+19
-15
arch/arm/plat-s5pc1xx/clock.c
arch/arm/plat-s5pc1xx/clock.c
+2
-7
arch/arm/plat-samsung/clock-clksrc.c
arch/arm/plat-samsung/clock-clksrc.c
+17
-8
未找到文件。
arch/arm/plat-s5pc1xx/clock.c
浏览文件 @
ea2de1dc
...
@@ -64,18 +64,12 @@ struct clk clk_54m = {
...
@@ -64,18 +64,12 @@ struct clk clk_54m = {
.
rate
=
54000000
,
.
rate
=
54000000
,
};
};
static
int
clk_dummy_enable
(
struct
clk
*
clk
,
int
enable
)
{
return
0
;
}
struct
clk
clk_hd0
=
{
struct
clk
clk_hd0
=
{
.
name
=
"hclkd0"
,
.
name
=
"hclkd0"
,
.
id
=
-
1
,
.
id
=
-
1
,
.
rate
=
0
,
.
rate
=
0
,
.
parent
=
NULL
,
.
parent
=
NULL
,
.
ctrlbit
=
0
,
.
ctrlbit
=
0
,
.
enable
=
clk_dummy_enable
,
.
ops
=
&
clk_ops_def_setrate
,
.
ops
=
&
clk_ops_def_setrate
,
};
};
...
@@ -86,7 +80,6 @@ struct clk clk_pd0 = {
...
@@ -86,7 +80,6 @@ struct clk clk_pd0 = {
.
parent
=
NULL
,
.
parent
=
NULL
,
.
ctrlbit
=
0
,
.
ctrlbit
=
0
,
.
ops
=
&
clk_ops_def_setrate
,
.
ops
=
&
clk_ops_def_setrate
,
.
enable
=
clk_dummy_enable
,
};
};
static
int
s5pc1xx_clk_gate
(
void
__iomem
*
reg
,
struct
clk
*
clk
,
int
enable
)
static
int
s5pc1xx_clk_gate
(
void
__iomem
*
reg
,
struct
clk
*
clk
,
int
enable
)
...
@@ -680,6 +673,8 @@ static struct clk s5pc100_init_clocks[] = {
...
@@ -680,6 +673,8 @@ static struct clk s5pc100_init_clocks[] = {
static
struct
clk
*
clks
[]
__initdata
=
{
static
struct
clk
*
clks
[]
__initdata
=
{
&
clk_ext
,
&
clk_ext
,
&
clk_epll
,
&
clk_epll
,
&
clk_pd0
,
&
clk_hd0
,
&
clk_27m
,
&
clk_27m
,
&
clk_48m
,
&
clk_48m
,
&
clk_54m
,
&
clk_54m
,
...
...
arch/arm/plat-samsung/clock-clksrc.c
浏览文件 @
ea2de1dc
...
@@ -60,7 +60,7 @@ static int s3c_setrate_clksrc(struct clk *clk, unsigned long rate)
...
@@ -60,7 +60,7 @@ static int s3c_setrate_clksrc(struct clk *clk, unsigned long rate)
rate
=
clk_round_rate
(
clk
,
rate
);
rate
=
clk_round_rate
(
clk
,
rate
);
div
=
clk_get_rate
(
clk
->
parent
)
/
rate
;
div
=
clk_get_rate
(
clk
->
parent
)
/
rate
;
if
(
div
>
16
)
if
(
div
>
(
1
<<
sclk
->
reg_div
.
size
)
)
return
-
EINVAL
;
return
-
EINVAL
;
val
=
__raw_readl
(
reg
);
val
=
__raw_readl
(
reg
);
...
@@ -102,7 +102,9 @@ static int s3c_setparent_clksrc(struct clk *clk, struct clk *parent)
...
@@ -102,7 +102,9 @@ static int s3c_setparent_clksrc(struct clk *clk, struct clk *parent)
static
unsigned
long
s3c_roundrate_clksrc
(
struct
clk
*
clk
,
static
unsigned
long
s3c_roundrate_clksrc
(
struct
clk
*
clk
,
unsigned
long
rate
)
unsigned
long
rate
)
{
{
struct
clksrc_clk
*
sclk
=
to_clksrc
(
clk
);
unsigned
long
parent_rate
=
clk_get_rate
(
clk
->
parent
);
unsigned
long
parent_rate
=
clk_get_rate
(
clk
->
parent
);
int
max_div
=
1
<<
sclk
->
reg_div
.
size
;
int
div
;
int
div
;
if
(
rate
>=
parent_rate
)
if
(
rate
>=
parent_rate
)
...
@@ -114,8 +116,8 @@ static unsigned long s3c_roundrate_clksrc(struct clk *clk,
...
@@ -114,8 +116,8 @@ static unsigned long s3c_roundrate_clksrc(struct clk *clk,
if
(
div
==
0
)
if
(
div
==
0
)
div
=
1
;
div
=
1
;
if
(
div
>
16
)
if
(
div
>
max_div
)
div
=
16
;
div
=
max_div
;
rate
=
parent_rate
/
div
;
rate
=
parent_rate
/
div
;
}
}
...
@@ -129,11 +131,16 @@ void __init_or_cpufreq s3c_set_clksrc(struct clksrc_clk *clk, bool announce)
...
@@ -129,11 +131,16 @@ void __init_or_cpufreq s3c_set_clksrc(struct clksrc_clk *clk, bool announce)
{
{
struct
clksrc_sources
*
srcs
=
clk
->
sources
;
struct
clksrc_sources
*
srcs
=
clk
->
sources
;
u32
mask
=
bit_mask
(
clk
->
reg_src
.
shift
,
clk
->
reg_src
.
size
);
u32
mask
=
bit_mask
(
clk
->
reg_src
.
shift
,
clk
->
reg_src
.
size
);
u32
clksrc
=
0
;
u32
clksrc
;
if
(
clk
->
reg_src
.
reg
)
if
(
!
clk
->
reg_src
.
reg
)
{
clksrc
=
__raw_readl
(
clk
->
reg_src
.
reg
);
if
(
!
clk
->
clk
.
parent
)
printk
(
KERN_ERR
"%s: no parent clock specified
\n
"
,
clk
->
clk
.
name
);
return
;
}
clksrc
=
__raw_readl
(
clk
->
reg_src
.
reg
);
clksrc
&=
mask
;
clksrc
&=
mask
;
clksrc
>>=
clk
->
reg_src
.
shift
;
clksrc
>>=
clk
->
reg_src
.
shift
;
...
@@ -172,9 +179,11 @@ void __init s3c_register_clksrc(struct clksrc_clk *clksrc, int size)
...
@@ -172,9 +179,11 @@ void __init s3c_register_clksrc(struct clksrc_clk *clksrc, int size)
{
{
int
ret
;
int
ret
;
WARN_ON
(
!
clksrc
->
reg_div
.
reg
&&
!
clksrc
->
reg_src
.
reg
);
for
(;
size
>
0
;
size
--
,
clksrc
++
)
{
for
(;
size
>
0
;
size
--
,
clksrc
++
)
{
if
(
!
clksrc
->
reg_div
.
reg
&&
!
clksrc
->
reg_src
.
reg
)
printk
(
KERN_ERR
"%s: clock %s has no registers set
\n
"
,
__func__
,
clksrc
->
clk
.
name
);
/* fill in the default functions */
/* fill in the default functions */
if
(
!
clksrc
->
clk
.
ops
)
{
if
(
!
clksrc
->
clk
.
ops
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录