Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
fcf75356
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 3 年多
通知
13
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
fcf75356
编写于
6月 02, 2007
作者:
L
Len Brown
浏览文件
操作
浏览文件
下载
差异文件
Pull now into release branch
上级
f285e3d3
6287ee32
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
125 addition
and
112 deletion
+125
-112
Documentation/thinkpad-acpi.txt
Documentation/thinkpad-acpi.txt
+11
-14
drivers/acpi/numa.c
drivers/acpi/numa.c
+1
-1
drivers/acpi/tables/tbinstal.c
drivers/acpi/tables/tbinstal.c
+4
-4
drivers/acpi/thermal.c
drivers/acpi/thermal.c
+7
-6
drivers/acpi/utilities/utcopy.c
drivers/acpi/utilities/utcopy.c
+50
-70
drivers/acpi/utilities/utobject.c
drivers/acpi/utilities/utobject.c
+42
-0
drivers/misc/thinkpad_acpi.c
drivers/misc/thinkpad_acpi.c
+7
-10
drivers/misc/thinkpad_acpi.h
drivers/misc/thinkpad_acpi.h
+0
-6
include/acpi/acpi_numa.h
include/acpi/acpi_numa.h
+1
-1
include/acpi/acutils.h
include/acpi/acutils.h
+2
-0
未找到文件。
Documentation/thinkpad-acpi.txt
浏览文件 @
fcf75356
...
@@ -138,7 +138,7 @@ Hot keys
...
@@ -138,7 +138,7 @@ Hot keys
--------
--------
procfs: /proc/acpi/ibm/hotkey
procfs: /proc/acpi/ibm/hotkey
sysfs device attribute: hotkey
/
*
sysfs device attribute: hotkey
_
*
Without this driver, only the Fn-F4 key (sleep button) generates an
Without this driver, only the Fn-F4 key (sleep button) generates an
ACPI event. With the driver loaded, the hotkey feature enabled and the
ACPI event. With the driver loaded, the hotkey feature enabled and the
...
@@ -196,10 +196,7 @@ The following commands can be written to the /proc/acpi/ibm/hotkey file:
...
@@ -196,10 +196,7 @@ The following commands can be written to the /proc/acpi/ibm/hotkey file:
sysfs notes:
sysfs notes:
The hot keys attributes are in a hotkey/ subdirectory off the
hotkey_bios_enabled:
thinkpad device.
bios_enabled:
Returns the status of the hot keys feature when
Returns the status of the hot keys feature when
thinkpad-acpi was loaded. Upon module unload, the hot
thinkpad-acpi was loaded. Upon module unload, the hot
key feature status will be restored to this value.
key feature status will be restored to this value.
...
@@ -207,19 +204,19 @@ sysfs notes:
...
@@ -207,19 +204,19 @@ sysfs notes:
0: hot keys were disabled
0: hot keys were disabled
1: hot keys were enabled
1: hot keys were enabled
bios_mask:
hotkey_
bios_mask:
Returns the hot keys mask when thinkpad-acpi was loaded.
Returns the hot keys mask when thinkpad-acpi was loaded.
Upon module unload, the hot keys mask will be restored
Upon module unload, the hot keys mask will be restored
to this value.
to this value.
enable:
hotkey_
enable:
Enables/disables the hot keys feature, and reports
Enables/disables the hot keys feature, and reports
current status of the hot keys feature.
current status of the hot keys feature.
0: disables the hot keys feature / feature disabled
0: disables the hot keys feature / feature disabled
1: enables the hot keys feature / feature enabled
1: enables the hot keys feature / feature enabled
mask:
hotkey_
mask:
bit mask to enable ACPI event generation for each hot
bit mask to enable ACPI event generation for each hot
key (see above). Returns the current status of the hot
key (see above). Returns the current status of the hot
keys mask, and allows one to modify it.
keys mask, and allows one to modify it.
...
@@ -229,7 +226,7 @@ Bluetooth
...
@@ -229,7 +226,7 @@ Bluetooth
---------
---------
procfs: /proc/acpi/ibm/bluetooth
procfs: /proc/acpi/ibm/bluetooth
sysfs device attribute: bluetooth
/
enable
sysfs device attribute: bluetooth
_
enable
This feature shows the presence and current state of a ThinkPad
This feature shows the presence and current state of a ThinkPad
Bluetooth device in the internal ThinkPad CDC slot.
Bluetooth device in the internal ThinkPad CDC slot.
...
@@ -244,7 +241,7 @@ If Bluetooth is installed, the following commands can be used:
...
@@ -244,7 +241,7 @@ If Bluetooth is installed, the following commands can be used:
Sysfs notes:
Sysfs notes:
If the Bluetooth CDC card is installed, it can be enabled /
If the Bluetooth CDC card is installed, it can be enabled /
disabled through the "bluetooth
/
enable" thinkpad-acpi device
disabled through the "bluetooth
_
enable" thinkpad-acpi device
attribute, and its current status can also be queried.
attribute, and its current status can also be queried.
enable:
enable:
...
@@ -252,7 +249,7 @@ Sysfs notes:
...
@@ -252,7 +249,7 @@ Sysfs notes:
1: enables Bluetooth / Bluetooth is enabled.
1: enables Bluetooth / Bluetooth is enabled.
Note: this interface will be probably be superseeded by the
Note: this interface will be probably be superseeded by the
generic rfkill class.
generic rfkill class
, so it is NOT to be considered stable yet
.
Video output control -- /proc/acpi/ibm/video
Video output control -- /proc/acpi/ibm/video
--------------------------------------------
--------------------------------------------
...
@@ -898,7 +895,7 @@ EXPERIMENTAL: WAN
...
@@ -898,7 +895,7 @@ EXPERIMENTAL: WAN
-----------------
-----------------
procfs: /proc/acpi/ibm/wan
procfs: /proc/acpi/ibm/wan
sysfs device attribute: wwan
/
enable
sysfs device attribute: wwan
_
enable
This feature is marked EXPERIMENTAL because the implementation
This feature is marked EXPERIMENTAL because the implementation
directly accesses hardware registers and may not work as expected. USE
directly accesses hardware registers and may not work as expected. USE
...
@@ -921,7 +918,7 @@ If the W-WAN card is installed, the following commands can be used:
...
@@ -921,7 +918,7 @@ If the W-WAN card is installed, the following commands can be used:
Sysfs notes:
Sysfs notes:
If the W-WAN card is installed, it can be enabled /
If the W-WAN card is installed, it can be enabled /
disabled through the "wwan
/
enable" thinkpad-acpi device
disabled through the "wwan
_
enable" thinkpad-acpi device
attribute, and its current status can also be queried.
attribute, and its current status can also be queried.
enable:
enable:
...
@@ -929,7 +926,7 @@ Sysfs notes:
...
@@ -929,7 +926,7 @@ Sysfs notes:
1: enables WWAN card / WWAN card is enabled.
1: enables WWAN card / WWAN card is enabled.
Note: this interface will be probably be superseeded by the
Note: this interface will be probably be superseeded by the
generic rfkill class.
generic rfkill class
, so it is NOT to be considered stable yet
.
Multiple Commands, Module Parameters
Multiple Commands, Module Parameters
------------------------------------
------------------------------------
...
...
drivers/acpi/numa.c
浏览文件 @
fcf75356
...
@@ -59,7 +59,7 @@ int node_to_pxm(int node)
...
@@ -59,7 +59,7 @@ int node_to_pxm(int node)
return
node_to_pxm_map
[
node
];
return
node_to_pxm_map
[
node
];
}
}
int
__cpuinit
acpi_map_pxm_to_node
(
int
pxm
)
int
acpi_map_pxm_to_node
(
int
pxm
)
{
{
int
node
=
pxm_to_node_map
[
pxm
];
int
node
=
pxm_to_node_map
[
pxm
];
...
...
drivers/acpi/tables/tbinstal.c
浏览文件 @
fcf75356
...
@@ -123,14 +123,14 @@ acpi_tb_add_table(struct acpi_table_desc *table_desc,
...
@@ -123,14 +123,14 @@ acpi_tb_add_table(struct acpi_table_desc *table_desc,
}
}
}
}
/* The table must be either an SSDT or a PSDT */
/* The table must be either an SSDT or a PSDT
or an OEMx
*/
if
((
!
ACPI_COMPARE_NAME
(
table_desc
->
pointer
->
signature
,
ACPI_SIG_PSDT
))
if
((
!
ACPI_COMPARE_NAME
(
table_desc
->
pointer
->
signature
,
ACPI_SIG_PSDT
))
&&
&&
(
!
ACPI_COMPARE_NAME
(
table_desc
->
pointer
->
signature
,
ACPI_SIG_SSDT
))
)
(
!
ACPI_COMPARE_NAME
(
table_desc
->
pointer
->
signature
,
ACPI_SIG_SSDT
))
{
&&
(
strncmp
(
table_desc
->
pointer
->
signature
,
"OEM"
,
3
)))
{
ACPI_ERROR
((
AE_INFO
,
ACPI_ERROR
((
AE_INFO
,
"Table has invalid signature [%4.4s], must be SSDT
or PSDT
"
,
"Table has invalid signature [%4.4s], must be SSDT
, PSDT or OEMx
"
,
table_desc
->
pointer
->
signature
));
table_desc
->
pointer
->
signature
));
return_ACPI_STATUS
(
AE_BAD_SIGNATURE
);
return_ACPI_STATUS
(
AE_BAD_SIGNATURE
);
}
}
...
...
drivers/acpi/thermal.c
浏览文件 @
fcf75356
...
@@ -827,6 +827,7 @@ static int acpi_thermal_temp_open_fs(struct inode *inode, struct file *file)
...
@@ -827,6 +827,7 @@ static int acpi_thermal_temp_open_fs(struct inode *inode, struct file *file)
static
int
acpi_thermal_trip_seq_show
(
struct
seq_file
*
seq
,
void
*
offset
)
static
int
acpi_thermal_trip_seq_show
(
struct
seq_file
*
seq
,
void
*
offset
)
{
{
struct
acpi_thermal
*
tz
=
seq
->
private
;
struct
acpi_thermal
*
tz
=
seq
->
private
;
struct
acpi_device
*
device
;
int
i
=
0
;
int
i
=
0
;
int
j
=
0
;
int
j
=
0
;
...
@@ -849,9 +850,8 @@ static int acpi_thermal_trip_seq_show(struct seq_file *seq, void *offset)
...
@@ -849,9 +850,8 @@ static int acpi_thermal_trip_seq_show(struct seq_file *seq, void *offset)
tz
->
trips
.
passive
.
tc1
,
tz
->
trips
.
passive
.
tc2
,
tz
->
trips
.
passive
.
tc1
,
tz
->
trips
.
passive
.
tc2
,
tz
->
trips
.
passive
.
tsp
);
tz
->
trips
.
passive
.
tsp
);
for
(
j
=
0
;
j
<
tz
->
trips
.
passive
.
devices
.
count
;
j
++
)
{
for
(
j
=
0
;
j
<
tz
->
trips
.
passive
.
devices
.
count
;
j
++
)
{
acpi_bus_get_device
(
tz
->
trips
.
passive
.
devices
.
handles
[
j
],
&
device
);
seq_printf
(
seq
,
"0x%p "
,
seq_printf
(
seq
,
"%4.4s "
,
acpi_device_bid
(
device
));
tz
->
trips
.
passive
.
devices
.
handles
[
j
]);
}
}
seq_puts
(
seq
,
"
\n
"
);
seq_puts
(
seq
,
"
\n
"
);
}
}
...
@@ -862,9 +862,10 @@ static int acpi_thermal_trip_seq_show(struct seq_file *seq, void *offset)
...
@@ -862,9 +862,10 @@ static int acpi_thermal_trip_seq_show(struct seq_file *seq, void *offset)
seq_printf
(
seq
,
"active[%d]: %ld C: devices="
,
seq_printf
(
seq
,
"active[%d]: %ld C: devices="
,
i
,
i
,
KELVIN_TO_CELSIUS
(
tz
->
trips
.
active
[
i
].
temperature
));
KELVIN_TO_CELSIUS
(
tz
->
trips
.
active
[
i
].
temperature
));
for
(
j
=
0
;
j
<
tz
->
trips
.
active
[
i
].
devices
.
count
;
j
++
)
for
(
j
=
0
;
j
<
tz
->
trips
.
active
[
i
].
devices
.
count
;
j
++
){
seq_printf
(
seq
,
"0x%p "
,
acpi_bus_get_device
(
tz
->
trips
.
active
[
i
].
devices
.
handles
[
j
],
&
device
);
tz
->
trips
.
active
[
i
].
devices
.
handles
[
j
]);
seq_printf
(
seq
,
"%4.4s "
,
acpi_device_bid
(
device
));
}
seq_puts
(
seq
,
"
\n
"
);
seq_puts
(
seq
,
"
\n
"
);
}
}
...
...
drivers/acpi/utilities/utcopy.c
浏览文件 @
fcf75356
...
@@ -67,6 +67,10 @@ static acpi_status
...
@@ -67,6 +67,10 @@ static acpi_status
acpi_ut_copy_esimple_to_isimple
(
union
acpi_object
*
user_obj
,
acpi_ut_copy_esimple_to_isimple
(
union
acpi_object
*
user_obj
,
union
acpi_operand_object
**
return_obj
);
union
acpi_operand_object
**
return_obj
);
static
acpi_status
acpi_ut_copy_epackage_to_ipackage
(
union
acpi_object
*
external_object
,
union
acpi_operand_object
**
internal_object
);
static
acpi_status
static
acpi_status
acpi_ut_copy_simple_object
(
union
acpi_operand_object
*
source_desc
,
acpi_ut_copy_simple_object
(
union
acpi_operand_object
*
source_desc
,
union
acpi_operand_object
*
dest_desc
);
union
acpi_operand_object
*
dest_desc
);
...
@@ -518,77 +522,73 @@ acpi_ut_copy_esimple_to_isimple(union acpi_object *external_object,
...
@@ -518,77 +522,73 @@ acpi_ut_copy_esimple_to_isimple(union acpi_object *external_object,
return_ACPI_STATUS
(
AE_NO_MEMORY
);
return_ACPI_STATUS
(
AE_NO_MEMORY
);
}
}
#ifdef ACPI_FUTURE_IMPLEMENTATION
/* Code to convert packages that are parameters to control methods */
/*******************************************************************************
/*******************************************************************************
*
*
* FUNCTION: acpi_ut_copy_epackage_to_ipackage
* FUNCTION: acpi_ut_copy_epackage_to_ipackage
*
*
* PARAMETERS: *internal_object - Pointer to the object we are returning
* PARAMETERS: external_object - The external object to be converted
* *Buffer - Where the object is returned
* internal_object - Where the internal object is returned
* *space_used - Where the length of the object is returned
*
*
* RETURN: Status
* RETURN: Status
*
*
* DESCRIPTION: This function is called to place a package object in a user
* DESCRIPTION: Copy an external package object to an internal package.
* buffer. A package object by definition contains other objects.
* Handles nested packages.
*
* The buffer is assumed to have sufficient space for the object.
* The caller must have verified the buffer length needed using the
* acpi_ut_get_object_size function before calling this function.
*
*
******************************************************************************/
******************************************************************************/
static
acpi_status
static
acpi_status
acpi_ut_copy_epackage_to_ipackage
(
union
acpi_o
perand_object
*
in
ternal_object
,
acpi_ut_copy_epackage_to_ipackage
(
union
acpi_o
bject
*
ex
ternal_object
,
u
8
*
buffer
,
u32
*
space_used
)
u
nion
acpi_operand_object
**
internal_object
)
{
{
u8
*
free_space
;
acpi_status
status
=
AE_OK
;
union
acpi_object
*
external_object
;
union
acpi_operand_object
*
package_object
;
u32
length
=
0
;
union
acpi_operand_object
**
package_elements
;
u32
this_index
;
acpi_native_uint
i
;
u32
object_space
=
0
;
union
acpi_operand_object
*
this_internal_obj
;
union
acpi_object
*
this_external_obj
;
ACPI_FUNCTION_TRACE
(
ut_copy_epackage_to_ipackage
);
ACPI_FUNCTION_TRACE
(
ut_copy_epackage_to_ipackage
);
/*
/* Create the package object */
* First package at head of the buffer
*/
external_object
=
(
union
acpi_object
*
)
buffer
;
/*
package_object
=
* Free space begins right after the first package
acpi_ut_create_package_object
(
external_object
->
package
.
count
);
*/
if
(
!
package_object
)
{
free_space
=
buffer
+
sizeof
(
union
acpi_object
);
return_ACPI_STATUS
(
AE_NO_MEMORY
);
}
external_object
->
type
=
ACPI_GET_OBJECT_TYPE
(
internal_object
);
package_elements
=
package_object
->
package
.
elements
;
external_object
->
package
.
count
=
internal_object
->
package
.
count
;
external_object
->
package
.
elements
=
(
union
acpi_object
*
)
free_space
;
/*
/*
*
Build an array of ACPI_OBJECTS in the buffer
*
Recursive implementation. Probably ok, since nested external packages
* a
nd move the free space past it
* a
s parameters should be very rare.
*/
*/
free_space
+=
for
(
i
=
0
;
i
<
external_object
->
package
.
count
;
i
++
)
{
external_object
->
package
.
count
*
sizeof
(
union
acpi_object
);
status
=
acpi_ut_copy_eobject_to_iobject
(
&
external_object
->
package
.
elements
[
i
],
&
package_elements
[
i
]);
if
(
ACPI_FAILURE
(
status
))
{
/* Call walk_package
*/
/* Truncate package and delete it
*/
}
package_object
->
package
.
count
=
i
;
package_elements
[
i
]
=
NULL
;
acpi_ut_remove_reference
(
package_object
);
return_ACPI_STATUS
(
status
);
}
}
#endif
/* Future implementation */
*
internal_object
=
package_object
;
return_ACPI_STATUS
(
status
);
}
/*******************************************************************************
/*******************************************************************************
*
*
* FUNCTION: acpi_ut_copy_eobject_to_iobject
* FUNCTION: acpi_ut_copy_eobject_to_iobject
*
*
* PARAMETERS:
*internal_object
- The external object to be converted
* PARAMETERS:
external_object
- The external object to be converted
*
*buffer_ptr
- Where the internal object is returned
*
internal_object
- Where the internal object is returned
*
*
* RETURN: Status - the status of the call
* RETURN: Status
- the status of the call
*
*
* DESCRIPTION: Converts an external object to an internal object.
* DESCRIPTION: Converts an external object to an internal object.
*
*
...
@@ -603,16 +603,10 @@ acpi_ut_copy_eobject_to_iobject(union acpi_object *external_object,
...
@@ -603,16 +603,10 @@ acpi_ut_copy_eobject_to_iobject(union acpi_object *external_object,
ACPI_FUNCTION_TRACE
(
ut_copy_eobject_to_iobject
);
ACPI_FUNCTION_TRACE
(
ut_copy_eobject_to_iobject
);
if
(
external_object
->
type
==
ACPI_TYPE_PACKAGE
)
{
if
(
external_object
->
type
==
ACPI_TYPE_PACKAGE
)
{
/*
status
=
* Packages as external input to control methods are not supported,
acpi_ut_copy_epackage_to_ipackage
(
external_object
,
*/
internal_object
);
ACPI_ERROR
((
AE_INFO
,
}
else
{
"Packages as parameters not implemented!"
));
return_ACPI_STATUS
(
AE_NOT_IMPLEMENTED
);
}
else
{
/*
/*
* Build a simple object (no nested objects)
* Build a simple object (no nested objects)
*/
*/
...
@@ -803,33 +797,19 @@ acpi_ut_copy_ielement_to_ielement(u8 object_type,
...
@@ -803,33 +797,19 @@ acpi_ut_copy_ielement_to_ielement(u8 object_type,
* Create and build the package object
* Create and build the package object
*/
*/
target_object
=
target_object
=
acpi_ut_create_
internal_object
(
ACPI_TYPE_PACKAGE
);
acpi_ut_create_
package_object
(
source_object
->
package
.
count
);
if
(
!
target_object
)
{
if
(
!
target_object
)
{
return
(
AE_NO_MEMORY
);
return
(
AE_NO_MEMORY
);
}
}
target_object
->
package
.
count
=
source_object
->
package
.
count
;
target_object
->
common
.
flags
=
source_object
->
common
.
flags
;
target_object
->
common
.
flags
=
source_object
->
common
.
flags
;
/*
/* Pass the new package object back to the package walk routine */
* Create the object array
*/
target_object
->
package
.
elements
=
ACPI_ALLOCATE_ZEROED
(((
acpi_size
)
source_object
->
package
.
count
+
1
)
*
sizeof
(
void
*
));
if
(
!
target_object
->
package
.
elements
)
{
status
=
AE_NO_MEMORY
;
goto
error_exit
;
}
/*
* Pass the new package object back to the package walk routine
*/
state
->
pkg
.
this_target_obj
=
target_object
;
state
->
pkg
.
this_target_obj
=
target_object
;
/*
/* Store the object pointer in the parent package object */
* Store the object pointer in the parent package object
*/
*
this_target_ptr
=
target_object
;
*
this_target_ptr
=
target_object
;
break
;
break
;
...
...
drivers/acpi/utilities/utobject.c
浏览文件 @
fcf75356
...
@@ -144,6 +144,48 @@ union acpi_operand_object *acpi_ut_create_internal_object_dbg(char *module_name,
...
@@ -144,6 +144,48 @@ union acpi_operand_object *acpi_ut_create_internal_object_dbg(char *module_name,
return_PTR
(
object
);
return_PTR
(
object
);
}
}
/*******************************************************************************
*
* FUNCTION: acpi_ut_create_package_object
*
* PARAMETERS: Count - Number of package elements
*
* RETURN: Pointer to a new Package object, null on failure
*
* DESCRIPTION: Create a fully initialized package object
*
******************************************************************************/
union
acpi_operand_object
*
acpi_ut_create_package_object
(
u32
count
)
{
union
acpi_operand_object
*
package_desc
;
union
acpi_operand_object
**
package_elements
;
ACPI_FUNCTION_TRACE_U32
(
ut_create_package_object
,
count
);
/* Create a new Package object */
package_desc
=
acpi_ut_create_internal_object
(
ACPI_TYPE_PACKAGE
);
if
(
!
package_desc
)
{
return_PTR
(
NULL
);
}
/*
* Create the element array. Count+1 allows the array to be null
* terminated.
*/
package_elements
=
ACPI_ALLOCATE_ZEROED
((
acpi_size
)
(
count
+
1
)
*
sizeof
(
void
*
));
if
(
!
package_elements
)
{
ACPI_FREE
(
package_desc
);
return_PTR
(
NULL
);
}
package_desc
->
package
.
count
=
count
;
package_desc
->
package
.
elements
=
package_elements
;
return_PTR
(
package_desc
);
}
/*******************************************************************************
/*******************************************************************************
*
*
* FUNCTION: acpi_ut_create_buffer_object
* FUNCTION: acpi_ut_create_buffer_object
...
...
drivers/misc/thinkpad_acpi.c
浏览文件 @
fcf75356
...
@@ -740,7 +740,7 @@ static ssize_t hotkey_enable_store(struct device *dev,
...
@@ -740,7 +740,7 @@ static ssize_t hotkey_enable_store(struct device *dev,
}
}
static
struct
device_attribute
dev_attr_hotkey_enable
=
static
struct
device_attribute
dev_attr_hotkey_enable
=
__ATTR
(
enable
,
S_IWUSR
|
S_IRUGO
,
__ATTR
(
hotkey_
enable
,
S_IWUSR
|
S_IRUGO
,
hotkey_enable_show
,
hotkey_enable_store
);
hotkey_enable_show
,
hotkey_enable_store
);
/* sysfs hotkey mask --------------------------------------------------- */
/* sysfs hotkey mask --------------------------------------------------- */
...
@@ -775,7 +775,7 @@ static ssize_t hotkey_mask_store(struct device *dev,
...
@@ -775,7 +775,7 @@ static ssize_t hotkey_mask_store(struct device *dev,
}
}
static
struct
device_attribute
dev_attr_hotkey_mask
=
static
struct
device_attribute
dev_attr_hotkey_mask
=
__ATTR
(
mask
,
S_IWUSR
|
S_IRUGO
,
__ATTR
(
hotkey_
mask
,
S_IWUSR
|
S_IRUGO
,
hotkey_mask_show
,
hotkey_mask_store
);
hotkey_mask_show
,
hotkey_mask_store
);
/* sysfs hotkey bios_enabled ------------------------------------------- */
/* sysfs hotkey bios_enabled ------------------------------------------- */
...
@@ -787,7 +787,7 @@ static ssize_t hotkey_bios_enabled_show(struct device *dev,
...
@@ -787,7 +787,7 @@ static ssize_t hotkey_bios_enabled_show(struct device *dev,
}
}
static
struct
device_attribute
dev_attr_hotkey_bios_enabled
=
static
struct
device_attribute
dev_attr_hotkey_bios_enabled
=
__ATTR
(
bios_enabled
,
S_IRUGO
,
hotkey_bios_enabled_show
,
NULL
);
__ATTR
(
hotkey_
bios_enabled
,
S_IRUGO
,
hotkey_bios_enabled_show
,
NULL
);
/* sysfs hotkey bios_mask ---------------------------------------------- */
/* sysfs hotkey bios_mask ---------------------------------------------- */
static
ssize_t
hotkey_bios_mask_show
(
struct
device
*
dev
,
static
ssize_t
hotkey_bios_mask_show
(
struct
device
*
dev
,
...
@@ -798,7 +798,7 @@ static ssize_t hotkey_bios_mask_show(struct device *dev,
...
@@ -798,7 +798,7 @@ static ssize_t hotkey_bios_mask_show(struct device *dev,
}
}
static
struct
device_attribute
dev_attr_hotkey_bios_mask
=
static
struct
device_attribute
dev_attr_hotkey_bios_mask
=
__ATTR
(
bios_mask
,
S_IRUGO
,
hotkey_bios_mask_show
,
NULL
);
__ATTR
(
hotkey_
bios_mask
,
S_IRUGO
,
hotkey_bios_mask_show
,
NULL
);
/* --------------------------------------------------------------------- */
/* --------------------------------------------------------------------- */
...
@@ -824,8 +824,7 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)
...
@@ -824,8 +824,7 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)
str_supported
(
tp_features
.
hotkey
));
str_supported
(
tp_features
.
hotkey
));
if
(
tp_features
.
hotkey
)
{
if
(
tp_features
.
hotkey
)
{
hotkey_dev_attributes
=
create_attr_set
(
4
,
hotkey_dev_attributes
=
create_attr_set
(
4
,
NULL
);
TPACPI_HOTKEY_SYSFS_GROUP
);
if
(
!
hotkey_dev_attributes
)
if
(
!
hotkey_dev_attributes
)
return
-
ENOMEM
;
return
-
ENOMEM
;
res
=
add_to_attr_set
(
hotkey_dev_attributes
,
res
=
add_to_attr_set
(
hotkey_dev_attributes
,
...
@@ -1050,7 +1049,7 @@ static ssize_t bluetooth_enable_store(struct device *dev,
...
@@ -1050,7 +1049,7 @@ static ssize_t bluetooth_enable_store(struct device *dev,
}
}
static
struct
device_attribute
dev_attr_bluetooth_enable
=
static
struct
device_attribute
dev_attr_bluetooth_enable
=
__ATTR
(
enable
,
S_IWUSR
|
S_IRUGO
,
__ATTR
(
bluetooth_
enable
,
S_IWUSR
|
S_IRUGO
,
bluetooth_enable_show
,
bluetooth_enable_store
);
bluetooth_enable_show
,
bluetooth_enable_store
);
/* --------------------------------------------------------------------- */
/* --------------------------------------------------------------------- */
...
@@ -1061,7 +1060,6 @@ static struct attribute *bluetooth_attributes[] = {
...
@@ -1061,7 +1060,6 @@ static struct attribute *bluetooth_attributes[] = {
};
};
static
const
struct
attribute_group
bluetooth_attr_group
=
{
static
const
struct
attribute_group
bluetooth_attr_group
=
{
.
name
=
TPACPI_BLUETH_SYSFS_GROUP
,
.
attrs
=
bluetooth_attributes
,
.
attrs
=
bluetooth_attributes
,
};
};
...
@@ -1215,7 +1213,7 @@ static ssize_t wan_enable_store(struct device *dev,
...
@@ -1215,7 +1213,7 @@ static ssize_t wan_enable_store(struct device *dev,
}
}
static
struct
device_attribute
dev_attr_wan_enable
=
static
struct
device_attribute
dev_attr_wan_enable
=
__ATTR
(
enable
,
S_IWUSR
|
S_IRUGO
,
__ATTR
(
wwan_
enable
,
S_IWUSR
|
S_IRUGO
,
wan_enable_show
,
wan_enable_store
);
wan_enable_show
,
wan_enable_store
);
/* --------------------------------------------------------------------- */
/* --------------------------------------------------------------------- */
...
@@ -1226,7 +1224,6 @@ static struct attribute *wan_attributes[] = {
...
@@ -1226,7 +1224,6 @@ static struct attribute *wan_attributes[] = {
};
};
static
const
struct
attribute_group
wan_attr_group
=
{
static
const
struct
attribute_group
wan_attr_group
=
{
.
name
=
TPACPI_WAN_SYSFS_GROUP
,
.
attrs
=
wan_attributes
,
.
attrs
=
wan_attributes
,
};
};
...
...
drivers/misc/thinkpad_acpi.h
浏览文件 @
fcf75356
...
@@ -278,8 +278,6 @@ static int beep_write(char *buf);
...
@@ -278,8 +278,6 @@ static int beep_write(char *buf);
* Bluetooth subdriver
* Bluetooth subdriver
*/
*/
#define TPACPI_BLUETH_SYSFS_GROUP "bluetooth"
enum
{
enum
{
/* ACPI GBDC/SBDC bits */
/* ACPI GBDC/SBDC bits */
TP_ACPI_BLUETOOTH_HWPRESENT
=
0x01
,
/* Bluetooth hw available */
TP_ACPI_BLUETOOTH_HWPRESENT
=
0x01
,
/* Bluetooth hw available */
...
@@ -416,8 +414,6 @@ static int fan_write_cmd_watchdog(const char *cmd, int *rc);
...
@@ -416,8 +414,6 @@ static int fan_write_cmd_watchdog(const char *cmd, int *rc);
* Hotkey subdriver
* Hotkey subdriver
*/
*/
#define TPACPI_HOTKEY_SYSFS_GROUP "hotkey"
static
int
hotkey_orig_status
;
static
int
hotkey_orig_status
;
static
int
hotkey_orig_mask
;
static
int
hotkey_orig_mask
;
...
@@ -553,8 +549,6 @@ static int volume_write(char *buf);
...
@@ -553,8 +549,6 @@ static int volume_write(char *buf);
* Wan subdriver
* Wan subdriver
*/
*/
#define TPACPI_WAN_SYSFS_GROUP "wwan"
enum
{
enum
{
/* ACPI GWAN/SWAN bits */
/* ACPI GWAN/SWAN bits */
TP_ACPI_WANCARD_HWPRESENT
=
0x01
,
/* Wan hw available */
TP_ACPI_WANCARD_HWPRESENT
=
0x01
,
/* Wan hw available */
...
...
include/acpi/acpi_numa.h
浏览文件 @
fcf75356
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
extern
int
pxm_to_node
(
int
);
extern
int
pxm_to_node
(
int
);
extern
int
node_to_pxm
(
int
);
extern
int
node_to_pxm
(
int
);
extern
int
__cpuinit
acpi_map_pxm_to_node
(
int
);
extern
int
acpi_map_pxm_to_node
(
int
);
extern
void
__cpuinit
acpi_unmap_pxm_to_node
(
int
);
extern
void
__cpuinit
acpi_unmap_pxm_to_node
(
int
);
#endif
/* CONFIG_ACPI_NUMA */
#endif
/* CONFIG_ACPI_NUMA */
...
...
include/acpi/acutils.h
浏览文件 @
fcf75356
...
@@ -390,6 +390,8 @@ void acpi_ut_delete_object_desc(union acpi_operand_object *object);
...
@@ -390,6 +390,8 @@ void acpi_ut_delete_object_desc(union acpi_operand_object *object);
u8
acpi_ut_valid_internal_object
(
void
*
object
);
u8
acpi_ut_valid_internal_object
(
void
*
object
);
union
acpi_operand_object
*
acpi_ut_create_package_object
(
u32
count
);
union
acpi_operand_object
*
acpi_ut_create_buffer_object
(
acpi_size
buffer_size
);
union
acpi_operand_object
*
acpi_ut_create_buffer_object
(
acpi_size
buffer_size
);
union
acpi_operand_object
*
acpi_ut_create_string_object
(
acpi_size
string_size
);
union
acpi_operand_object
*
acpi_ut_create_string_object
(
acpi_size
string_size
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录