Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
4588c1f0
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
158
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4588c1f0
编写于
9月 06, 2008
作者:
I
Ingo Molnar
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
x86: HPET_MSI Basic HPET_MSI setup code, cleanups
small style cleanups. Signed-off-by:
N
Ingo Molnar
<
mingo@elte.hu
>
上级
58ac1e76
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
25 addition
and
25 deletion
+25
-25
arch/x86/kernel/hpet.c
arch/x86/kernel/hpet.c
+25
-25
未找到文件。
arch/x86/kernel/hpet.c
浏览文件 @
4588c1f0
#include <linux/clocksource.h>
#include <linux/clockchips.h>
#include <linux/interrupt.h>
#include <linux/sysdev.h>
#include <linux/delay.h>
#include <linux/errno.h>
#include <linux/hpet.h>
#include <linux/init.h>
#include <linux/sysdev.h>
#include <linux/pm.h>
#include <linux/interrupt.h>
#include <linux/cpu.h>
#include <linux/pm.h>
#include <linux/io.h>
#include <asm/fixmap.h>
#include <asm/hpet.h>
#include <asm/i8253.h>
#include <asm/
io
.h>
#include <asm/
hpet
.h>
#define HPET_MASK CLOCKSOURCE_MASK(32)
#define HPET_SHIFT 22
#define HPET_MASK
CLOCKSOURCE_MASK(32)
#define HPET_SHIFT
22
/* FSEC = 10^-15
NSEC = 10^-9 */
#define FSEC_PER_NSEC 1000000L
#define FSEC_PER_NSEC
1000000L
/*
* HPET address is set in acpi/boot.c, when an ACPI entry exists
*/
unsigned
long
hpet_address
;
static
void
__iomem
*
hpet_virt_address
;
unsigned
long
hpet_address
;
static
void
__iomem
*
hpet_virt_address
;
struct
hpet_dev
{
struct
clock_event_device
evt
;
unsigned
int
num
;
int
cpu
;
unsigned
int
irq
;
unsigned
int
flags
;
char
name
[
10
];
struct
clock_event_device
evt
;
unsigned
int
num
;
int
cpu
;
unsigned
int
irq
;
unsigned
int
flags
;
char
name
[
10
];
};
unsigned
long
hpet_readl
(
unsigned
long
a
)
...
...
@@ -70,7 +70,7 @@ static inline void hpet_clear_mapping(void)
static
int
boot_hpet_disable
;
int
hpet_force_user
;
static
int
__init
hpet_setup
(
char
*
str
)
static
int
__init
hpet_setup
(
char
*
str
)
{
if
(
str
)
{
if
(
!
strncmp
(
"disable"
,
str
,
7
))
...
...
@@ -91,7 +91,7 @@ __setup("nohpet", disable_hpet);
static
inline
int
is_hpet_capable
(
void
)
{
return
(
!
boot_hpet_disable
&&
hpet_address
)
;
return
!
boot_hpet_disable
&&
hpet_address
;
}
/*
...
...
@@ -122,10 +122,10 @@ static void hpet_reserve_platform_timers(unsigned long id)
nrtimers
=
((
id
&
HPET_ID_NUMBER
)
>>
HPET_ID_NUMBER_SHIFT
)
+
1
;
memset
(
&
hd
,
0
,
sizeof
(
hd
));
hd
.
hd_phys_address
=
hpet_address
;
hd
.
hd_address
=
hpet
;
hd
.
hd_nirqs
=
nrtimers
;
memset
(
&
hd
,
0
,
sizeof
(
hd
));
hd
.
hd_phys_address
=
hpet_address
;
hd
.
hd_address
=
hpet
;
hd
.
hd_nirqs
=
nrtimers
;
hpet_reserve_timer
(
&
hd
,
0
);
#ifdef CONFIG_HPET_EMULATE_RTC
...
...
@@ -141,8 +141,8 @@ static void hpet_reserve_platform_timers(unsigned long id)
hd
.
hd_irq
[
1
]
=
HPET_LEGACY_RTC
;
for
(
i
=
2
;
i
<
nrtimers
;
timer
++
,
i
++
)
{
hd
.
hd_irq
[
i
]
=
(
readl
(
&
timer
->
hpet_config
)
&
Tn_INT_ROUTE_CNF_MASK
)
>>
Tn_INT_ROUTE_CNF_SHIFT
;
hd
.
hd_irq
[
i
]
=
(
readl
(
&
timer
->
hpet_config
)
&
Tn_INT_ROUTE_CNF_
MASK
)
>>
Tn_INT_ROUTE_CNF_
SHIFT
;
}
hpet_alloc
(
&
hd
);
...
...
@@ -244,7 +244,7 @@ static void hpet_set_mode(enum clock_event_mode mode,
unsigned
long
cfg
,
cmp
,
now
;
uint64_t
delta
;
switch
(
mode
)
{
switch
(
mode
)
{
case
CLOCK_EVT_MODE_PERIODIC
:
delta
=
((
uint64_t
)(
NSEC_PER_SEC
/
HZ
))
*
evt
->
mult
;
delta
>>=
evt
->
shift
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录