Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
e82b7457
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看板
提交
e82b7457
编写于
5年前
作者:
R
Rafael J. Wysocki
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'pm-cpufreq'
* pm-cpufreq: ACPI: processor: Add QoS requests for all CPUs
上级
767d2d71
a1bb46c3
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
42 addition
and
26 deletion
+42
-26
drivers/acpi/processor_perflib.c
drivers/acpi/processor_perflib.c
+21
-13
drivers/acpi/processor_thermal.c
drivers/acpi/processor_thermal.c
+21
-13
未找到文件。
drivers/acpi/processor_perflib.c
浏览文件 @
e82b7457
...
...
@@ -159,26 +159,34 @@ void acpi_processor_ignore_ppc_init(void)
void
acpi_processor_ppc_init
(
struct
cpufreq_policy
*
policy
)
{
int
cpu
=
policy
->
cpu
;
struct
acpi_processor
*
pr
=
per_cpu
(
processors
,
cpu
);
int
ret
;
unsigned
int
cpu
;
if
(
!
pr
)
return
;
for_each_cpu
(
cpu
,
policy
->
related_cpus
)
{
struct
acpi_processor
*
pr
=
per_cpu
(
processors
,
cpu
);
int
ret
;
if
(
!
pr
)
continue
;
ret
=
freq_qos_add_request
(
&
policy
->
constraints
,
&
pr
->
perflib_req
,
FREQ_QOS_MAX
,
INT_MAX
);
if
(
ret
<
0
)
pr_err
(
"Failed to add freq constraint for CPU%d (%d)
\n
"
,
cpu
,
ret
);
ret
=
freq_qos_add_request
(
&
policy
->
constraints
,
&
pr
->
perflib_req
,
FREQ_QOS_MAX
,
INT_MAX
);
if
(
ret
<
0
)
pr_err
(
"Failed to add freq constraint for CPU%d (%d)
\n
"
,
cpu
,
ret
);
}
}
void
acpi_processor_ppc_exit
(
struct
cpufreq_policy
*
policy
)
{
struct
acpi_processor
*
pr
=
per_cpu
(
processors
,
policy
->
cpu
)
;
unsigned
int
cpu
;
if
(
pr
)
freq_qos_remove_request
(
&
pr
->
perflib_req
);
for_each_cpu
(
cpu
,
policy
->
related_cpus
)
{
struct
acpi_processor
*
pr
=
per_cpu
(
processors
,
cpu
);
if
(
pr
)
freq_qos_remove_request
(
&
pr
->
perflib_req
);
}
}
static
int
acpi_processor_get_performance_control
(
struct
acpi_processor
*
pr
)
...
...
This diff is collapsed.
Click to expand it.
drivers/acpi/processor_thermal.c
浏览文件 @
e82b7457
...
...
@@ -127,26 +127,34 @@ static int cpufreq_set_cur_state(unsigned int cpu, int state)
void
acpi_thermal_cpufreq_init
(
struct
cpufreq_policy
*
policy
)
{
int
cpu
=
policy
->
cpu
;
struct
acpi_processor
*
pr
=
per_cpu
(
processors
,
cpu
);
int
ret
;
unsigned
int
cpu
;
if
(
!
pr
)
return
;
for_each_cpu
(
cpu
,
policy
->
related_cpus
)
{
struct
acpi_processor
*
pr
=
per_cpu
(
processors
,
cpu
);
int
ret
;
if
(
!
pr
)
continue
;
ret
=
freq_qos_add_request
(
&
policy
->
constraints
,
&
pr
->
thermal_req
,
FREQ_QOS_MAX
,
INT_MAX
);
if
(
ret
<
0
)
pr_err
(
"Failed to add freq constraint for CPU%d (%d)
\n
"
,
cpu
,
ret
);
ret
=
freq_qos_add_request
(
&
policy
->
constraints
,
&
pr
->
thermal_req
,
FREQ_QOS_MAX
,
INT_MAX
);
if
(
ret
<
0
)
pr_err
(
"Failed to add freq constraint for CPU%d (%d)
\n
"
,
cpu
,
ret
);
}
}
void
acpi_thermal_cpufreq_exit
(
struct
cpufreq_policy
*
policy
)
{
struct
acpi_processor
*
pr
=
per_cpu
(
processors
,
policy
->
cpu
);
unsigned
int
cpu
;
for_each_cpu
(
cpu
,
policy
->
related_cpus
)
{
struct
acpi_processor
*
pr
=
per_cpu
(
processors
,
policy
->
cpu
);
if
(
pr
)
freq_qos_remove_request
(
&
pr
->
thermal_req
);
if
(
pr
)
freq_qos_remove_request
(
&
pr
->
thermal_req
);
}
}
#else
/* ! CONFIG_CPU_FREQ */
static
int
cpufreq_get_max_state
(
unsigned
int
cpu
)
...
...
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录
新手
引导
客服
返回
顶部