Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
0a924200
K
Kernel
项目概览
openeuler
/
Kernel
接近 2 年 前同步成功
通知
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看板
提交
0a924200
编写于
11月 21, 2014
作者:
R
Rafael J. Wysocki
浏览文件
操作
浏览文件
下载
差异文件
Merge back earlier cpuidle material for 3.19-rc1.
Conflicts: drivers/cpuidle/dt_idle_states.c
上级
a74a5a33
b82b6cca
变更
34
隐藏空白更改
内联
并排
Showing
34 changed file
with
75 addition
and
125 deletion
+75
-125
arch/arm/include/asm/cpuidle.h
arch/arm/include/asm/cpuidle.h
+0
-1
arch/arm/mach-davinci/cpuidle.c
arch/arm/mach-davinci/cpuidle.c
+0
-1
arch/arm/mach-imx/cpuidle-imx5.c
arch/arm/mach-imx/cpuidle-imx5.c
+0
-1
arch/arm/mach-imx/cpuidle-imx6q.c
arch/arm/mach-imx/cpuidle-imx6q.c
+1
-2
arch/arm/mach-imx/cpuidle-imx6sl.c
arch/arm/mach-imx/cpuidle-imx6sl.c
+1
-2
arch/arm/mach-omap2/cpuidle34xx.c
arch/arm/mach-omap2/cpuidle34xx.c
+0
-7
arch/arm/mach-omap2/cpuidle44xx.c
arch/arm/mach-omap2/cpuidle44xx.c
+2
-3
arch/arm/mach-s3c64xx/cpuidle.c
arch/arm/mach-s3c64xx/cpuidle.c
+0
-1
arch/arm/mach-shmobile/pm-sh7372.c
arch/arm/mach-shmobile/pm-sh7372.c
+0
-4
arch/arm/mach-tegra/cpuidle-tegra114.c
arch/arm/mach-tegra/cpuidle-tegra114.c
+0
-1
arch/arm/mach-tegra/cpuidle-tegra20.c
arch/arm/mach-tegra/cpuidle-tegra20.c
+1
-2
arch/arm/mach-tegra/cpuidle-tegra30.c
arch/arm/mach-tegra/cpuidle-tegra30.c
+0
-1
arch/mips/include/asm/idle.h
arch/mips/include/asm/idle.h
+0
-1
arch/sh/kernel/cpu/shmobile/cpuidle.c
arch/sh/kernel/cpu/shmobile/cpuidle.c
+0
-3
arch/x86/kernel/apm_32.c
arch/x86/kernel/apm_32.c
+0
-1
drivers/acpi/processor_idle.c
drivers/acpi/processor_idle.c
+2
-4
drivers/cpuidle/cpuidle-arm64.c
drivers/cpuidle/cpuidle-arm64.c
+0
-1
drivers/cpuidle/cpuidle-at91.c
drivers/cpuidle/cpuidle-at91.c
+0
-1
drivers/cpuidle/cpuidle-big_little.c
drivers/cpuidle/cpuidle-big_little.c
+2
-4
drivers/cpuidle/cpuidle-calxeda.c
drivers/cpuidle/cpuidle-calxeda.c
+0
-1
drivers/cpuidle/cpuidle-cps.c
drivers/cpuidle/cpuidle-cps.c
+2
-5
drivers/cpuidle/cpuidle-exynos.c
drivers/cpuidle/cpuidle-exynos.c
+0
-1
drivers/cpuidle/cpuidle-kirkwood.c
drivers/cpuidle/cpuidle-kirkwood.c
+0
-1
drivers/cpuidle/cpuidle-mvebu-v7.c
drivers/cpuidle/cpuidle-mvebu-v7.c
+2
-6
drivers/cpuidle/cpuidle-powernv.c
drivers/cpuidle/cpuidle-powernv.c
+2
-4
drivers/cpuidle/cpuidle-pseries.c
drivers/cpuidle/cpuidle-pseries.c
+0
-3
drivers/cpuidle/cpuidle-ux500.c
drivers/cpuidle/cpuidle-ux500.c
+1
-2
drivers/cpuidle/cpuidle-zynq.c
drivers/cpuidle/cpuidle-zynq.c
+0
-1
drivers/cpuidle/driver.c
drivers/cpuidle/driver.c
+0
-1
drivers/cpuidle/dt_idle_states.c
drivers/cpuidle/dt_idle_states.c
+1
-1
drivers/cpuidle/governors/ladder.c
drivers/cpuidle/governors/ladder.c
+1
-1
drivers/cpuidle/governors/menu.c
drivers/cpuidle/governors/menu.c
+1
-1
drivers/idle/intel_idle.c
drivers/idle/intel_idle.c
+54
-54
include/linux/cpuidle.h
include/linux/cpuidle.h
+2
-2
未找到文件。
arch/arm/include/asm/cpuidle.h
浏览文件 @
0a924200
...
...
@@ -15,7 +15,6 @@ static inline int arm_cpuidle_simple_enter(struct cpuidle_device *dev,
.exit_latency = 1,\
.target_residency = 1,\
.power_usage = p,\
.flags = CPUIDLE_FLAG_TIME_VALID,\
.name = "WFI",\
.desc = "ARM WFI",\
}
...
...
arch/arm/mach-davinci/cpuidle.c
浏览文件 @
0a924200
...
...
@@ -66,7 +66,6 @@ static struct cpuidle_driver davinci_idle_driver = {
.
enter
=
davinci_enter_idle
,
.
exit_latency
=
10
,
.
target_residency
=
10000
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
name
=
"DDR SR"
,
.
desc
=
"WFI and DDR Self Refresh"
,
},
...
...
arch/arm/mach-imx/cpuidle-imx5.c
浏览文件 @
0a924200
...
...
@@ -24,7 +24,6 @@ static struct cpuidle_driver imx5_cpuidle_driver = {
.
enter
=
imx5_cpuidle_enter
,
.
exit_latency
=
2
,
.
target_residency
=
1
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
name
=
"IMX5 SRPG"
,
.
desc
=
"CPU state retained,powered off"
,
},
...
...
arch/arm/mach-imx/cpuidle-imx6q.c
浏览文件 @
0a924200
...
...
@@ -53,8 +53,7 @@ static struct cpuidle_driver imx6q_cpuidle_driver = {
{
.
exit_latency
=
50
,
.
target_residency
=
75
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
|
CPUIDLE_FLAG_TIMER_STOP
,
.
flags
=
CPUIDLE_FLAG_TIMER_STOP
,
.
enter
=
imx6q_enter_wait
,
.
name
=
"WAIT"
,
.
desc
=
"Clock off"
,
...
...
arch/arm/mach-imx/cpuidle-imx6sl.c
浏览文件 @
0a924200
...
...
@@ -40,8 +40,7 @@ static struct cpuidle_driver imx6sl_cpuidle_driver = {
{
.
exit_latency
=
50
,
.
target_residency
=
75
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
|
CPUIDLE_FLAG_TIMER_STOP
,
.
flags
=
CPUIDLE_FLAG_TIMER_STOP
,
.
enter
=
imx6sl_enter_wait
,
.
name
=
"WAIT"
,
.
desc
=
"Clock off"
,
...
...
arch/arm/mach-omap2/cpuidle34xx.c
浏览文件 @
0a924200
...
...
@@ -265,7 +265,6 @@ static struct cpuidle_driver omap3_idle_driver = {
.
enter
=
omap3_enter_idle_bm
,
.
exit_latency
=
2
+
2
,
.
target_residency
=
5
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
name
=
"C1"
,
.
desc
=
"MPU ON + CORE ON"
,
},
...
...
@@ -273,7 +272,6 @@ static struct cpuidle_driver omap3_idle_driver = {
.
enter
=
omap3_enter_idle_bm
,
.
exit_latency
=
10
+
10
,
.
target_residency
=
30
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
name
=
"C2"
,
.
desc
=
"MPU ON + CORE ON"
,
},
...
...
@@ -281,7 +279,6 @@ static struct cpuidle_driver omap3_idle_driver = {
.
enter
=
omap3_enter_idle_bm
,
.
exit_latency
=
50
+
50
,
.
target_residency
=
300
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
name
=
"C3"
,
.
desc
=
"MPU RET + CORE ON"
,
},
...
...
@@ -289,7 +286,6 @@ static struct cpuidle_driver omap3_idle_driver = {
.
enter
=
omap3_enter_idle_bm
,
.
exit_latency
=
1500
+
1800
,
.
target_residency
=
4000
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
name
=
"C4"
,
.
desc
=
"MPU OFF + CORE ON"
,
},
...
...
@@ -297,7 +293,6 @@ static struct cpuidle_driver omap3_idle_driver = {
.
enter
=
omap3_enter_idle_bm
,
.
exit_latency
=
2500
+
7500
,
.
target_residency
=
12000
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
name
=
"C5"
,
.
desc
=
"MPU RET + CORE RET"
,
},
...
...
@@ -305,7 +300,6 @@ static struct cpuidle_driver omap3_idle_driver = {
.
enter
=
omap3_enter_idle_bm
,
.
exit_latency
=
3000
+
8500
,
.
target_residency
=
15000
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
name
=
"C6"
,
.
desc
=
"MPU OFF + CORE RET"
,
},
...
...
@@ -313,7 +307,6 @@ static struct cpuidle_driver omap3_idle_driver = {
.
enter
=
omap3_enter_idle_bm
,
.
exit_latency
=
10000
+
30000
,
.
target_residency
=
30000
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
name
=
"C7"
,
.
desc
=
"MPU OFF + CORE OFF"
,
},
...
...
arch/arm/mach-omap2/cpuidle44xx.c
浏览文件 @
0a924200
...
...
@@ -196,7 +196,6 @@ static struct cpuidle_driver omap4_idle_driver = {
/* C1 - CPU0 ON + CPU1 ON + MPU ON */
.
exit_latency
=
2
+
2
,
.
target_residency
=
5
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
enter
=
omap_enter_idle_simple
,
.
name
=
"C1"
,
.
desc
=
"CPUx ON, MPUSS ON"
...
...
@@ -205,7 +204,7 @@ static struct cpuidle_driver omap4_idle_driver = {
/* C2 - CPU0 OFF + CPU1 OFF + MPU CSWR */
.
exit_latency
=
328
+
440
,
.
target_residency
=
960
,
.
flags
=
CPUIDLE_FLAG_
TIME_VALID
|
CPUIDLE_FLAG_
COUPLED
,
.
flags
=
CPUIDLE_FLAG_COUPLED
,
.
enter
=
omap_enter_idle_coupled
,
.
name
=
"C2"
,
.
desc
=
"CPUx OFF, MPUSS CSWR"
,
...
...
@@ -214,7 +213,7 @@ static struct cpuidle_driver omap4_idle_driver = {
/* C3 - CPU0 OFF + CPU1 OFF + MPU OSWR */
.
exit_latency
=
460
+
518
,
.
target_residency
=
1100
,
.
flags
=
CPUIDLE_FLAG_
TIME_VALID
|
CPUIDLE_FLAG_
COUPLED
,
.
flags
=
CPUIDLE_FLAG_COUPLED
,
.
enter
=
omap_enter_idle_coupled
,
.
name
=
"C3"
,
.
desc
=
"CPUx OFF, MPUSS OSWR"
,
...
...
arch/arm/mach-s3c64xx/cpuidle.c
浏览文件 @
0a924200
...
...
@@ -48,7 +48,6 @@ static struct cpuidle_driver s3c64xx_cpuidle_driver = {
.
enter
=
s3c64xx_enter_idle
,
.
exit_latency
=
1
,
.
target_residency
=
1
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
name
=
"IDLE"
,
.
desc
=
"System active, ARM gated"
,
},
...
...
arch/arm/mach-shmobile/pm-sh7372.c
浏览文件 @
0a924200
...
...
@@ -423,7 +423,6 @@ static struct cpuidle_driver sh7372_cpuidle_driver = {
.
desc
=
"Core Standby Mode"
,
.
exit_latency
=
10
,
.
target_residency
=
20
+
10
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
enter
=
sh7372_enter_core_standby
,
},
.
states
[
2
]
=
{
...
...
@@ -431,7 +430,6 @@ static struct cpuidle_driver sh7372_cpuidle_driver = {
.
desc
=
"A3SM PLL ON"
,
.
exit_latency
=
20
,
.
target_residency
=
30
+
20
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
enter
=
sh7372_enter_a3sm_pll_on
,
},
.
states
[
3
]
=
{
...
...
@@ -439,7 +437,6 @@ static struct cpuidle_driver sh7372_cpuidle_driver = {
.
desc
=
"A3SM PLL OFF"
,
.
exit_latency
=
120
,
.
target_residency
=
30
+
120
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
enter
=
sh7372_enter_a3sm_pll_off
,
},
.
states
[
4
]
=
{
...
...
@@ -447,7 +444,6 @@ static struct cpuidle_driver sh7372_cpuidle_driver = {
.
desc
=
"A4S PLL OFF"
,
.
exit_latency
=
240
,
.
target_residency
=
30
+
240
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
enter
=
sh7372_enter_a4s
,
.
disabled
=
true
,
},
...
...
arch/arm/mach-tegra/cpuidle-tegra114.c
浏览文件 @
0a924200
...
...
@@ -75,7 +75,6 @@ static struct cpuidle_driver tegra_idle_driver = {
.
exit_latency
=
500
,
.
target_residency
=
1000
,
.
power_usage
=
0
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
name
=
"powered-down"
,
.
desc
=
"CPU power gated"
,
},
...
...
arch/arm/mach-tegra/cpuidle-tegra20.c
浏览文件 @
0a924200
...
...
@@ -59,8 +59,7 @@ static struct cpuidle_driver tegra_idle_driver = {
.
exit_latency
=
5000
,
.
target_residency
=
10000
,
.
power_usage
=
0
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
|
CPUIDLE_FLAG_COUPLED
,
.
flags
=
CPUIDLE_FLAG_COUPLED
,
.
name
=
"powered-down"
,
.
desc
=
"CPU power gated"
,
},
...
...
arch/arm/mach-tegra/cpuidle-tegra30.c
浏览文件 @
0a924200
...
...
@@ -56,7 +56,6 @@ static struct cpuidle_driver tegra_idle_driver = {
.
exit_latency
=
2000
,
.
target_residency
=
2200
,
.
power_usage
=
0
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
name
=
"powered-down"
,
.
desc
=
"CPU power gated"
,
},
...
...
arch/mips/include/asm/idle.h
浏览文件 @
0a924200
...
...
@@ -22,7 +22,6 @@ extern int mips_cpuidle_wait_enter(struct cpuidle_device *dev,
.exit_latency = 1,\
.target_residency = 1,\
.power_usage = UINT_MAX,\
.flags = CPUIDLE_FLAG_TIME_VALID,\
.name = "wait",\
.desc = "MIPS wait",\
}
...
...
arch/sh/kernel/cpu/shmobile/cpuidle.c
浏览文件 @
0a924200
...
...
@@ -59,7 +59,6 @@ static struct cpuidle_driver cpuidle_driver = {
.
exit_latency
=
1
,
.
target_residency
=
1
*
2
,
.
power_usage
=
3
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
enter
=
cpuidle_sleep_enter
,
.
name
=
"C1"
,
.
desc
=
"SuperH Sleep Mode"
,
...
...
@@ -68,7 +67,6 @@ static struct cpuidle_driver cpuidle_driver = {
.
exit_latency
=
100
,
.
target_residency
=
1
*
2
,
.
power_usage
=
1
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
enter
=
cpuidle_sleep_enter
,
.
name
=
"C2"
,
.
desc
=
"SuperH Sleep Mode [SF]"
,
...
...
@@ -78,7 +76,6 @@ static struct cpuidle_driver cpuidle_driver = {
.
exit_latency
=
2300
,
.
target_residency
=
1
*
2
,
.
power_usage
=
1
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
enter
=
cpuidle_sleep_enter
,
.
name
=
"C3"
,
.
desc
=
"SuperH Mobile Standby Mode [SF]"
,
...
...
arch/x86/kernel/apm_32.c
浏览文件 @
0a924200
...
...
@@ -378,7 +378,6 @@ static struct cpuidle_driver apm_idle_driver = {
{
/* entry 1 is for APM idle */
.
name
=
"APM"
,
.
desc
=
"APM idle"
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
exit_latency
=
250
,
/* WAG */
.
target_residency
=
500
,
/* WAG */
.
enter
=
&
apm_cpu_idle
...
...
drivers/acpi/processor_idle.c
浏览文件 @
0a924200
...
...
@@ -985,8 +985,8 @@ static int acpi_processor_setup_cpuidle_states(struct acpi_processor *pr)
state
->
flags
=
0
;
switch
(
cx
->
type
)
{
case
ACPI_STATE_C1
:
if
(
cx
->
entry_method
=
=
ACPI_CSTATE_FFH
)
state
->
flags
|=
CPUIDLE_FLAG_TIME_VALID
;
if
(
cx
->
entry_method
!
=
ACPI_CSTATE_FFH
)
state
->
flags
|=
CPUIDLE_FLAG_TIME_
IN
VALID
;
state
->
enter
=
acpi_idle_enter_c1
;
state
->
enter_dead
=
acpi_idle_play_dead
;
...
...
@@ -994,14 +994,12 @@ static int acpi_processor_setup_cpuidle_states(struct acpi_processor *pr)
break
;
case
ACPI_STATE_C2
:
state
->
flags
|=
CPUIDLE_FLAG_TIME_VALID
;
state
->
enter
=
acpi_idle_enter_simple
;
state
->
enter_dead
=
acpi_idle_play_dead
;
drv
->
safe_state_index
=
count
;
break
;
case
ACPI_STATE_C3
:
state
->
flags
|=
CPUIDLE_FLAG_TIME_VALID
;
state
->
enter
=
pr
->
flags
.
bm_check
?
acpi_idle_enter_bm
:
acpi_idle_enter_simple
;
...
...
drivers/cpuidle/cpuidle-arm64.c
浏览文件 @
0a924200
...
...
@@ -73,7 +73,6 @@ static struct cpuidle_driver arm64_idle_driver = {
.
exit_latency
=
1
,
.
target_residency
=
1
,
.
power_usage
=
UINT_MAX
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
name
=
"WFI"
,
.
desc
=
"ARM64 WFI"
,
}
...
...
drivers/cpuidle/cpuidle-at91.c
浏览文件 @
0a924200
...
...
@@ -43,7 +43,6 @@ static struct cpuidle_driver at91_idle_driver = {
.
enter
=
at91_enter_idle
,
.
exit_latency
=
10
,
.
target_residency
=
10000
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
name
=
"RAM_SR"
,
.
desc
=
"WFI and DDR Self Refresh"
,
},
...
...
drivers/cpuidle/cpuidle-big_little.c
浏览文件 @
0a924200
...
...
@@ -67,8 +67,7 @@ static struct cpuidle_driver bl_idle_little_driver = {
.
enter
=
bl_enter_powerdown
,
.
exit_latency
=
700
,
.
target_residency
=
2500
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
|
CPUIDLE_FLAG_TIMER_STOP
,
.
flags
=
CPUIDLE_FLAG_TIMER_STOP
,
.
name
=
"C1"
,
.
desc
=
"ARM little-cluster power down"
,
},
...
...
@@ -89,8 +88,7 @@ static struct cpuidle_driver bl_idle_big_driver = {
.
enter
=
bl_enter_powerdown
,
.
exit_latency
=
500
,
.
target_residency
=
2000
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
|
CPUIDLE_FLAG_TIMER_STOP
,
.
flags
=
CPUIDLE_FLAG_TIMER_STOP
,
.
name
=
"C1"
,
.
desc
=
"ARM big-cluster power down"
,
},
...
...
drivers/cpuidle/cpuidle-calxeda.c
浏览文件 @
0a924200
...
...
@@ -55,7 +55,6 @@ static struct cpuidle_driver calxeda_idle_driver = {
{
.
name
=
"PG"
,
.
desc
=
"Power Gate"
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
exit_latency
=
30
,
.
power_usage
=
50
,
.
target_residency
=
200
,
...
...
drivers/cpuidle/cpuidle-cps.c
浏览文件 @
0a924200
...
...
@@ -79,7 +79,6 @@ static struct cpuidle_driver cps_driver = {
.
enter
=
cps_nc_enter
,
.
exit_latency
=
200
,
.
target_residency
=
450
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
name
=
"nc-wait"
,
.
desc
=
"non-coherent MIPS wait"
,
},
...
...
@@ -87,8 +86,7 @@ static struct cpuidle_driver cps_driver = {
.
enter
=
cps_nc_enter
,
.
exit_latency
=
300
,
.
target_residency
=
700
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
|
CPUIDLE_FLAG_TIMER_STOP
,
.
flags
=
CPUIDLE_FLAG_TIMER_STOP
,
.
name
=
"clock-gated"
,
.
desc
=
"core clock gated"
,
},
...
...
@@ -96,8 +94,7 @@ static struct cpuidle_driver cps_driver = {
.
enter
=
cps_nc_enter
,
.
exit_latency
=
600
,
.
target_residency
=
1000
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
|
CPUIDLE_FLAG_TIMER_STOP
,
.
flags
=
CPUIDLE_FLAG_TIMER_STOP
,
.
name
=
"power-gated"
,
.
desc
=
"core power gated"
,
},
...
...
drivers/cpuidle/cpuidle-exynos.c
浏览文件 @
0a924200
...
...
@@ -47,7 +47,6 @@ static struct cpuidle_driver exynos_idle_driver = {
.
enter
=
exynos_enter_lowpower
,
.
exit_latency
=
300
,
.
target_residency
=
100000
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
name
=
"C1"
,
.
desc
=
"ARM power down"
,
},
...
...
drivers/cpuidle/cpuidle-kirkwood.c
浏览文件 @
0a924200
...
...
@@ -47,7 +47,6 @@ static struct cpuidle_driver kirkwood_idle_driver = {
.
enter
=
kirkwood_enter_idle
,
.
exit_latency
=
10
,
.
target_residency
=
100000
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
name
=
"DDR SR"
,
.
desc
=
"WFI and DDR Self Refresh"
,
},
...
...
drivers/cpuidle/cpuidle-mvebu-v7.c
浏览文件 @
0a924200
...
...
@@ -53,7 +53,6 @@ static struct cpuidle_driver armadaxp_idle_driver = {
.
exit_latency
=
10
,
.
power_usage
=
50
,
.
target_residency
=
100
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
name
=
"MV CPU IDLE"
,
.
desc
=
"CPU power down"
,
},
...
...
@@ -62,8 +61,7 @@ static struct cpuidle_driver armadaxp_idle_driver = {
.
exit_latency
=
100
,
.
power_usage
=
5
,
.
target_residency
=
1000
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
|
MVEBU_V7_FLAG_DEEP_IDLE
,
.
flags
=
MVEBU_V7_FLAG_DEEP_IDLE
,
.
name
=
"MV CPU DEEP IDLE"
,
.
desc
=
"CPU and L2 Fabric power down"
,
},
...
...
@@ -78,8 +76,7 @@ static struct cpuidle_driver armada370_idle_driver = {
.
exit_latency
=
100
,
.
power_usage
=
5
,
.
target_residency
=
1000
,
.
flags
=
(
CPUIDLE_FLAG_TIME_VALID
|
MVEBU_V7_FLAG_DEEP_IDLE
),
.
flags
=
MVEBU_V7_FLAG_DEEP_IDLE
,
.
name
=
"Deep Idle"
,
.
desc
=
"CPU and L2 Fabric power down"
,
},
...
...
@@ -94,7 +91,6 @@ static struct cpuidle_driver armada38x_idle_driver = {
.
exit_latency
=
10
,
.
power_usage
=
5
,
.
target_residency
=
100
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
name
=
"Idle"
,
.
desc
=
"CPU and SCU power down"
,
},
...
...
drivers/cpuidle/cpuidle-powernv.c
浏览文件 @
0a924200
...
...
@@ -93,7 +93,6 @@ static struct cpuidle_state powernv_states[MAX_POWERNV_IDLE_STATES] = {
{
/* Snooze */
.
name
=
"snooze"
,
.
desc
=
"snooze"
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
exit_latency
=
0
,
.
target_residency
=
0
,
.
enter
=
&
snooze_loop
},
...
...
@@ -202,7 +201,7 @@ static int powernv_add_idle_states(void)
/* Add NAP state */
strcpy
(
powernv_states
[
nr_idle_states
].
name
,
"Nap"
);
strcpy
(
powernv_states
[
nr_idle_states
].
desc
,
"Nap"
);
powernv_states
[
nr_idle_states
].
flags
=
CPUIDLE_FLAG_TIME_VALID
;
powernv_states
[
nr_idle_states
].
flags
=
0
;
powernv_states
[
nr_idle_states
].
exit_latency
=
((
unsigned
int
)
latency_ns
)
/
1000
;
powernv_states
[
nr_idle_states
].
target_residency
=
...
...
@@ -215,8 +214,7 @@ static int powernv_add_idle_states(void)
/* Add FASTSLEEP state */
strcpy
(
powernv_states
[
nr_idle_states
].
name
,
"FastSleep"
);
strcpy
(
powernv_states
[
nr_idle_states
].
desc
,
"FastSleep"
);
powernv_states
[
nr_idle_states
].
flags
=
CPUIDLE_FLAG_TIME_VALID
|
CPUIDLE_FLAG_TIMER_STOP
;
powernv_states
[
nr_idle_states
].
flags
=
CPUIDLE_FLAG_TIMER_STOP
;
powernv_states
[
nr_idle_states
].
exit_latency
=
((
unsigned
int
)
latency_ns
)
/
1000
;
powernv_states
[
nr_idle_states
].
target_residency
=
...
...
drivers/cpuidle/cpuidle-pseries.c
浏览文件 @
0a924200
...
...
@@ -142,14 +142,12 @@ static struct cpuidle_state dedicated_states[] = {
{
/* Snooze */
.
name
=
"snooze"
,
.
desc
=
"snooze"
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
exit_latency
=
0
,
.
target_residency
=
0
,
.
enter
=
&
snooze_loop
},
{
/* CEDE */
.
name
=
"CEDE"
,
.
desc
=
"CEDE"
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
exit_latency
=
10
,
.
target_residency
=
100
,
.
enter
=
&
dedicated_cede_loop
},
...
...
@@ -162,7 +160,6 @@ static struct cpuidle_state shared_states[] = {
{
/* Shared Cede */
.
name
=
"Shared Cede"
,
.
desc
=
"Shared Cede"
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
exit_latency
=
0
,
.
target_residency
=
0
,
.
enter
=
&
shared_cede_loop
},
...
...
drivers/cpuidle/cpuidle-ux500.c
浏览文件 @
0a924200
...
...
@@ -101,8 +101,7 @@ static struct cpuidle_driver ux500_idle_driver = {
.
enter
=
ux500_enter_idle
,
.
exit_latency
=
70
,
.
target_residency
=
260
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
|
CPUIDLE_FLAG_TIMER_STOP
,
.
flags
=
CPUIDLE_FLAG_TIMER_STOP
,
.
name
=
"ApIdle"
,
.
desc
=
"ARM Retention"
,
},
...
...
drivers/cpuidle/cpuidle-zynq.c
浏览文件 @
0a924200
...
...
@@ -52,7 +52,6 @@ static struct cpuidle_driver zynq_idle_driver = {
.
enter
=
zynq_enter_idle
,
.
exit_latency
=
10
,
.
target_residency
=
10000
,
.
flags
=
CPUIDLE_FLAG_TIME_VALID
,
.
name
=
"RAM_SR"
,
.
desc
=
"WFI and RAM Self Refresh"
,
},
...
...
drivers/cpuidle/driver.c
浏览文件 @
0a924200
...
...
@@ -201,7 +201,6 @@ static void poll_idle_init(struct cpuidle_driver *drv)
state
->
exit_latency
=
0
;
state
->
target_residency
=
0
;
state
->
power_usage
=
-
1
;
state
->
flags
=
CPUIDLE_FLAG_TIME_VALID
;
state
->
enter
=
poll_idle
;
state
->
disabled
=
false
;
}
...
...
drivers/cpuidle/dt_idle_states.c
浏览文件 @
0a924200
...
...
@@ -78,7 +78,7 @@ static int init_state_node(struct cpuidle_state *idle_state,
if
(
err
)
desc
=
state_node
->
name
;
idle_state
->
flags
=
CPUIDLE_FLAG_TIME_VALID
;
idle_state
->
flags
=
0
;
if
(
of_property_read_bool
(
state_node
,
"local-timer-stop"
))
idle_state
->
flags
|=
CPUIDLE_FLAG_TIMER_STOP
;
/*
...
...
drivers/cpuidle/governors/ladder.c
浏览文件 @
0a924200
...
...
@@ -79,7 +79,7 @@ static int ladder_select_state(struct cpuidle_driver *drv,
last_state
=
&
ldev
->
states
[
last_idx
];
if
(
drv
->
states
[
last_idx
].
flags
&
CPUIDLE_FLAG_TIME_VALID
)
{
if
(
!
(
drv
->
states
[
last_idx
].
flags
&
CPUIDLE_FLAG_TIME_INVALID
)
)
{
last_residency
=
cpuidle_get_last_residency
(
dev
)
-
\
drv
->
states
[
last_idx
].
exit_latency
;
}
...
...
drivers/cpuidle/governors/menu.c
浏览文件 @
0a924200
...
...
@@ -405,7 +405,7 @@ static void menu_update(struct cpuidle_driver *drv, struct cpuidle_device *dev)
* the measured amount of time is less than the exit latency,
* assume the state was never reached and the exit latency is 0.
*/
if
(
unlikely
(
!
(
target
->
flags
&
CPUIDLE_FLAG_TIME_VALID
)
))
{
if
(
unlikely
(
target
->
flags
&
CPUIDLE_FLAG_TIME_INVALID
))
{
/* Use timer value as is */
measured_us
=
data
->
next_timer_us
;
...
...
drivers/idle/intel_idle.c
浏览文件 @
0a924200
...
...
@@ -128,28 +128,28 @@ static struct cpuidle_state nehalem_cstates[] = {
{
.
name
=
"C1-NHM"
,
.
desc
=
"MWAIT 0x00"
,
.
flags
=
MWAIT2flg
(
0x00
)
|
CPUIDLE_FLAG_TIME_VALID
,
.
flags
=
MWAIT2flg
(
0x00
),
.
exit_latency
=
3
,
.
target_residency
=
6
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C1E-NHM"
,
.
desc
=
"MWAIT 0x01"
,
.
flags
=
MWAIT2flg
(
0x01
)
|
CPUIDLE_FLAG_TIME_VALID
,
.
flags
=
MWAIT2flg
(
0x01
),
.
exit_latency
=
10
,
.
target_residency
=
20
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C3-NHM"
,
.
desc
=
"MWAIT 0x10"
,
.
flags
=
MWAIT2flg
(
0x10
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x10
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
20
,
.
target_residency
=
80
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C6-NHM"
,
.
desc
=
"MWAIT 0x20"
,
.
flags
=
MWAIT2flg
(
0x20
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x20
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
200
,
.
target_residency
=
800
,
.
enter
=
&
intel_idle
},
...
...
@@ -161,35 +161,35 @@ static struct cpuidle_state snb_cstates[] = {
{
.
name
=
"C1-SNB"
,
.
desc
=
"MWAIT 0x00"
,
.
flags
=
MWAIT2flg
(
0x00
)
|
CPUIDLE_FLAG_TIME_VALID
,
.
flags
=
MWAIT2flg
(
0x00
),
.
exit_latency
=
2
,
.
target_residency
=
2
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C1E-SNB"
,
.
desc
=
"MWAIT 0x01"
,
.
flags
=
MWAIT2flg
(
0x01
)
|
CPUIDLE_FLAG_TIME_VALID
,
.
flags
=
MWAIT2flg
(
0x01
),
.
exit_latency
=
10
,
.
target_residency
=
20
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C3-SNB"
,
.
desc
=
"MWAIT 0x10"
,
.
flags
=
MWAIT2flg
(
0x10
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x10
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
80
,
.
target_residency
=
211
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C6-SNB"
,
.
desc
=
"MWAIT 0x20"
,
.
flags
=
MWAIT2flg
(
0x20
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x20
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
104
,
.
target_residency
=
345
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C7-SNB"
,
.
desc
=
"MWAIT 0x30"
,
.
flags
=
MWAIT2flg
(
0x30
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x30
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
109
,
.
target_residency
=
345
,
.
enter
=
&
intel_idle
},
...
...
@@ -201,42 +201,42 @@ static struct cpuidle_state byt_cstates[] = {
{
.
name
=
"C1-BYT"
,
.
desc
=
"MWAIT 0x00"
,
.
flags
=
MWAIT2flg
(
0x00
)
|
CPUIDLE_FLAG_TIME_VALID
,
.
flags
=
MWAIT2flg
(
0x00
),
.
exit_latency
=
1
,
.
target_residency
=
1
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C1E-BYT"
,
.
desc
=
"MWAIT 0x01"
,
.
flags
=
MWAIT2flg
(
0x01
)
|
CPUIDLE_FLAG_TIME_VALID
,
.
flags
=
MWAIT2flg
(
0x01
),
.
exit_latency
=
15
,
.
target_residency
=
30
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C6N-BYT"
,
.
desc
=
"MWAIT 0x58"
,
.
flags
=
MWAIT2flg
(
0x58
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x58
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
40
,
.
target_residency
=
275
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C6S-BYT"
,
.
desc
=
"MWAIT 0x52"
,
.
flags
=
MWAIT2flg
(
0x52
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x52
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
140
,
.
target_residency
=
560
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C7-BYT"
,
.
desc
=
"MWAIT 0x60"
,
.
flags
=
MWAIT2flg
(
0x60
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x60
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
1200
,
.
target_residency
=
1500
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C7S-BYT"
,
.
desc
=
"MWAIT 0x64"
,
.
flags
=
MWAIT2flg
(
0x64
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x64
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
10000
,
.
target_residency
=
20000
,
.
enter
=
&
intel_idle
},
...
...
@@ -248,35 +248,35 @@ static struct cpuidle_state ivb_cstates[] = {
{
.
name
=
"C1-IVB"
,
.
desc
=
"MWAIT 0x00"
,
.
flags
=
MWAIT2flg
(
0x00
)
|
CPUIDLE_FLAG_TIME_VALID
,
.
flags
=
MWAIT2flg
(
0x00
),
.
exit_latency
=
1
,
.
target_residency
=
1
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C1E-IVB"
,
.
desc
=
"MWAIT 0x01"
,
.
flags
=
MWAIT2flg
(
0x01
)
|
CPUIDLE_FLAG_TIME_VALID
,
.
flags
=
MWAIT2flg
(
0x01
),
.
exit_latency
=
10
,
.
target_residency
=
20
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C3-IVB"
,
.
desc
=
"MWAIT 0x10"
,
.
flags
=
MWAIT2flg
(
0x10
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x10
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
59
,
.
target_residency
=
156
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C6-IVB"
,
.
desc
=
"MWAIT 0x20"
,
.
flags
=
MWAIT2flg
(
0x20
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x20
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
80
,
.
target_residency
=
300
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C7-IVB"
,
.
desc
=
"MWAIT 0x30"
,
.
flags
=
MWAIT2flg
(
0x30
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x30
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
87
,
.
target_residency
=
300
,
.
enter
=
&
intel_idle
},
...
...
@@ -288,28 +288,28 @@ static struct cpuidle_state ivt_cstates[] = {
{
.
name
=
"C1-IVT"
,
.
desc
=
"MWAIT 0x00"
,
.
flags
=
MWAIT2flg
(
0x00
)
|
CPUIDLE_FLAG_TIME_VALID
,
.
flags
=
MWAIT2flg
(
0x00
),
.
exit_latency
=
1
,
.
target_residency
=
1
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C1E-IVT"
,
.
desc
=
"MWAIT 0x01"
,
.
flags
=
MWAIT2flg
(
0x01
)
|
CPUIDLE_FLAG_TIME_VALID
,
.
flags
=
MWAIT2flg
(
0x01
),
.
exit_latency
=
10
,
.
target_residency
=
80
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C3-IVT"
,
.
desc
=
"MWAIT 0x10"
,
.
flags
=
MWAIT2flg
(
0x10
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x10
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
59
,
.
target_residency
=
156
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C6-IVT"
,
.
desc
=
"MWAIT 0x20"
,
.
flags
=
MWAIT2flg
(
0x20
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x20
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
82
,
.
target_residency
=
300
,
.
enter
=
&
intel_idle
},
...
...
@@ -321,28 +321,28 @@ static struct cpuidle_state ivt_cstates_4s[] = {
{
.
name
=
"C1-IVT-4S"
,
.
desc
=
"MWAIT 0x00"
,
.
flags
=
MWAIT2flg
(
0x00
)
|
CPUIDLE_FLAG_TIME_VALID
,
.
flags
=
MWAIT2flg
(
0x00
),
.
exit_latency
=
1
,
.
target_residency
=
1
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C1E-IVT-4S"
,
.
desc
=
"MWAIT 0x01"
,
.
flags
=
MWAIT2flg
(
0x01
)
|
CPUIDLE_FLAG_TIME_VALID
,
.
flags
=
MWAIT2flg
(
0x01
),
.
exit_latency
=
10
,
.
target_residency
=
250
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C3-IVT-4S"
,
.
desc
=
"MWAIT 0x10"
,
.
flags
=
MWAIT2flg
(
0x10
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x10
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
59
,
.
target_residency
=
300
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C6-IVT-4S"
,
.
desc
=
"MWAIT 0x20"
,
.
flags
=
MWAIT2flg
(
0x20
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x20
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
84
,
.
target_residency
=
400
,
.
enter
=
&
intel_idle
},
...
...
@@ -354,28 +354,28 @@ static struct cpuidle_state ivt_cstates_8s[] = {
{
.
name
=
"C1-IVT-8S"
,
.
desc
=
"MWAIT 0x00"
,
.
flags
=
MWAIT2flg
(
0x00
)
|
CPUIDLE_FLAG_TIME_VALID
,
.
flags
=
MWAIT2flg
(
0x00
),
.
exit_latency
=
1
,
.
target_residency
=
1
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C1E-IVT-8S"
,
.
desc
=
"MWAIT 0x01"
,
.
flags
=
MWAIT2flg
(
0x01
)
|
CPUIDLE_FLAG_TIME_VALID
,
.
flags
=
MWAIT2flg
(
0x01
),
.
exit_latency
=
10
,
.
target_residency
=
500
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C3-IVT-8S"
,
.
desc
=
"MWAIT 0x10"
,
.
flags
=
MWAIT2flg
(
0x10
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x10
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
59
,
.
target_residency
=
600
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C6-IVT-8S"
,
.
desc
=
"MWAIT 0x20"
,
.
flags
=
MWAIT2flg
(
0x20
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x20
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
88
,
.
target_residency
=
700
,
.
enter
=
&
intel_idle
},
...
...
@@ -387,56 +387,56 @@ static struct cpuidle_state hsw_cstates[] = {
{
.
name
=
"C1-HSW"
,
.
desc
=
"MWAIT 0x00"
,
.
flags
=
MWAIT2flg
(
0x00
)
|
CPUIDLE_FLAG_TIME_VALID
,
.
flags
=
MWAIT2flg
(
0x00
),
.
exit_latency
=
2
,
.
target_residency
=
2
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C1E-HSW"
,
.
desc
=
"MWAIT 0x01"
,
.
flags
=
MWAIT2flg
(
0x01
)
|
CPUIDLE_FLAG_TIME_VALID
,
.
flags
=
MWAIT2flg
(
0x01
),
.
exit_latency
=
10
,
.
target_residency
=
20
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C3-HSW"
,
.
desc
=
"MWAIT 0x10"
,
.
flags
=
MWAIT2flg
(
0x10
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x10
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
33
,
.
target_residency
=
100
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C6-HSW"
,
.
desc
=
"MWAIT 0x20"
,
.
flags
=
MWAIT2flg
(
0x20
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x20
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
133
,
.
target_residency
=
400
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C7s-HSW"
,
.
desc
=
"MWAIT 0x32"
,
.
flags
=
MWAIT2flg
(
0x32
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x32
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
166
,
.
target_residency
=
500
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C8-HSW"
,
.
desc
=
"MWAIT 0x40"
,
.
flags
=
MWAIT2flg
(
0x40
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x40
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
300
,
.
target_residency
=
900
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C9-HSW"
,
.
desc
=
"MWAIT 0x50"
,
.
flags
=
MWAIT2flg
(
0x50
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x50
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
600
,
.
target_residency
=
1800
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C10-HSW"
,
.
desc
=
"MWAIT 0x60"
,
.
flags
=
MWAIT2flg
(
0x60
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x60
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
2600
,
.
target_residency
=
7700
,
.
enter
=
&
intel_idle
},
...
...
@@ -447,56 +447,56 @@ static struct cpuidle_state bdw_cstates[] = {
{
.
name
=
"C1-BDW"
,
.
desc
=
"MWAIT 0x00"
,
.
flags
=
MWAIT2flg
(
0x00
)
|
CPUIDLE_FLAG_TIME_VALID
,
.
flags
=
MWAIT2flg
(
0x00
),
.
exit_latency
=
2
,
.
target_residency
=
2
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C1E-BDW"
,
.
desc
=
"MWAIT 0x01"
,
.
flags
=
MWAIT2flg
(
0x01
)
|
CPUIDLE_FLAG_TIME_VALID
,
.
flags
=
MWAIT2flg
(
0x01
),
.
exit_latency
=
10
,
.
target_residency
=
20
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C3-BDW"
,
.
desc
=
"MWAIT 0x10"
,
.
flags
=
MWAIT2flg
(
0x10
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x10
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
40
,
.
target_residency
=
100
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C6-BDW"
,
.
desc
=
"MWAIT 0x20"
,
.
flags
=
MWAIT2flg
(
0x20
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x20
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
133
,
.
target_residency
=
400
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C7s-BDW"
,
.
desc
=
"MWAIT 0x32"
,
.
flags
=
MWAIT2flg
(
0x32
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x32
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
166
,
.
target_residency
=
500
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C8-BDW"
,
.
desc
=
"MWAIT 0x40"
,
.
flags
=
MWAIT2flg
(
0x40
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x40
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
300
,
.
target_residency
=
900
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C9-BDW"
,
.
desc
=
"MWAIT 0x50"
,
.
flags
=
MWAIT2flg
(
0x50
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x50
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
600
,
.
target_residency
=
1800
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C10-BDW"
,
.
desc
=
"MWAIT 0x60"
,
.
flags
=
MWAIT2flg
(
0x60
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x60
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
2600
,
.
target_residency
=
7700
,
.
enter
=
&
intel_idle
},
...
...
@@ -508,28 +508,28 @@ static struct cpuidle_state atom_cstates[] = {
{
.
name
=
"C1E-ATM"
,
.
desc
=
"MWAIT 0x00"
,
.
flags
=
MWAIT2flg
(
0x00
)
|
CPUIDLE_FLAG_TIME_VALID
,
.
flags
=
MWAIT2flg
(
0x00
),
.
exit_latency
=
10
,
.
target_residency
=
20
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C2-ATM"
,
.
desc
=
"MWAIT 0x10"
,
.
flags
=
MWAIT2flg
(
0x10
)
|
CPUIDLE_FLAG_TIME_VALID
,
.
flags
=
MWAIT2flg
(
0x10
),
.
exit_latency
=
20
,
.
target_residency
=
80
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C4-ATM"
,
.
desc
=
"MWAIT 0x30"
,
.
flags
=
MWAIT2flg
(
0x30
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x30
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
100
,
.
target_residency
=
400
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C6-ATM"
,
.
desc
=
"MWAIT 0x52"
,
.
flags
=
MWAIT2flg
(
0x52
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x52
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
140
,
.
target_residency
=
560
,
.
enter
=
&
intel_idle
},
...
...
@@ -540,14 +540,14 @@ static struct cpuidle_state avn_cstates[] = {
{
.
name
=
"C1-AVN"
,
.
desc
=
"MWAIT 0x00"
,
.
flags
=
MWAIT2flg
(
0x00
)
|
CPUIDLE_FLAG_TIME_VALID
,
.
flags
=
MWAIT2flg
(
0x00
),
.
exit_latency
=
2
,
.
target_residency
=
2
,
.
enter
=
&
intel_idle
},
{
.
name
=
"C6-AVN"
,
.
desc
=
"MWAIT 0x51"
,
.
flags
=
MWAIT2flg
(
0x51
)
|
CPUIDLE_FLAG_T
IME_VALID
|
CPUIDLE_FLAG_T
LB_FLUSHED
,
.
flags
=
MWAIT2flg
(
0x51
)
|
CPUIDLE_FLAG_TLB_FLUSHED
,
.
exit_latency
=
15
,
.
target_residency
=
45
,
.
enter
=
&
intel_idle
},
...
...
include/linux/cpuidle.h
浏览文件 @
0a924200
...
...
@@ -53,7 +53,7 @@ struct cpuidle_state {
};
/* Idle State Flags */
#define CPUIDLE_FLAG_TIME_VALID (0x01)
/* is residency time measurable? */
#define CPUIDLE_FLAG_TIME_
IN
VALID (0x01)
/* is residency time measurable? */
#define CPUIDLE_FLAG_COUPLED (0x02)
/* state applies to multiple cpus */
#define CPUIDLE_FLAG_TIMER_STOP (0x04)
/* timer is stopped on this state */
...
...
@@ -90,7 +90,7 @@ DECLARE_PER_CPU(struct cpuidle_device, cpuidle_dev);
* cpuidle_get_last_residency - retrieves the last state's residency time
* @dev: the target CPU
*
* NOTE: this value is invalid if CPUIDLE_FLAG_TIME_
VALID isn't
set
* NOTE: this value is invalid if CPUIDLE_FLAG_TIME_
INVALID is
set
*/
static
inline
int
cpuidle_get_last_residency
(
struct
cpuidle_device
*
dev
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录