Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
93c846f9
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
93c846f9
编写于
17年前
作者:
R
Ralf Baechle
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[MIPS] time: Helpers to compute clocksource/event shift and mult values.
Signed-off-by:
N
Ralf Baechle
<
ralf@linux-mips.org
>
上级
f887b93e
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
36 addition
and
8 deletion
+36
-8
arch/mips/kernel/time.c
arch/mips/kernel/time.c
+31
-8
include/asm-mips/time.h
include/asm-mips/time.h
+5
-0
未找到文件。
arch/mips/kernel/time.c
浏览文件 @
93c846f9
...
...
@@ -171,25 +171,48 @@ struct clocksource clocksource_mips = {
.
flags
=
CLOCK_SOURCE_IS_CONTINUOUS
,
};
static
void
__init
init_mips_clocksource
(
void
)
void
__init
clocksource_set_clock
(
struct
clocksource
*
cs
,
unsigned
int
clock
)
{
u64
temp
;
u32
shift
;
if
(
!
mips_hpt_frequency
||
clocksource_mips
.
read
==
null_hpt_read
)
return
;
/* Find a shift value */
for
(
shift
=
32
;
shift
>
0
;
shift
--
)
{
temp
=
(
u64
)
NSEC_PER_SEC
<<
shift
;
do_div
(
temp
,
clock
);
if
((
temp
>>
32
)
==
0
)
break
;
}
cs
->
shift
=
shift
;
cs
->
mult
=
(
u32
)
temp
;
}
void
__cpuinit
clockevent_set_clock
(
struct
clock_event_device
*
cd
,
unsigned
int
clock
)
{
u64
temp
;
u32
shift
;
/* Calclate a somewhat reasonable rating value */
clocksource_mips
.
rating
=
200
+
mips_hpt_frequency
/
10000000
;
/* Find a shift value */
for
(
shift
=
32
;
shift
>
0
;
shift
--
)
{
temp
=
(
u64
)
NSEC_PER_SEC
<<
shift
;
do_div
(
temp
,
mips_hpt_frequency
);
do_div
(
temp
,
clock
);
if
((
temp
>>
32
)
==
0
)
break
;
}
clocksource_mips
.
shift
=
shift
;
clocksource_mips
.
mult
=
(
u32
)
temp
;
cd
->
shift
=
shift
;
cd
->
mult
=
(
u32
)
temp
;
}
static
void
__init
init_mips_clocksource
(
void
)
{
if
(
!
mips_hpt_frequency
||
clocksource_mips
.
read
==
null_hpt_read
)
return
;
/* Calclate a somewhat reasonable rating value */
clocksource_mips
.
rating
=
200
+
mips_hpt_frequency
/
10000000
;
clocksource_set_clock
(
&
clocksource_mips
,
mips_hpt_frequency
);
clocksource_register
(
&
clocksource_mips
);
}
...
...
This diff is collapsed.
Click to expand it.
include/asm-mips/time.h
浏览文件 @
93c846f9
...
...
@@ -21,6 +21,7 @@
#include <linux/ptrace.h>
#include <linux/rtc.h>
#include <linux/spinlock.h>
#include <linux/clockchips.h>
#include <linux/clocksource.h>
extern
spinlock_t
rtc_lock
;
...
...
@@ -83,4 +84,8 @@ static inline void mips_clockevent_init(void)
}
#endif
extern
void
clocksource_set_clock
(
struct
clocksource
*
cs
,
unsigned
int
clock
);
extern
void
clockevent_set_clock
(
struct
clock_event_device
*
cd
,
unsigned
int
clock
);
#endif
/* _ASM_TIME_H */
This diff is collapsed.
Click to expand it.
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录