Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
38f64c77
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
38f64c77
编写于
1月 09, 2009
作者:
L
Len Brown
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'alarm' into release
上级
e2f7a777
2602a671
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
32 addition
and
21 deletion
+32
-21
drivers/acpi/proc.c
drivers/acpi/proc.c
+32
-21
未找到文件。
drivers/acpi/proc.c
浏览文件 @
38f64c77
...
...
@@ -84,47 +84,44 @@ acpi_system_write_sleep(struct file *file,
#ifdef HAVE_ACPI_LEGACY_ALARM
static
u32
cmos_bcd_read
(
int
offset
,
int
rtc_control
);
static
int
acpi_system_alarm_seq_show
(
struct
seq_file
*
seq
,
void
*
offset
)
{
u32
sec
,
min
,
hr
;
u32
day
,
mo
,
yr
,
cent
=
0
;
u32
today
=
0
;
unsigned
char
rtc_control
=
0
;
unsigned
long
flags
;
spin_lock_irqsave
(
&
rtc_lock
,
flags
);
sec
=
CMOS_READ
(
RTC_SECONDS_ALARM
);
min
=
CMOS_READ
(
RTC_MINUTES_ALARM
);
hr
=
CMOS_READ
(
RTC_HOURS_ALARM
);
rtc_control
=
CMOS_READ
(
RTC_CONTROL
);
sec
=
cmos_bcd_read
(
RTC_SECONDS_ALARM
,
rtc_control
);
min
=
cmos_bcd_read
(
RTC_MINUTES_ALARM
,
rtc_control
);
hr
=
cmos_bcd_read
(
RTC_HOURS_ALARM
,
rtc_control
);
/* If we ever get an FACP with proper values... */
if
(
acpi_gbl_FADT
.
day_alarm
)
if
(
acpi_gbl_FADT
.
day_alarm
)
{
/* ACPI spec: only low 6 its should be cared */
day
=
CMOS_READ
(
acpi_gbl_FADT
.
day_alarm
)
&
0x3F
;
else
day
=
CMOS_READ
(
RTC_DAY_OF_MONTH
);
if
(
!
(
rtc_control
&
RTC_DM_BINARY
)
||
RTC_ALWAYS_BCD
)
day
=
bcd2bin
(
day
);
}
else
day
=
cmos_bcd_read
(
RTC_DAY_OF_MONTH
,
rtc_control
);
if
(
acpi_gbl_FADT
.
month_alarm
)
mo
=
CMOS_READ
(
acpi_gbl_FADT
.
month_alarm
);
else
mo
=
CMOS_READ
(
RTC_MONTH
);
mo
=
cmos_bcd_read
(
acpi_gbl_FADT
.
month_alarm
,
rtc_control
);
else
{
mo
=
cmos_bcd_read
(
RTC_MONTH
,
rtc_control
);
today
=
cmos_bcd_read
(
RTC_DAY_OF_MONTH
,
rtc_control
);
}
if
(
acpi_gbl_FADT
.
century
)
cent
=
CMOS_READ
(
acpi_gbl_FADT
.
century
);
cent
=
cmos_bcd_read
(
acpi_gbl_FADT
.
century
,
rtc_control
);
yr
=
CMOS_READ
(
RTC_YEAR
);
yr
=
cmos_bcd_read
(
RTC_YEAR
,
rtc_control
);
spin_unlock_irqrestore
(
&
rtc_lock
,
flags
);
if
(
!
(
rtc_control
&
RTC_DM_BINARY
)
||
RTC_ALWAYS_BCD
)
{
sec
=
bcd2bin
(
sec
);
min
=
bcd2bin
(
min
);
hr
=
bcd2bin
(
hr
);
day
=
bcd2bin
(
day
);
mo
=
bcd2bin
(
mo
);
yr
=
bcd2bin
(
yr
);
cent
=
bcd2bin
(
cent
);
}
/* we're trusting the FADT (see above) */
if
(
!
acpi_gbl_FADT
.
century
)
/* If we're not trusting the FADT, we should at least make it
...
...
@@ -149,6 +146,20 @@ static int acpi_system_alarm_seq_show(struct seq_file *seq, void *offset)
else
yr
+=
cent
*
100
;
/*
* Show correct dates for alarms up to a month into the future.
* This solves issues for nearly all situations with the common
* 30-day alarm clocks in PC hardware.
*/
if
(
day
<
today
)
{
if
(
mo
<
12
)
{
mo
+=
1
;
}
else
{
mo
=
1
;
yr
+=
1
;
}
}
seq_printf
(
seq
,
"%4.4u-"
,
yr
);
(
mo
>
12
)
?
seq_puts
(
seq
,
"**-"
)
:
seq_printf
(
seq
,
"%2.2u-"
,
mo
);
(
day
>
31
)
?
seq_puts
(
seq
,
"** "
)
:
seq_printf
(
seq
,
"%2.2u "
,
day
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录