Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
309ddc53
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
162
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看板
提交
309ddc53
编写于
15年前
作者:
L
Len Brown
浏览文件
操作
浏览文件
下载
差异文件
Merge branches 'bugzilla-14446', 'bugzilla-14753' and 'bugzilla-14824' into release
上级
6f5464ce
55b313f2
81074e90
78f16996
master
alk-4.19.24
alk-4.19.30
alk-4.19.34
alk-4.19.36
alk-4.19.43
alk-4.19.48
alk-4.19.57
ck-4.19.67
ck-4.19.81
ck-4.19.91
github/fork/deepanshu1422/fix-typo-in-comment
github/fork/haosdent/fix-typo
linux-next
v4.19.91
v4.19.90
v4.19.89
v4.19.88
v4.19.87
v4.19.86
v4.19.85
v4.19.84
v4.19.83
v4.19.82
v4.19.81
v4.19.80
v4.19.79
v4.19.78
v4.19.77
v4.19.76
v4.19.75
v4.19.74
v4.19.73
v4.19.72
v4.19.71
v4.19.70
v4.19.69
v4.19.68
v4.19.67
v4.19.66
v4.19.65
v4.19.64
v4.19.63
v4.19.62
v4.19.61
v4.19.60
v4.19.59
v4.19.58
v4.19.57
v4.19.56
v4.19.55
v4.19.54
v4.19.53
v4.19.52
v4.19.51
v4.19.50
v4.19.49
v4.19.48
v4.19.47
v4.19.46
v4.19.45
v4.19.44
v4.19.43
v4.19.42
v4.19.41
v4.19.40
v4.19.39
v4.19.38
v4.19.37
v4.19.36
v4.19.35
v4.19.34
v4.19.33
v4.19.32
v4.19.31
v4.19.30
v4.19.29
v4.19.28
v4.19.27
v4.19.26
v4.19.25
v4.19.24
v4.19.23
v4.19.22
v4.19.21
v4.19.20
v4.19.19
v4.19.18
v4.19.17
v4.19.16
v4.19.15
v4.19.14
v4.19.13
v4.19.12
v4.19.11
v4.19.10
v4.19.9
v4.19.8
v4.19.7
v4.19.6
v4.19.5
v4.19.4
v4.19.3
v4.19.2
v4.19.1
v4.19
v4.19-rc8
v4.19-rc7
v4.19-rc6
v4.19-rc5
v4.19-rc4
v4.19-rc3
v4.19-rc2
v4.19-rc1
ck-release-21
ck-release-20
ck-release-19.2
ck-release-19.1
ck-release-19
ck-release-18
ck-release-17.2
ck-release-17.1
ck-release-17
ck-release-16
ck-release-15.1
ck-release-15
ck-release-14
ck-release-13.2
ck-release-13
ck-release-12
ck-release-11
ck-release-10
ck-release-9
ck-release-7
alk-release-15
alk-release-14
alk-release-13.2
alk-release-13
alk-release-12
alk-release-11
alk-release-10
alk-release-9
alk-release-7
无相关合并请求
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
137 addition
and
71 deletion
+137
-71
drivers/acpi/Makefile
drivers/acpi/Makefile
+1
-0
drivers/acpi/blacklist.c
drivers/acpi/blacklist.c
+14
-0
drivers/acpi/bus.c
drivers/acpi/bus.c
+2
-0
drivers/acpi/ec.c
drivers/acpi/ec.c
+8
-2
drivers/acpi/internal.h
drivers/acpi/internal.h
+1
-0
drivers/acpi/processor_core.c
drivers/acpi/processor_core.c
+0
-69
drivers/acpi/processor_pdc.c
drivers/acpi/processor_pdc.c
+108
-0
include/acpi/processor.h
include/acpi/processor.h
+3
-0
未找到文件。
drivers/acpi/Makefile
浏览文件 @
309ddc53
...
...
@@ -32,6 +32,7 @@ acpi-$(CONFIG_ACPI_SLEEP) += proc.o
#
acpi-y
+=
bus.o glue.o
acpi-y
+=
scan.o
acpi-y
+=
processor_pdc.o
acpi-y
+=
ec.o
acpi-$(CONFIG_ACPI_DOCK)
+=
dock.o
acpi-y
+=
pci_root.o pci_link.o pci_irq.o pci_bind.o
...
...
This diff is collapsed.
Click to expand it.
drivers/acpi/blacklist.c
浏览文件 @
309ddc53
...
...
@@ -185,6 +185,12 @@ static int __init dmi_disable_osi_vista(const struct dmi_system_id *d)
acpi_osi_setup
(
"!Windows 2006"
);
return
0
;
}
static
int
__init
dmi_disable_osi_win7
(
const
struct
dmi_system_id
*
d
)
{
printk
(
KERN_NOTICE
PREFIX
"DMI detected: %s
\n
"
,
d
->
ident
);
acpi_osi_setup
(
"!Windows 2009"
);
return
0
;
}
static
struct
dmi_system_id
acpi_osi_dmi_table
[]
__initdata
=
{
{
...
...
@@ -211,6 +217,14 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = {
DMI_MATCH
(
DMI_PRODUCT_NAME
,
"Sony VGN-SR290J"
),
},
},
{
.
callback
=
dmi_disable_osi_win7
,
.
ident
=
"ASUS K50IJ"
,
.
matches
=
{
DMI_MATCH
(
DMI_SYS_VENDOR
,
"ASUSTeK Computer Inc."
),
DMI_MATCH
(
DMI_PRODUCT_NAME
,
"K50IJ"
),
},
},
/*
* BIOS invocation of _OSI(Linux) is almost always a BIOS bug.
...
...
This diff is collapsed.
Click to expand it.
drivers/acpi/bus.c
浏览文件 @
309ddc53
...
...
@@ -898,6 +898,8 @@ static int __init acpi_bus_init(void)
goto
error1
;
}
acpi_early_processor_set_pdc
();
/*
* Maybe EC region is required at bus_scan/acpi_get_devices. So it
* is necessary to enable it as early as possible.
...
...
This diff is collapsed.
Click to expand it.
drivers/acpi/ec.c
浏览文件 @
309ddc53
...
...
@@ -916,6 +916,7 @@ static int ec_validate_ecdt(const struct dmi_system_id *id)
/* MSI EC needs special treatment, enable it */
static
int
ec_flag_msi
(
const
struct
dmi_system_id
*
id
)
{
printk
(
KERN_DEBUG
PREFIX
"Detected MSI hardware, enabling workarounds.
\n
"
);
EC_FLAGS_MSI
=
1
;
EC_FLAGS_VALIDATE_ECDT
=
1
;
return
0
;
...
...
@@ -928,8 +929,13 @@ static struct dmi_system_id __initdata ec_dmi_table[] = {
DMI_MATCH
(
DMI_BOARD_NAME
,
"JFL92"
)
},
NULL
},
{
ec_flag_msi
,
"MSI hardware"
,
{
DMI_MATCH
(
DMI_BIOS_VENDOR
,
"Micro-Star"
),
DMI_MATCH
(
DMI_CHASSIS_VENDOR
,
"MICRO-Star"
)
},
NULL
},
DMI_MATCH
(
DMI_BIOS_VENDOR
,
"Micro-Star"
)},
NULL
},
{
ec_flag_msi
,
"MSI hardware"
,
{
DMI_MATCH
(
DMI_SYS_VENDOR
,
"Micro-Star"
)},
NULL
},
{
ec_flag_msi
,
"MSI hardware"
,
{
DMI_MATCH
(
DMI_CHASSIS_VENDOR
,
"MICRO-Star"
)},
NULL
},
{
ec_validate_ecdt
,
"ASUS hardware"
,
{
DMI_MATCH
(
DMI_BIOS_VENDOR
,
"ASUS"
)
},
NULL
},
...
...
This diff is collapsed.
Click to expand it.
drivers/acpi/internal.h
浏览文件 @
309ddc53
...
...
@@ -43,6 +43,7 @@ int acpi_power_transition(struct acpi_device *device, int state);
extern
int
acpi_power_nocheck
;
int
acpi_wakeup_device_init
(
void
);
void
acpi_early_processor_set_pdc
(
void
);
/* --------------------------------------------------------------------------
Embedded Controller
...
...
This diff is collapsed.
Click to expand it.
drivers/acpi/processor_core.c
浏览文件 @
309ddc53
...
...
@@ -124,29 +124,6 @@ static const struct file_operations acpi_processor_info_fops = {
DEFINE_PER_CPU
(
struct
acpi_processor
*
,
processors
);
struct
acpi_processor_errata
errata
__read_mostly
;
static
int
set_no_mwait
(
const
struct
dmi_system_id
*
id
)
{
printk
(
KERN_NOTICE
PREFIX
"%s detected - "
"disabling mwait for CPU C-states
\n
"
,
id
->
ident
);
idle_nomwait
=
1
;
return
0
;
}
static
struct
dmi_system_id
__cpuinitdata
processor_idle_dmi_table
[]
=
{
{
set_no_mwait
,
"IFL91 board"
,
{
DMI_MATCH
(
DMI_BIOS_VENDOR
,
"COMPAL"
),
DMI_MATCH
(
DMI_SYS_VENDOR
,
"ZEPTO"
),
DMI_MATCH
(
DMI_PRODUCT_VERSION
,
"3215W"
),
DMI_MATCH
(
DMI_BOARD_NAME
,
"IFL91"
)
},
NULL
},
{
set_no_mwait
,
"Extensa 5220"
,
{
DMI_MATCH
(
DMI_BIOS_VENDOR
,
"Phoenix Technologies LTD"
),
DMI_MATCH
(
DMI_SYS_VENDOR
,
"Acer"
),
DMI_MATCH
(
DMI_PRODUCT_VERSION
,
"0100"
),
DMI_MATCH
(
DMI_BOARD_NAME
,
"Columbia"
)
},
NULL
},
{},
};
/* --------------------------------------------------------------------------
Errata Handling
...
...
@@ -276,45 +253,6 @@ static int acpi_processor_errata(struct acpi_processor *pr)
return
result
;
}
/* --------------------------------------------------------------------------
Common ACPI processor functions
-------------------------------------------------------------------------- */
/*
* _PDC is required for a BIOS-OS handshake for most of the newer
* ACPI processor features.
*/
static
int
acpi_processor_set_pdc
(
struct
acpi_processor
*
pr
)
{
struct
acpi_object_list
*
pdc_in
=
pr
->
pdc
;
acpi_status
status
=
AE_OK
;
if
(
!
pdc_in
)
return
status
;
if
(
idle_nomwait
)
{
/*
* If mwait is disabled for CPU C-states, the C2C3_FFH access
* mode will be disabled in the parameter of _PDC object.
* Of course C1_FFH access mode will also be disabled.
*/
union
acpi_object
*
obj
;
u32
*
buffer
=
NULL
;
obj
=
pdc_in
->
pointer
;
buffer
=
(
u32
*
)(
obj
->
buffer
.
pointer
);
buffer
[
2
]
&=
~
(
ACPI_PDC_C_C2C3_FFH
|
ACPI_PDC_C_C1_FFH
);
}
status
=
acpi_evaluate_object
(
pr
->
handle
,
"_PDC"
,
pdc_in
,
NULL
);
if
(
ACPI_FAILURE
(
status
))
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Could not evaluate _PDC, using legacy perf. control...
\n
"
));
return
status
;
}
/* --------------------------------------------------------------------------
FS Interface (/proc)
-------------------------------------------------------------------------- */
...
...
@@ -825,9 +763,7 @@ static int __cpuinit acpi_processor_add(struct acpi_device *device)
}
/* _PDC call should be done before doing anything else (if reqd.). */
arch_acpi_processor_init_pdc
(
pr
);
acpi_processor_set_pdc
(
pr
);
arch_acpi_processor_cleanup_pdc
(
pr
);
#ifdef CONFIG_CPU_FREQ
acpi_processor_ppc_has_changed
(
pr
,
0
);
...
...
@@ -1145,11 +1081,6 @@ static int __init acpi_processor_init(void)
if
(
!
acpi_processor_dir
)
return
-
ENOMEM
;
#endif
/*
* Check whether the system is DMI table. If yes, OSPM
* should not use mwait for CPU-states.
*/
dmi_check_system
(
processor_idle_dmi_table
);
result
=
cpuidle_register_driver
(
&
acpi_idle_driver
);
if
(
result
<
0
)
goto
out_proc
;
...
...
This diff is collapsed.
Click to expand it.
drivers/acpi/processor_pdc.c
0 → 100644
浏览文件 @
309ddc53
#include <linux/dmi.h>
#include <acpi/acpi_drivers.h>
#include <acpi/processor.h>
#include "internal.h"
#define PREFIX "ACPI: "
#define _COMPONENT ACPI_PROCESSOR_COMPONENT
ACPI_MODULE_NAME
(
"processor_pdc"
);
static
int
set_no_mwait
(
const
struct
dmi_system_id
*
id
)
{
printk
(
KERN_NOTICE
PREFIX
"%s detected - "
"disabling mwait for CPU C-states
\n
"
,
id
->
ident
);
idle_nomwait
=
1
;
return
0
;
}
static
struct
dmi_system_id
__cpuinitdata
processor_idle_dmi_table
[]
=
{
{
set_no_mwait
,
"IFL91 board"
,
{
DMI_MATCH
(
DMI_BIOS_VENDOR
,
"COMPAL"
),
DMI_MATCH
(
DMI_SYS_VENDOR
,
"ZEPTO"
),
DMI_MATCH
(
DMI_PRODUCT_VERSION
,
"3215W"
),
DMI_MATCH
(
DMI_BOARD_NAME
,
"IFL91"
)
},
NULL
},
{
set_no_mwait
,
"Extensa 5220"
,
{
DMI_MATCH
(
DMI_BIOS_VENDOR
,
"Phoenix Technologies LTD"
),
DMI_MATCH
(
DMI_SYS_VENDOR
,
"Acer"
),
DMI_MATCH
(
DMI_PRODUCT_VERSION
,
"0100"
),
DMI_MATCH
(
DMI_BOARD_NAME
,
"Columbia"
)
},
NULL
},
{},
};
/*
* _PDC is required for a BIOS-OS handshake for most of the newer
* ACPI processor features.
*/
static
int
acpi_processor_eval_pdc
(
struct
acpi_processor
*
pr
)
{
struct
acpi_object_list
*
pdc_in
=
pr
->
pdc
;
acpi_status
status
=
AE_OK
;
if
(
!
pdc_in
)
return
status
;
if
(
idle_nomwait
)
{
/*
* If mwait is disabled for CPU C-states, the C2C3_FFH access
* mode will be disabled in the parameter of _PDC object.
* Of course C1_FFH access mode will also be disabled.
*/
union
acpi_object
*
obj
;
u32
*
buffer
=
NULL
;
obj
=
pdc_in
->
pointer
;
buffer
=
(
u32
*
)(
obj
->
buffer
.
pointer
);
buffer
[
2
]
&=
~
(
ACPI_PDC_C_C2C3_FFH
|
ACPI_PDC_C_C1_FFH
);
}
status
=
acpi_evaluate_object
(
pr
->
handle
,
"_PDC"
,
pdc_in
,
NULL
);
if
(
ACPI_FAILURE
(
status
))
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Could not evaluate _PDC, using legacy perf. control.
\n
"
));
return
status
;
}
void
acpi_processor_set_pdc
(
struct
acpi_processor
*
pr
)
{
arch_acpi_processor_init_pdc
(
pr
);
acpi_processor_eval_pdc
(
pr
);
arch_acpi_processor_cleanup_pdc
(
pr
);
}
EXPORT_SYMBOL_GPL
(
acpi_processor_set_pdc
);
static
acpi_status
early_init_pdc
(
acpi_handle
handle
,
u32
lvl
,
void
*
context
,
void
**
rv
)
{
struct
acpi_processor
pr
;
pr
.
handle
=
handle
;
/* x86 implementation looks at pr.id to determine some
* CPU capabilites. We can just hard code to 0 since we're
* assuming the CPUs in the system are homogenous and all
* have the same capabilities.
*/
pr
.
id
=
0
;
acpi_processor_set_pdc
(
&
pr
);
return
AE_OK
;
}
void
acpi_early_processor_set_pdc
(
void
)
{
/*
* Check whether the system is DMI table. If yes, OSPM
* should not use mwait for CPU-states.
*/
dmi_check_system
(
processor_idle_dmi_table
);
acpi_walk_namespace
(
ACPI_TYPE_PROCESSOR
,
ACPI_ROOT_OBJECT
,
ACPI_UINT32_MAX
,
early_init_pdc
,
NULL
,
NULL
,
NULL
);
}
This diff is collapsed.
Click to expand it.
include/acpi/processor.h
浏览文件 @
309ddc53
...
...
@@ -325,6 +325,9 @@ static inline int acpi_processor_get_bios_limit(int cpu, unsigned int *limit)
#endif
/* CONFIG_CPU_FREQ */
/* in processor_pdc.c */
void
acpi_processor_set_pdc
(
struct
acpi_processor
*
pr
);
/* in processor_throttling.c */
int
acpi_processor_tstate_has_changed
(
struct
acpi_processor
*
pr
);
int
acpi_processor_get_throttling_info
(
struct
acpi_processor
*
pr
);
...
...
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录
反馈
建议
客服
返回
顶部