Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
ac9f1cc2
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看板
提交
ac9f1cc2
编写于
10月 07, 2013
作者:
R
Rafael J. Wysocki
浏览文件
操作
浏览文件
下载
差异文件
Merge back earlier cpuidle material for v3.13.
上级
494b2449
35baa336
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
36 addition
and
10 deletion
+36
-10
arch/arm/mach-exynos/common.c
arch/arm/mach-exynos/common.c
+11
-0
arch/arm/mach-exynos/common.h
arch/arm/mach-exynos/common.h
+1
-0
arch/arm/mach-exynos/cpuidle.c
arch/arm/mach-exynos/cpuidle.c
+12
-2
arch/arm/mach-exynos/mach-exynos4-dt.c
arch/arm/mach-exynos/mach-exynos4-dt.c
+2
-0
arch/arm/mach-exynos/mach-exynos5-dt.c
arch/arm/mach-exynos/mach-exynos5-dt.c
+2
-0
drivers/idle/intel_idle.c
drivers/idle/intel_idle.c
+8
-8
未找到文件。
arch/arm/mach-exynos/common.c
浏览文件 @
ac9f1cc2
...
...
@@ -30,6 +30,7 @@
#include <linux/clk-provider.h>
#include <linux/irqchip/arm-gic.h>
#include <linux/irqchip/chained_irq.h>
#include <linux/platform_device.h>
#include <asm/proc-fns.h>
#include <asm/exception.h>
...
...
@@ -294,6 +295,16 @@ void exynos5_restart(enum reboot_mode mode, const char *cmd)
__raw_writel
(
val
,
addr
);
}
static
struct
platform_device
exynos_cpuidle
=
{
.
name
=
"exynos_cpuidle"
,
.
id
=
-
1
,
};
void
__init
exynos_cpuidle_init
(
void
)
{
platform_device_register
(
&
exynos_cpuidle
);
}
void
__init
exynos_init_late
(
void
)
{
if
(
of_machine_is_compatible
(
"samsung,exynos5440"
))
...
...
arch/arm/mach-exynos/common.h
浏览文件 @
ac9f1cc2
...
...
@@ -22,6 +22,7 @@ struct map_desc;
void
exynos_init_io
(
void
);
void
exynos4_restart
(
enum
reboot_mode
mode
,
const
char
*
cmd
);
void
exynos5_restart
(
enum
reboot_mode
mode
,
const
char
*
cmd
);
void
exynos_cpuidle_init
(
void
);
void
exynos_init_late
(
void
);
void
exynos_firmware_init
(
void
);
...
...
arch/arm/mach-exynos/cpuidle.c
浏览文件 @
ac9f1cc2
...
...
@@ -15,6 +15,7 @@
#include <linux/io.h>
#include <linux/export.h>
#include <linux/time.h>
#include <linux/platform_device.h>
#include <asm/proc-fns.h>
#include <asm/smp_scu.h>
...
...
@@ -192,7 +193,7 @@ static void __init exynos5_core_down_clk(void)
__raw_writel
(
tmp
,
EXYNOS5_PWR_CTRL2
);
}
static
int
__init
exynos
4_init_cpuidle
(
void
)
static
int
__init
exynos
_cpuidle_probe
(
struct
platform_device
*
pdev
)
{
int
cpu_id
,
ret
;
struct
cpuidle_device
*
device
;
...
...
@@ -226,4 +227,13 @@ static int __init exynos4_init_cpuidle(void)
return
0
;
}
device_initcall
(
exynos4_init_cpuidle
);
static
struct
platform_driver
exynos_cpuidle_driver
=
{
.
probe
=
exynos_cpuidle_probe
,
.
driver
=
{
.
name
=
"exynos_cpuidle"
,
.
owner
=
THIS_MODULE
,
},
};
module_platform_driver
(
exynos_cpuidle_driver
);
arch/arm/mach-exynos/mach-exynos4-dt.c
浏览文件 @
ac9f1cc2
...
...
@@ -25,6 +25,8 @@
static
void
__init
exynos4_dt_machine_init
(
void
)
{
exynos_cpuidle_init
();
of_platform_populate
(
NULL
,
of_default_bus_match_table
,
NULL
,
NULL
);
}
...
...
arch/arm/mach-exynos/mach-exynos5-dt.c
浏览文件 @
ac9f1cc2
...
...
@@ -47,6 +47,8 @@ static void __init exynos5_dt_machine_init(void)
}
}
exynos_cpuidle_init
();
of_platform_populate
(
NULL
,
of_default_bus_match_table
,
NULL
,
NULL
);
}
...
...
drivers/idle/intel_idle.c
浏览文件 @
ac9f1cc2
...
...
@@ -123,7 +123,7 @@ static struct cpuidle_state *cpuidle_state_table;
* which is also the index into the MWAIT hint array.
* Thus C0 is a dummy.
*/
static
struct
cpuidle_state
nehalem_cstates
[
CPUIDLE_STATE_MAX
]
=
{
static
struct
cpuidle_state
nehalem_cstates
[
]
__initdata
=
{
{
.
name
=
"C1-NHM"
,
.
desc
=
"MWAIT 0x00"
,
...
...
@@ -156,7 +156,7 @@ static struct cpuidle_state nehalem_cstates[CPUIDLE_STATE_MAX] = {
.
enter
=
NULL
}
};
static
struct
cpuidle_state
snb_cstates
[
CPUIDLE_STATE_MAX
]
=
{
static
struct
cpuidle_state
snb_cstates
[
]
__initdata
=
{
{
.
name
=
"C1-SNB"
,
.
desc
=
"MWAIT 0x00"
,
...
...
@@ -196,7 +196,7 @@ static struct cpuidle_state snb_cstates[CPUIDLE_STATE_MAX] = {
.
enter
=
NULL
}
};
static
struct
cpuidle_state
ivb_cstates
[
CPUIDLE_STATE_MAX
]
=
{
static
struct
cpuidle_state
ivb_cstates
[
]
__initdata
=
{
{
.
name
=
"C1-IVB"
,
.
desc
=
"MWAIT 0x00"
,
...
...
@@ -236,7 +236,7 @@ static struct cpuidle_state ivb_cstates[CPUIDLE_STATE_MAX] = {
.
enter
=
NULL
}
};
static
struct
cpuidle_state
hsw_cstates
[
CPUIDLE_STATE_MAX
]
=
{
static
struct
cpuidle_state
hsw_cstates
[
]
__initdata
=
{
{
.
name
=
"C1-HSW"
,
.
desc
=
"MWAIT 0x00"
,
...
...
@@ -297,7 +297,7 @@ static struct cpuidle_state hsw_cstates[CPUIDLE_STATE_MAX] = {
.
enter
=
NULL
}
};
static
struct
cpuidle_state
atom_cstates
[
CPUIDLE_STATE_MAX
]
=
{
static
struct
cpuidle_state
atom_cstates
[
]
__initdata
=
{
{
.
name
=
"C1E-ATM"
,
.
desc
=
"MWAIT 0x00"
,
...
...
@@ -490,7 +490,7 @@ MODULE_DEVICE_TABLE(x86cpu, intel_idle_ids);
/*
* intel_idle_probe()
*/
static
int
intel_idle_probe
(
void
)
static
int
__init
intel_idle_probe
(
void
)
{
unsigned
int
eax
,
ebx
,
ecx
;
const
struct
x86_cpu_id
*
id
;
...
...
@@ -558,7 +558,7 @@ static void intel_idle_cpuidle_devices_uninit(void)
* intel_idle_cpuidle_driver_init()
* allocate, initialize cpuidle_states
*/
static
int
intel_idle_cpuidle_driver_init
(
void
)
static
int
__init
intel_idle_cpuidle_driver_init
(
void
)
{
int
cstate
;
struct
cpuidle_driver
*
drv
=
&
intel_idle_driver
;
...
...
@@ -628,7 +628,7 @@ static int intel_idle_cpu_init(int cpu)
int
num_substates
,
mwait_hint
,
mwait_cstate
,
mwait_substate
;
if
(
cpuidle_state_table
[
cstate
].
enter
==
NULL
)
continue
;
break
;
if
(
cstate
+
1
>
max_cstate
)
{
printk
(
PREFIX
"max_cstate %d reached
\n
"
,
max_cstate
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录