Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
d550d98d
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
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看板
提交
d550d98d
编写于
6月 27, 2006
作者:
P
Patrick Mochel
提交者:
Len Brown
6月 27, 2006
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ACPI: delete tracing macros from drivers/acpi/*.c
Signed-off-by:
N
Len Brown
<
len.brown@intel.com
>
上级
d7fa2589
变更
28
展开全部
隐藏空白更改
内联
并排
Showing
28 changed file
with
862 addition
and
1187 deletion
+862
-1187
drivers/acpi/ac.c
drivers/acpi/ac.c
+22
-31
drivers/acpi/acpi_memhotplug.c
drivers/acpi/acpi_memhotplug.c
+34
-48
drivers/acpi/battery.c
drivers/acpi/battery.c
+41
-56
drivers/acpi/bus.c
drivers/acpi/bus.c
+46
-59
drivers/acpi/button.c
drivers/acpi/button.c
+23
-33
drivers/acpi/container.c
drivers/acpi/container.c
+14
-20
drivers/acpi/debug.c
drivers/acpi/debug.c
+6
-8
drivers/acpi/ec.c
drivers/acpi/ec.c
+62
-84
drivers/acpi/event.c
drivers/acpi/event.c
+6
-8
drivers/acpi/fan.c
drivers/acpi/fan.c
+19
-27
drivers/acpi/hotkey.c
drivers/acpi/hotkey.c
+36
-58
drivers/acpi/motherboard.c
drivers/acpi/motherboard.c
+2
-3
drivers/acpi/osl.c
drivers/acpi/osl.c
+14
-21
drivers/acpi/pci_bind.c
drivers/acpi/pci_bind.c
+16
-21
drivers/acpi/pci_irq.c
drivers/acpi/pci_irq.c
+31
-40
drivers/acpi/pci_link.c
drivers/acpi/pci_link.c
+45
-60
drivers/acpi/pci_root.c
drivers/acpi/pci_root.c
+10
-14
drivers/acpi/power.c
drivers/acpi/power.c
+55
-70
drivers/acpi/processor_core.c
drivers/acpi/processor_core.c
+47
-64
drivers/acpi/processor_idle.c
drivers/acpi/processor_idle.c
+30
-41
drivers/acpi/processor_perflib.c
drivers/acpi/processor_perflib.c
+38
-49
drivers/acpi/processor_thermal.c
drivers/acpi/processor_thermal.c
+16
-21
drivers/acpi/processor_throttling.c
drivers/acpi/processor_throttling.c
+19
-24
drivers/acpi/scan.c
drivers/acpi/scan.c
+30
-47
drivers/acpi/system.c
drivers/acpi/system.c
+7
-11
drivers/acpi/thermal.c
drivers/acpi/thermal.c
+71
-99
drivers/acpi/utils.c
drivers/acpi/utils.c
+25
-29
drivers/acpi/video.c
drivers/acpi/video.c
+97
-141
未找到文件。
drivers/acpi/ac.c
浏览文件 @
d550d98d
...
...
@@ -84,19 +84,18 @@ static int acpi_ac_get_state(struct acpi_ac *ac)
{
acpi_status
status
=
AE_OK
;
ACPI_FUNCTION_TRACE
(
"acpi_ac_get_state"
);
if
(
!
ac
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
status
=
acpi_evaluate_integer
(
ac
->
handle
,
"_PSR"
,
NULL
,
&
ac
->
state
);
if
(
ACPI_FAILURE
(
status
))
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"Error reading AC Adapter state"
));
ac
->
state
=
ACPI_AC_STATUS_UNKNOWN
;
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
return
_VALUE
(
0
)
;
return
0
;
}
/* --------------------------------------------------------------------------
...
...
@@ -109,14 +108,13 @@ static int acpi_ac_seq_show(struct seq_file *seq, void *offset)
{
struct
acpi_ac
*
ac
=
(
struct
acpi_ac
*
)
seq
->
private
;
ACPI_FUNCTION_TRACE
(
"acpi_ac_seq_show"
);
if
(
!
ac
)
return
_VALUE
(
0
)
;
return
0
;
if
(
acpi_ac_get_state
(
ac
))
{
seq_puts
(
seq
,
"ERROR: Unable to read AC Adapter state
\n
"
);
return
_VALUE
(
0
)
;
return
0
;
}
seq_puts
(
seq
,
"state: "
);
...
...
@@ -132,7 +130,7 @@ static int acpi_ac_seq_show(struct seq_file *seq, void *offset)
break
;
}
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_ac_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -144,13 +142,12 @@ static int acpi_ac_add_fs(struct acpi_device *device)
{
struct
proc_dir_entry
*
entry
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_ac_add_fs"
);
if
(
!
acpi_device_dir
(
device
))
{
acpi_device_dir
(
device
)
=
proc_mkdir
(
acpi_device_bid
(
device
),
acpi_ac_dir
);
if
(
!
acpi_device_dir
(
device
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
acpi_device_dir
(
device
)
->
owner
=
THIS_MODULE
;
}
...
...
@@ -158,19 +155,18 @@ static int acpi_ac_add_fs(struct acpi_device *device)
entry
=
create_proc_entry
(
ACPI_AC_FILE_STATE
,
S_IRUGO
,
acpi_device_dir
(
device
));
if
(
!
entry
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
else
{
entry
->
proc_fops
=
&
acpi_ac_fops
;
entry
->
data
=
acpi_driver_data
(
device
);
entry
->
owner
=
THIS_MODULE
;
}
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_ac_remove_fs
(
struct
acpi_device
*
device
)
{
ACPI_FUNCTION_TRACE
(
"acpi_ac_remove_fs"
);
if
(
acpi_device_dir
(
device
))
{
remove_proc_entry
(
ACPI_AC_FILE_STATE
,
acpi_device_dir
(
device
));
...
...
@@ -179,7 +175,7 @@ static int acpi_ac_remove_fs(struct acpi_device *device)
acpi_device_dir
(
device
)
=
NULL
;
}
return
_VALUE
(
0
)
;
return
0
;
}
/* --------------------------------------------------------------------------
...
...
@@ -191,13 +187,12 @@ static void acpi_ac_notify(acpi_handle handle, u32 event, void *data)
struct
acpi_ac
*
ac
=
(
struct
acpi_ac
*
)
data
;
struct
acpi_device
*
device
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_ac_notify"
);
if
(
!
ac
)
return
_VOID
;
return
;
if
(
acpi_bus_get_device
(
ac
->
handle
,
&
device
))
return
_VOID
;
return
;
switch
(
event
)
{
case
ACPI_AC_NOTIFY_STATUS
:
...
...
@@ -210,7 +205,7 @@ static void acpi_ac_notify(acpi_handle handle, u32 event, void *data)
break
;
}
return
_VOID
;
return
;
}
static
int
acpi_ac_add
(
struct
acpi_device
*
device
)
...
...
@@ -219,14 +214,13 @@ static int acpi_ac_add(struct acpi_device *device)
acpi_status
status
=
AE_OK
;
struct
acpi_ac
*
ac
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_ac_add"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
ac
=
kmalloc
(
sizeof
(
struct
acpi_ac
),
GFP_KERNEL
);
if
(
!
ac
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
memset
(
ac
,
0
,
sizeof
(
struct
acpi_ac
));
ac
->
handle
=
device
->
handle
;
...
...
@@ -260,7 +254,7 @@ static int acpi_ac_add(struct acpi_device *device)
kfree
(
ac
);
}
return
_VALUE
(
result
)
;
return
result
;
}
static
int
acpi_ac_remove
(
struct
acpi_device
*
device
,
int
type
)
...
...
@@ -268,10 +262,9 @@ static int acpi_ac_remove(struct acpi_device *device, int type)
acpi_status
status
=
AE_OK
;
struct
acpi_ac
*
ac
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_ac_remove"
);
if
(
!
device
||
!
acpi_driver_data
(
device
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
ac
=
(
struct
acpi_ac
*
)
acpi_driver_data
(
device
);
...
...
@@ -282,38 +275,36 @@ static int acpi_ac_remove(struct acpi_device *device, int type)
kfree
(
ac
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
__init
acpi_ac_init
(
void
)
{
int
result
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_ac_init"
);
acpi_ac_dir
=
proc_mkdir
(
ACPI_AC_CLASS
,
acpi_root_dir
);
if
(
!
acpi_ac_dir
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
acpi_ac_dir
->
owner
=
THIS_MODULE
;
result
=
acpi_bus_register_driver
(
&
acpi_ac_driver
);
if
(
result
<
0
)
{
remove_proc_entry
(
ACPI_AC_CLASS
,
acpi_root_dir
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
return
_VALUE
(
0
)
;
return
0
;
}
static
void
__exit
acpi_ac_exit
(
void
)
{
ACPI_FUNCTION_TRACE
(
"acpi_ac_exit"
);
acpi_bus_unregister_driver
(
&
acpi_ac_driver
);
remove_proc_entry
(
ACPI_AC_CLASS
,
acpi_root_dir
);
return
_VOID
;
return
;
}
module_init
(
acpi_ac_init
);
...
...
drivers/acpi/acpi_memhotplug.c
浏览文件 @
d550d98d
...
...
@@ -85,12 +85,11 @@ acpi_memory_get_device_resources(struct acpi_memory_device *mem_device)
struct
acpi_resource
*
resource
=
NULL
;
struct
acpi_resource_address64
address64
;
ACPI_FUNCTION_TRACE
(
"acpi_memory_get_device_resources"
);
/* Get the range from the _CRS */
status
=
acpi_get_current_resources
(
mem_device
->
handle
,
&
buffer
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
resource
=
(
struct
acpi_resource
*
)
buffer
.
pointer
;
status
=
acpi_resource_to_address64
(
resource
,
&
address64
);
...
...
@@ -106,7 +105,7 @@ acpi_memory_get_device_resources(struct acpi_memory_device *mem_device)
}
acpi_os_free
(
buffer
.
pointer
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
...
...
@@ -118,7 +117,6 @@ acpi_memory_get_device(acpi_handle handle,
struct
acpi_device
*
device
=
NULL
;
struct
acpi_device
*
pdevice
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_memory_get_device"
);
if
(
!
acpi_bus_get_device
(
handle
,
&
device
)
&&
device
)
goto
end
;
...
...
@@ -126,14 +124,14 @@ acpi_memory_get_device(acpi_handle handle,
status
=
acpi_get_parent
(
handle
,
&
phandle
);
if
(
ACPI_FAILURE
(
status
))
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"Cannot find acpi parent"
));
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
}
/* Get the parent device */
status
=
acpi_bus_get_device
(
phandle
,
&
pdevice
);
if
(
ACPI_FAILURE
(
status
))
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"Cannot get acpi bus device"
));
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
}
/*
...
...
@@ -143,29 +141,28 @@ acpi_memory_get_device(acpi_handle handle,
status
=
acpi_bus_add
(
&
device
,
pdevice
,
handle
,
ACPI_BUS_TYPE_DEVICE
);
if
(
ACPI_FAILURE
(
status
))
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"Cannot add acpi bus"
));
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
}
end:
*
mem_device
=
acpi_driver_data
(
device
);
if
(
!
(
*
mem_device
))
{
printk
(
KERN_ERR
"
\n
driver data not found"
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_memory_check_device
(
struct
acpi_memory_device
*
mem_device
)
{
unsigned
long
current_status
;
ACPI_FUNCTION_TRACE
(
"acpi_memory_check_device"
);
/* Get device present/absent information from the _STA */
if
(
ACPI_FAILURE
(
acpi_evaluate_integer
(
mem_device
->
handle
,
"_STA"
,
NULL
,
&
current_status
)))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
/*
* Check for device status. Device should be
* present/enabled/functioning.
...
...
@@ -173,16 +170,15 @@ static int acpi_memory_check_device(struct acpi_memory_device *mem_device)
if
(
!
((
current_status
&
ACPI_MEMORY_STA_PRESENT
)
&&
(
current_status
&
ACPI_MEMORY_STA_ENABLED
)
&&
(
current_status
&
ACPI_MEMORY_STA_FUNCTIONAL
)))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_memory_enable_device
(
struct
acpi_memory_device
*
mem_device
)
{
int
result
;
ACPI_FUNCTION_TRACE
(
"acpi_memory_enable_device"
);
/* Get the range from the _CRS */
result
=
acpi_memory_get_device_resources
(
mem_device
);
...
...
@@ -213,7 +209,6 @@ static int acpi_memory_powerdown_device(struct acpi_memory_device *mem_device)
union
acpi_object
arg
;
unsigned
long
current_status
;
ACPI_FUNCTION_TRACE
(
"acpi_memory_powerdown_device"
);
/* Issue the _EJ0 command */
arg_list
.
count
=
1
;
...
...
@@ -225,20 +220,20 @@ static int acpi_memory_powerdown_device(struct acpi_memory_device *mem_device)
/* Return on _EJ0 failure */
if
(
ACPI_FAILURE
(
status
))
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"_EJ0 failed"
));
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
/* Evalute _STA to check if the device is disabled */
status
=
acpi_evaluate_integer
(
mem_device
->
handle
,
"_STA"
,
NULL
,
&
current_status
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
/* Check for device status. Device should be disabled */
if
(
current_status
&
ACPI_MEMORY_STA_ENABLED
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_memory_disable_device
(
struct
acpi_memory_device
*
mem_device
)
...
...
@@ -247,7 +242,6 @@ static int acpi_memory_disable_device(struct acpi_memory_device *mem_device)
u64
start
=
mem_device
->
start_addr
;
u64
len
=
mem_device
->
length
;
ACPI_FUNCTION_TRACE
(
"acpi_memory_disable_device"
);
/*
* Ask the VM to offline this memory range.
...
...
@@ -255,7 +249,7 @@ static int acpi_memory_disable_device(struct acpi_memory_device *mem_device)
*/
result
=
remove_memory
(
start
,
len
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
/* Power-off and eject the device */
result
=
acpi_memory_powerdown_device
(
mem_device
);
...
...
@@ -274,7 +268,6 @@ static void acpi_memory_device_notify(acpi_handle handle, u32 event, void *data)
struct
acpi_memory_device
*
mem_device
;
struct
acpi_device
*
device
;
ACPI_FUNCTION_TRACE
(
"acpi_memory_device_notify"
);
switch
(
event
)
{
case
ACPI_NOTIFY_BUS_CHECK
:
...
...
@@ -287,7 +280,7 @@ static void acpi_memory_device_notify(acpi_handle handle, u32 event, void *data)
"
\n
Received DEVICE CHECK notification for device
\n
"
));
if
(
acpi_memory_get_device
(
handle
,
&
mem_device
))
{
printk
(
KERN_ERR
PREFIX
"Cannot find driver data
\n
"
);
return
_VOID
;
return
;
}
if
(
!
acpi_memory_check_device
(
mem_device
))
{
...
...
@@ -329,7 +322,7 @@ static void acpi_memory_device_notify(acpi_handle handle, u32 event, void *data)
break
;
}
return
_VOID
;
return
;
}
static
int
acpi_memory_device_add
(
struct
acpi_device
*
device
)
...
...
@@ -337,14 +330,13 @@ static int acpi_memory_device_add(struct acpi_device *device)
int
result
;
struct
acpi_memory_device
*
mem_device
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_memory_device_add"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
mem_device
=
kmalloc
(
sizeof
(
struct
acpi_memory_device
),
GFP_KERNEL
);
if
(
!
mem_device
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
memset
(
mem_device
,
0
,
sizeof
(
struct
acpi_memory_device
));
mem_device
->
handle
=
device
->
handle
;
...
...
@@ -356,7 +348,7 @@ static int acpi_memory_device_add(struct acpi_device *device)
result
=
acpi_memory_get_device_resources
(
mem_device
);
if
(
result
)
{
kfree
(
mem_device
);
return
_VALUE
(
result
)
;
return
result
;
}
/* Set the device state */
...
...
@@ -364,22 +356,21 @@ static int acpi_memory_device_add(struct acpi_device *device)
printk
(
KERN_INFO
"%s
\n
"
,
acpi_device_name
(
device
));
return
_VALUE
(
result
)
;
return
result
;
}
static
int
acpi_memory_device_remove
(
struct
acpi_device
*
device
,
int
type
)
{
struct
acpi_memory_device
*
mem_device
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_memory_device_remove"
);
if
(
!
device
||
!
acpi_driver_data
(
device
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
mem_device
=
(
struct
acpi_memory_device
*
)
acpi_driver_data
(
device
);
kfree
(
mem_device
);
return
_VALUE
(
0
)
;
return
0
;
}
/*
...
...
@@ -392,16 +383,15 @@ static acpi_status is_memory_device(acpi_handle handle)
struct
acpi_buffer
buffer
=
{
ACPI_ALLOCATE_BUFFER
,
NULL
};
struct
acpi_device_info
*
info
;
ACPI_FUNCTION_TRACE
(
"is_memory_device"
);
status
=
acpi_get_object_info
(
handle
,
&
buffer
);
if
(
ACPI_FAILURE
(
status
))
return
_ACPI_STATUS
(
status
)
;
return
status
;
info
=
buffer
.
pointer
;
if
(
!
(
info
->
valid
&
ACPI_VALID_HID
))
{
acpi_os_free
(
buffer
.
pointer
);
return
_ACPI_STATUS
(
AE_ERROR
)
;
return
AE_ERROR
;
}
hardware_id
=
info
->
hardware_id
.
value
;
...
...
@@ -410,7 +400,7 @@ static acpi_status is_memory_device(acpi_handle handle)
status
=
AE_ERROR
;
acpi_os_free
(
buffer
.
pointer
);
return
_ACPI_STATUS
(
status
)
;
return
status
;
}
static
acpi_status
...
...
@@ -419,18 +409,17 @@ acpi_memory_register_notify_handler(acpi_handle handle,
{
acpi_status
status
;
ACPI_FUNCTION_TRACE
(
"acpi_memory_register_notify_handler"
);
status
=
is_memory_device
(
handle
);
if
(
ACPI_FAILURE
(
status
)){
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"handle is no memory device"
));
return
_ACPI_STATUS
(
AE_OK
)
;
/* continue */
return
AE_OK
;
/* continue */
}
status
=
acpi_install_notify_handler
(
handle
,
ACPI_SYSTEM_NOTIFY
,
acpi_memory_device_notify
,
NULL
);
/* continue */
return
_ACPI_STATUS
(
AE_OK
)
;
return
AE_OK
;
}
static
acpi_status
...
...
@@ -439,19 +428,18 @@ acpi_memory_deregister_notify_handler(acpi_handle handle,
{
acpi_status
status
;
ACPI_FUNCTION_TRACE
(
"acpi_memory_deregister_notify_handler"
);
status
=
is_memory_device
(
handle
);
if
(
ACPI_FAILURE
(
status
)){
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"handle is no memory device"
));
return
_ACPI_STATUS
(
AE_OK
)
;
/* continue */
return
AE_OK
;
/* continue */
}
status
=
acpi_remove_notify_handler
(
handle
,
ACPI_SYSTEM_NOTIFY
,
acpi_memory_device_notify
);
return
_ACPI_STATUS
(
AE_OK
)
;
/* continue */
return
AE_OK
;
/* continue */
}
static
int
__init
acpi_memory_device_init
(
void
)
...
...
@@ -459,12 +447,11 @@ static int __init acpi_memory_device_init(void)
int
result
;
acpi_status
status
;
ACPI_FUNCTION_TRACE
(
"acpi_memory_device_init"
);
result
=
acpi_bus_register_driver
(
&
acpi_memory_device_driver
);
if
(
result
<
0
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
status
=
acpi_walk_namespace
(
ACPI_TYPE_DEVICE
,
ACPI_ROOT_OBJECT
,
ACPI_UINT32_MAX
,
...
...
@@ -474,17 +461,16 @@ static int __init acpi_memory_device_init(void)
if
(
ACPI_FAILURE
(
status
))
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"walk_namespace failed"
));
acpi_bus_unregister_driver
(
&
acpi_memory_device_driver
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
return
_VALUE
(
0
)
;
return
0
;
}
static
void
__exit
acpi_memory_device_exit
(
void
)
{
acpi_status
status
;
ACPI_FUNCTION_TRACE
(
"acpi_memory_device_exit"
);
/*
* Adding this to un-install notification handlers for all the device
...
...
@@ -500,7 +486,7 @@ static void __exit acpi_memory_device_exit(void)
acpi_bus_unregister_driver
(
&
acpi_memory_device_driver
);
return
_VOID
;
return
;
}
module_init
(
acpi_memory_device_init
);
...
...
drivers/acpi/battery.c
浏览文件 @
d550d98d
...
...
@@ -132,17 +132,16 @@ acpi_battery_get_info(struct acpi_battery *battery,
struct
acpi_buffer
data
=
{
0
,
NULL
};
union
acpi_object
*
package
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_battery_get_info"
);
if
(
!
battery
||
!
bif
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
/* Evalute _BIF */
status
=
acpi_evaluate_object
(
battery
->
handle
,
"_BIF"
,
NULL
,
&
buffer
);
if
(
ACPI_FAILURE
(
status
))
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"Evaluating _BIF"
));
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
package
=
(
union
acpi_object
*
)
buffer
.
pointer
;
...
...
@@ -177,7 +176,7 @@ acpi_battery_get_info(struct acpi_battery *battery,
if
(
!
result
)
(
*
bif
)
=
(
struct
acpi_battery_info
*
)
data
.
pointer
;
return
_VALUE
(
result
)
;
return
result
;
}
static
int
...
...
@@ -193,17 +192,16 @@ acpi_battery_get_status(struct acpi_battery *battery,
struct
acpi_buffer
data
=
{
0
,
NULL
};
union
acpi_object
*
package
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_battery_get_status"
);
if
(
!
battery
||
!
bst
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
/* Evalute _BST */
status
=
acpi_evaluate_object
(
battery
->
handle
,
"_BST"
,
NULL
,
&
buffer
);
if
(
ACPI_FAILURE
(
status
))
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"Evaluating _BST"
));
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
package
=
(
union
acpi_object
*
)
buffer
.
pointer
;
...
...
@@ -238,7 +236,7 @@ acpi_battery_get_status(struct acpi_battery *battery,
if
(
!
result
)
(
*
bst
)
=
(
struct
acpi_battery_status
*
)
data
.
pointer
;
return
_VALUE
(
result
)
;
return
result
;
}
static
int
...
...
@@ -248,25 +246,24 @@ acpi_battery_set_alarm(struct acpi_battery *battery, unsigned long alarm)
union
acpi_object
arg0
=
{
ACPI_TYPE_INTEGER
};
struct
acpi_object_list
arg_list
=
{
1
,
&
arg0
};
ACPI_FUNCTION_TRACE
(
"acpi_battery_set_alarm"
);
if
(
!
battery
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
!
battery
->
flags
.
alarm
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
arg0
.
integer
.
value
=
alarm
;
status
=
acpi_evaluate_object
(
battery
->
handle
,
"_BTP"
,
&
arg_list
,
NULL
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Alarm set to %d
\n
"
,
(
u32
)
alarm
));
battery
->
alarm
=
alarm
;
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_battery_check
(
struct
acpi_battery
*
battery
)
...
...
@@ -277,18 +274,17 @@ static int acpi_battery_check(struct acpi_battery *battery)
struct
acpi_device
*
device
=
NULL
;
struct
acpi_battery_info
*
bif
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_battery_check"
);
if
(
!
battery
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
result
=
acpi_bus_get_device
(
battery
->
handle
,
&
device
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
result
=
acpi_bus_get_status
(
device
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
/* Insertion? */
...
...
@@ -300,7 +296,7 @@ static int acpi_battery_check(struct acpi_battery *battery)
result
=
acpi_battery_get_info
(
battery
,
&
bif
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
battery
->
flags
.
power_unit
=
bif
->
power_unit
;
battery
->
trips
.
warning
=
bif
->
design_capacity_warning
;
...
...
@@ -324,7 +320,7 @@ static int acpi_battery_check(struct acpi_battery *battery)
battery
->
flags
.
present
=
device
->
status
.
battery_present
;
return
_VALUE
(
result
)
;
return
result
;
}
/* --------------------------------------------------------------------------
...
...
@@ -339,7 +335,6 @@ static int acpi_battery_read_info(struct seq_file *seq, void *offset)
struct
acpi_battery_info
*
bif
=
NULL
;
char
*
units
=
"?"
;
ACPI_FUNCTION_TRACE
(
"acpi_battery_read_info"
);
if
(
!
battery
)
goto
end
;
...
...
@@ -409,7 +404,7 @@ static int acpi_battery_read_info(struct seq_file *seq, void *offset)
end:
kfree
(
bif
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_battery_info_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -424,7 +419,6 @@ static int acpi_battery_read_state(struct seq_file *seq, void *offset)
struct
acpi_battery_status
*
bst
=
NULL
;
char
*
units
=
"?"
;
ACPI_FUNCTION_TRACE
(
"acpi_battery_read_state"
);
if
(
!
battery
)
goto
end
;
...
...
@@ -487,7 +481,7 @@ static int acpi_battery_read_state(struct seq_file *seq, void *offset)
end:
kfree
(
bst
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_battery_state_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -500,7 +494,6 @@ static int acpi_battery_read_alarm(struct seq_file *seq, void *offset)
struct
acpi_battery
*
battery
=
(
struct
acpi_battery
*
)
seq
->
private
;
char
*
units
=
"?"
;
ACPI_FUNCTION_TRACE
(
"acpi_battery_read_alarm"
);
if
(
!
battery
)
goto
end
;
...
...
@@ -525,7 +518,7 @@ static int acpi_battery_read_alarm(struct seq_file *seq, void *offset)
seq_printf
(
seq
,
"%d %sh
\n
"
,
(
u32
)
battery
->
alarm
,
units
);
end:
return
_VALUE
(
0
)
;
return
0
;
}
static
ssize_t
...
...
@@ -538,25 +531,24 @@ acpi_battery_write_alarm(struct file *file,
struct
seq_file
*
m
=
(
struct
seq_file
*
)
file
->
private_data
;
struct
acpi_battery
*
battery
=
(
struct
acpi_battery
*
)
m
->
private
;
ACPI_FUNCTION_TRACE
(
"acpi_battery_write_alarm"
);
if
(
!
battery
||
(
count
>
sizeof
(
alarm_string
)
-
1
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
!
battery
->
flags
.
present
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
if
(
copy_from_user
(
alarm_string
,
buffer
,
count
))
return
_VALUE
(
-
EFAULT
)
;
return
-
EFAULT
;
alarm_string
[
count
]
=
'\0'
;
result
=
acpi_battery_set_alarm
(
battery
,
simple_strtoul
(
alarm_string
,
NULL
,
0
));
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
return
_VALUE
(
count
)
;
return
count
;
}
static
int
acpi_battery_alarm_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -593,13 +585,12 @@ static int acpi_battery_add_fs(struct acpi_device *device)
{
struct
proc_dir_entry
*
entry
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_battery_add_fs"
);
if
(
!
acpi_device_dir
(
device
))
{
acpi_device_dir
(
device
)
=
proc_mkdir
(
acpi_device_bid
(
device
),
acpi_battery_dir
);
if
(
!
acpi_device_dir
(
device
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
acpi_device_dir
(
device
)
->
owner
=
THIS_MODULE
;
}
...
...
@@ -607,7 +598,7 @@ static int acpi_battery_add_fs(struct acpi_device *device)
entry
=
create_proc_entry
(
ACPI_BATTERY_FILE_INFO
,
S_IRUGO
,
acpi_device_dir
(
device
));
if
(
!
entry
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
else
{
entry
->
proc_fops
=
&
acpi_battery_info_ops
;
entry
->
data
=
acpi_driver_data
(
device
);
...
...
@@ -618,7 +609,7 @@ static int acpi_battery_add_fs(struct acpi_device *device)
entry
=
create_proc_entry
(
ACPI_BATTERY_FILE_STATUS
,
S_IRUGO
,
acpi_device_dir
(
device
));
if
(
!
entry
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
else
{
entry
->
proc_fops
=
&
acpi_battery_state_ops
;
entry
->
data
=
acpi_driver_data
(
device
);
...
...
@@ -630,19 +621,18 @@ static int acpi_battery_add_fs(struct acpi_device *device)
S_IFREG
|
S_IRUGO
|
S_IWUSR
,
acpi_device_dir
(
device
));
if
(
!
entry
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
else
{
entry
->
proc_fops
=
&
acpi_battery_alarm_ops
;
entry
->
data
=
acpi_driver_data
(
device
);
entry
->
owner
=
THIS_MODULE
;
}
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_battery_remove_fs
(
struct
acpi_device
*
device
)
{
ACPI_FUNCTION_TRACE
(
"acpi_battery_remove_fs"
);
if
(
acpi_device_dir
(
device
))
{
remove_proc_entry
(
ACPI_BATTERY_FILE_ALARM
,
...
...
@@ -656,7 +646,7 @@ static int acpi_battery_remove_fs(struct acpi_device *device)
acpi_device_dir
(
device
)
=
NULL
;
}
return
_VALUE
(
0
)
;
return
0
;
}
/* --------------------------------------------------------------------------
...
...
@@ -668,13 +658,12 @@ static void acpi_battery_notify(acpi_handle handle, u32 event, void *data)
struct
acpi_battery
*
battery
=
(
struct
acpi_battery
*
)
data
;
struct
acpi_device
*
device
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_battery_notify"
);
if
(
!
battery
)
return
_VOID
;
return
;
if
(
acpi_bus_get_device
(
handle
,
&
device
))
return
_VOID
;
return
;
switch
(
event
)
{
case
ACPI_BATTERY_NOTIFY_STATUS
:
...
...
@@ -688,7 +677,7 @@ static void acpi_battery_notify(acpi_handle handle, u32 event, void *data)
break
;
}
return
_VOID
;
return
;
}
static
int
acpi_battery_add
(
struct
acpi_device
*
device
)
...
...
@@ -697,14 +686,13 @@ static int acpi_battery_add(struct acpi_device *device)
acpi_status
status
=
0
;
struct
acpi_battery
*
battery
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_battery_add"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
battery
=
kmalloc
(
sizeof
(
struct
acpi_battery
),
GFP_KERNEL
);
if
(
!
battery
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
memset
(
battery
,
0
,
sizeof
(
struct
acpi_battery
));
battery
->
handle
=
device
->
handle
;
...
...
@@ -738,7 +726,7 @@ static int acpi_battery_add(struct acpi_device *device)
kfree
(
battery
);
}
return
_VALUE
(
result
)
;
return
result
;
}
static
int
acpi_battery_remove
(
struct
acpi_device
*
device
,
int
type
)
...
...
@@ -746,10 +734,9 @@ static int acpi_battery_remove(struct acpi_device *device, int type)
acpi_status
status
=
0
;
struct
acpi_battery
*
battery
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_battery_remove"
);
if
(
!
device
||
!
acpi_driver_data
(
device
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
battery
=
(
struct
acpi_battery
*
)
acpi_driver_data
(
device
);
...
...
@@ -761,38 +748,36 @@ static int acpi_battery_remove(struct acpi_device *device, int type)
kfree
(
battery
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
__init
acpi_battery_init
(
void
)
{
int
result
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_battery_init"
);
acpi_battery_dir
=
proc_mkdir
(
ACPI_BATTERY_CLASS
,
acpi_root_dir
);
if
(
!
acpi_battery_dir
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
acpi_battery_dir
->
owner
=
THIS_MODULE
;
result
=
acpi_bus_register_driver
(
&
acpi_battery_driver
);
if
(
result
<
0
)
{
remove_proc_entry
(
ACPI_BATTERY_CLASS
,
acpi_root_dir
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
return
_VALUE
(
0
)
;
return
0
;
}
static
void
__exit
acpi_battery_exit
(
void
)
{
ACPI_FUNCTION_TRACE
(
"acpi_battery_exit"
);
acpi_bus_unregister_driver
(
&
acpi_battery_driver
);
remove_proc_entry
(
ACPI_BATTERY_CLASS
,
acpi_root_dir
);
return
_VOID
;
return
;
}
module_init
(
acpi_battery_init
);
...
...
drivers/acpi/bus.c
浏览文件 @
d550d98d
...
...
@@ -60,20 +60,19 @@ int acpi_bus_get_device(acpi_handle handle, struct acpi_device **device)
{
acpi_status
status
=
AE_OK
;
ACPI_FUNCTION_TRACE
(
"acpi_bus_get_device"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
/* TBD: Support fixed-feature devices */
status
=
acpi_get_data
(
handle
,
acpi_bus_data_handler
,
(
void
**
)
device
);
if
(
ACPI_FAILURE
(
status
)
||
!*
device
)
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"No context for object [%p]"
,
handle
));
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
return
_VALUE
(
0
)
;
return
0
;
}
EXPORT_SYMBOL
(
acpi_bus_get_device
);
...
...
@@ -83,10 +82,9 @@ int acpi_bus_get_status(struct acpi_device *device)
acpi_status
status
=
AE_OK
;
unsigned
long
sta
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_bus_get_status"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
/*
* Evaluate _STA if present.
...
...
@@ -95,7 +93,7 @@ int acpi_bus_get_status(struct acpi_device *device)
status
=
acpi_evaluate_integer
(
device
->
handle
,
"_STA"
,
NULL
,
&
sta
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
STRUCT_TO_INT
(
device
->
status
)
=
(
int
)
sta
;
}
...
...
@@ -119,7 +117,7 @@ int acpi_bus_get_status(struct acpi_device *device)
device
->
pnp
.
bus_id
,
(
u32
)
STRUCT_TO_INT
(
device
->
status
)));
return
_VALUE
(
0
)
;
return
0
;
}
EXPORT_SYMBOL
(
acpi_bus_get_status
);
...
...
@@ -135,11 +133,10 @@ int acpi_bus_get_power(acpi_handle handle, int *state)
struct
acpi_device
*
device
=
NULL
;
unsigned
long
psc
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_bus_get_power"
);
result
=
acpi_bus_get_device
(
handle
,
&
device
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
*
state
=
ACPI_STATE_UNKNOWN
;
...
...
@@ -158,12 +155,12 @@ int acpi_bus_get_power(acpi_handle handle, int *state)
status
=
acpi_evaluate_integer
(
device
->
handle
,
"_PSC"
,
NULL
,
&
psc
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
device
->
power
.
state
=
(
int
)
psc
;
}
else
if
(
device
->
power
.
flags
.
power_resources
)
{
result
=
acpi_power_get_inferred_state
(
device
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
}
*
state
=
device
->
power
.
state
;
...
...
@@ -172,7 +169,7 @@ int acpi_bus_get_power(acpi_handle handle, int *state)
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Device [%s] power state is D%d
\n
"
,
device
->
pnp
.
bus_id
,
device
->
power
.
state
));
return
_VALUE
(
0
)
;
return
0
;
}
EXPORT_SYMBOL
(
acpi_bus_get_power
);
...
...
@@ -184,21 +181,20 @@ int acpi_bus_set_power(acpi_handle handle, int state)
struct
acpi_device
*
device
=
NULL
;
char
object_name
[
5
]
=
{
'_'
,
'P'
,
'S'
,
'0'
+
state
,
'\0'
};
ACPI_FUNCTION_TRACE
(
"acpi_bus_set_power"
);
result
=
acpi_bus_get_device
(
handle
,
&
device
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
if
((
state
<
ACPI_STATE_D0
)
||
(
state
>
ACPI_STATE_D3
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
/* Make sure this is a valid target state */
if
(
!
device
->
flags
.
power_manageable
)
{
printk
(
KERN_DEBUG
"Device `[%s]is not power manageable"
,
device
->
kobj
.
name
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
/*
* Get device's current power state if it's unknown
...
...
@@ -210,18 +206,18 @@ int acpi_bus_set_power(acpi_handle handle, int state)
if
(
state
==
device
->
power
.
state
)
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Device is already at D%d
\n
"
,
state
));
return
_VALUE
(
0
)
;
return
0
;
}
}
if
(
!
device
->
power
.
states
[
state
].
flags
.
valid
)
{
printk
(
KERN_WARNING
PREFIX
"Device does not support D%d
\n
"
,
state
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
if
(
device
->
parent
&&
(
state
<
device
->
parent
->
power
.
state
))
{
printk
(
KERN_WARNING
PREFIX
"Cannot set device to a higher-powered"
" state than parent
\n
"
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
/*
...
...
@@ -271,7 +267,7 @@ int acpi_bus_set_power(acpi_handle handle, int state)
"Device [%s] transitioned to D%d
\n
"
,
device
->
pnp
.
bus_id
,
state
));
return
_VALUE
(
result
)
;
return
result
;
}
EXPORT_SYMBOL
(
acpi_bus_set_power
);
...
...
@@ -292,18 +288,17 @@ int acpi_bus_generate_event(struct acpi_device *device, u8 type, int data)
struct
acpi_bus_event
*
event
=
NULL
;
unsigned
long
flags
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_bus_generate_event"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
/* drop event on the floor if no one's listening */
if
(
!
event_is_open
)
return
_VALUE
(
0
)
;
return
0
;
event
=
kmalloc
(
sizeof
(
struct
acpi_bus_event
),
GFP_ATOMIC
);
if
(
!
event
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
strcpy
(
event
->
device_class
,
device
->
pnp
.
device_class
);
strcpy
(
event
->
bus_id
,
device
->
pnp
.
bus_id
);
...
...
@@ -316,7 +311,7 @@ int acpi_bus_generate_event(struct acpi_device *device, u8 type, int data)
wake_up_interruptible
(
&
acpi_bus_event_queue
);
return
_VALUE
(
0
)
;
return
0
;
}
EXPORT_SYMBOL
(
acpi_bus_generate_event
);
...
...
@@ -328,10 +323,9 @@ int acpi_bus_receive_event(struct acpi_bus_event *event)
DECLARE_WAITQUEUE
(
wait
,
current
);
ACPI_FUNCTION_TRACE
(
"acpi_bus_receive_event"
);
if
(
!
event
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
list_empty
(
&
acpi_bus_event_list
))
{
...
...
@@ -345,7 +339,7 @@ int acpi_bus_receive_event(struct acpi_bus_event *event)
set_current_state
(
TASK_RUNNING
);
if
(
signal_pending
(
current
))
return
_VALUE
(
-
ERESTARTSYS
)
;
return
-
ERESTARTSYS
;
}
spin_lock_irqsave
(
&
acpi_bus_event_lock
,
flags
);
...
...
@@ -356,13 +350,13 @@ int acpi_bus_receive_event(struct acpi_bus_event *event)
spin_unlock_irqrestore
(
&
acpi_bus_event_lock
,
flags
);
if
(
!
entry
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
memcpy
(
event
,
entry
,
sizeof
(
struct
acpi_bus_event
));
kfree
(
entry
);
return
_VALUE
(
0
)
;
return
0
;
}
EXPORT_SYMBOL
(
acpi_bus_receive_event
);
...
...
@@ -377,10 +371,9 @@ acpi_bus_check_device(struct acpi_device *device, int *status_changed)
acpi_status
status
=
0
;
struct
acpi_device_status
old_status
;
ACPI_FUNCTION_TRACE
(
"acpi_bus_check_device"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
status_changed
)
*
status_changed
=
0
;
...
...
@@ -397,15 +390,15 @@ acpi_bus_check_device(struct acpi_device *device, int *status_changed)
if
(
status_changed
)
*
status_changed
=
1
;
}
return
_VALUE
(
0
)
;
return
0
;
}
status
=
acpi_bus_get_status
(
device
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
if
(
STRUCT_TO_INT
(
old_status
)
==
STRUCT_TO_INT
(
device
->
status
))
return
_VALUE
(
0
)
;
return
0
;
if
(
status_changed
)
*
status_changed
=
1
;
...
...
@@ -421,7 +414,7 @@ acpi_bus_check_device(struct acpi_device *device, int *status_changed)
/* TBD: Handle device removal */
}
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_bus_check_scope
(
struct
acpi_device
*
device
)
...
...
@@ -429,25 +422,24 @@ static int acpi_bus_check_scope(struct acpi_device *device)
int
result
=
0
;
int
status_changed
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_bus_check_scope"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
/* Status Change? */
result
=
acpi_bus_check_device
(
device
,
&
status_changed
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
if
(
!
status_changed
)
return
_VALUE
(
0
)
;
return
0
;
/*
* TBD: Enumerate child devices within this device's scope and
* run acpi_bus_check_device()'s on them.
*/
return
_VALUE
(
0
)
;
return
0
;
}
/**
...
...
@@ -460,10 +452,9 @@ static void acpi_bus_notify(acpi_handle handle, u32 type, void *data)
int
result
=
0
;
struct
acpi_device
*
device
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_bus_notify"
);
if
(
acpi_bus_get_device
(
handle
,
&
device
))
return
_VOID
;
return
;
switch
(
type
)
{
...
...
@@ -538,7 +529,7 @@ static void acpi_bus_notify(acpi_handle handle, u32 type, void *data)
break
;
}
return
_VOID
;
return
;
}
/* --------------------------------------------------------------------------
...
...
@@ -552,7 +543,6 @@ static int __init acpi_bus_init_irq(void)
struct
acpi_object_list
arg_list
=
{
1
,
&
arg
};
char
*
message
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_bus_init_irq"
);
/*
* Let the system know what interrupt model we are using by
...
...
@@ -571,7 +561,7 @@ static int __init acpi_bus_init_irq(void)
break
;
default:
printk
(
KERN_WARNING
PREFIX
"Unknown interrupt routing model
\n
"
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
printk
(
KERN_INFO
PREFIX
"Using %s for interrupt routing
\n
"
,
message
);
...
...
@@ -581,10 +571,10 @@ static int __init acpi_bus_init_irq(void)
status
=
acpi_evaluate_object
(
NULL
,
"
\\
_PIC"
,
&
arg_list
,
NULL
);
if
(
ACPI_FAILURE
(
status
)
&&
(
status
!=
AE_NOT_FOUND
))
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"Evaluating _PIC"
));
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
return
_VALUE
(
0
)
;
return
0
;
}
void
__init
acpi_early_init
(
void
)
...
...
@@ -592,10 +582,9 @@ void __init acpi_early_init(void)
acpi_status
status
=
AE_OK
;
struct
acpi_buffer
buffer
=
{
sizeof
(
acpi_fadt
),
&
acpi_fadt
};
ACPI_FUNCTION_TRACE
(
"acpi_early_init"
);
if
(
acpi_disabled
)
return
_VOID
;
return
;
printk
(
KERN_INFO
PREFIX
"Core revision %08x
\n
"
,
ACPI_CA_VERSION
);
...
...
@@ -655,11 +644,11 @@ void __init acpi_early_init(void)
goto
error0
;
}
return
_VOID
;
return
;
error0:
disable_acpi
();
return
_VOID
;
return
;
}
static
int
__init
acpi_bus_init
(
void
)
...
...
@@ -668,7 +657,6 @@ static int __init acpi_bus_init(void)
acpi_status
status
=
AE_OK
;
extern
acpi_status
acpi_os_initialize1
(
void
);
ACPI_FUNCTION_TRACE
(
"acpi_bus_init"
);
status
=
acpi_os_initialize1
();
...
...
@@ -730,12 +718,12 @@ static int __init acpi_bus_init(void)
*/
acpi_root_dir
=
proc_mkdir
(
ACPI_BUS_FILE_ROOT
,
NULL
);
return
_VALUE
(
0
)
;
return
0
;
/* Mimic structured exception handling */
error1:
acpi_terminate
();
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
decl_subsys
(
acpi
,
NULL
,
NULL
);
...
...
@@ -744,11 +732,10 @@ static int __init acpi_init(void)
{
int
result
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_init"
);
if
(
acpi_disabled
)
{
printk
(
KERN_INFO
PREFIX
"Interpreter disabled.
\n
"
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
firmware_register
(
&
acpi_subsys
);
...
...
@@ -769,7 +756,7 @@ static int __init acpi_init(void)
}
else
disable_acpi
();
return
_VALUE
(
result
)
;
return
result
;
}
subsys_initcall
(
acpi_init
);
drivers/acpi/button.c
浏览文件 @
d550d98d
...
...
@@ -112,15 +112,14 @@ static int acpi_button_info_seq_show(struct seq_file *seq, void *offset)
{
struct
acpi_button
*
button
=
(
struct
acpi_button
*
)
seq
->
private
;
ACPI_FUNCTION_TRACE
(
"acpi_button_info_seq_show"
);
if
(
!
button
||
!
button
->
device
)
return
_VALUE
(
0
)
;
return
0
;
seq_printf
(
seq
,
"type: %s
\n
"
,
acpi_device_name
(
button
->
device
));
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_button_info_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -134,10 +133,9 @@ static int acpi_button_state_seq_show(struct seq_file *seq, void *offset)
acpi_status
status
;
unsigned
long
state
;
ACPI_FUNCTION_TRACE
(
"acpi_button_state_seq_show"
);
if
(
!
button
||
!
button
->
device
)
return
_VALUE
(
0
)
;
return
0
;
status
=
acpi_evaluate_integer
(
button
->
handle
,
"_LID"
,
NULL
,
&
state
);
if
(
ACPI_FAILURE
(
status
))
{
...
...
@@ -147,7 +145,7 @@ static int acpi_button_state_seq_show(struct seq_file *seq, void *offset)
(
state
?
"open"
:
"closed"
));
}
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_button_state_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -164,10 +162,9 @@ static int acpi_button_add_fs(struct acpi_device *device)
struct
proc_dir_entry
*
entry
=
NULL
;
struct
acpi_button
*
button
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_button_add_fs"
);
if
(
!
device
||
!
acpi_driver_data
(
device
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
button
=
acpi_driver_data
(
device
);
...
...
@@ -195,19 +192,19 @@ static int acpi_button_add_fs(struct acpi_device *device)
}
if
(
!
entry
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
entry
->
owner
=
THIS_MODULE
;
acpi_device_dir
(
device
)
=
proc_mkdir
(
acpi_device_bid
(
device
),
entry
);
if
(
!
acpi_device_dir
(
device
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
acpi_device_dir
(
device
)
->
owner
=
THIS_MODULE
;
/* 'info' [R] */
entry
=
create_proc_entry
(
ACPI_BUTTON_FILE_INFO
,
S_IRUGO
,
acpi_device_dir
(
device
));
if
(
!
entry
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
else
{
entry
->
proc_fops
=
&
acpi_button_info_fops
;
entry
->
data
=
acpi_driver_data
(
device
);
...
...
@@ -227,14 +224,13 @@ static int acpi_button_add_fs(struct acpi_device *device)
}
}
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_button_remove_fs
(
struct
acpi_device
*
device
)
{
struct
acpi_button
*
button
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_button_remove_fs"
);
button
=
acpi_driver_data
(
device
);
if
(
acpi_device_dir
(
device
))
{
...
...
@@ -249,7 +245,7 @@ static int acpi_button_remove_fs(struct acpi_device *device)
acpi_device_dir
(
device
)
=
NULL
;
}
return
_VALUE
(
0
)
;
return
0
;
}
/* --------------------------------------------------------------------------
...
...
@@ -260,10 +256,9 @@ static void acpi_button_notify(acpi_handle handle, u32 event, void *data)
{
struct
acpi_button
*
button
=
(
struct
acpi_button
*
)
data
;
ACPI_FUNCTION_TRACE
(
"acpi_button_notify"
);
if
(
!
button
||
!
button
->
device
)
return
_VOID
;
return
;
switch
(
event
)
{
case
ACPI_BUTTON_NOTIFY_STATUS
:
...
...
@@ -276,21 +271,20 @@ static void acpi_button_notify(acpi_handle handle, u32 event, void *data)
break
;
}
return
_VOID
;
return
;
}
static
acpi_status
acpi_button_notify_fixed
(
void
*
data
)
{
struct
acpi_button
*
button
=
(
struct
acpi_button
*
)
data
;
ACPI_FUNCTION_TRACE
(
"acpi_button_notify_fixed"
);
if
(
!
button
)
return
_ACPI_STATUS
(
AE_BAD_PARAMETER
)
;
return
AE_BAD_PARAMETER
;
acpi_button_notify
(
button
->
handle
,
ACPI_BUTTON_NOTIFY_STATUS
,
button
);
return
_ACPI_STATUS
(
AE_OK
)
;
return
AE_OK
;
}
static
int
acpi_button_add
(
struct
acpi_device
*
device
)
...
...
@@ -299,14 +293,13 @@ static int acpi_button_add(struct acpi_device *device)
acpi_status
status
=
AE_OK
;
struct
acpi_button
*
button
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_button_add"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
button
=
kmalloc
(
sizeof
(
struct
acpi_button
),
GFP_KERNEL
);
if
(
!
button
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
memset
(
button
,
0
,
sizeof
(
struct
acpi_button
));
button
->
device
=
device
;
...
...
@@ -400,7 +393,7 @@ static int acpi_button_add(struct acpi_device *device)
kfree
(
button
);
}
return
_VALUE
(
result
)
;
return
result
;
}
static
int
acpi_button_remove
(
struct
acpi_device
*
device
,
int
type
)
...
...
@@ -408,10 +401,9 @@ static int acpi_button_remove(struct acpi_device *device, int type)
acpi_status
status
=
0
;
struct
acpi_button
*
button
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_button_remove"
);
if
(
!
device
||
!
acpi_driver_data
(
device
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
button
=
acpi_driver_data
(
device
);
...
...
@@ -438,31 +430,29 @@ static int acpi_button_remove(struct acpi_device *device, int type)
kfree
(
button
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
__init
acpi_button_init
(
void
)
{
int
result
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_button_init"
);
acpi_button_dir
=
proc_mkdir
(
ACPI_BUTTON_CLASS
,
acpi_root_dir
);
if
(
!
acpi_button_dir
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
acpi_button_dir
->
owner
=
THIS_MODULE
;
result
=
acpi_bus_register_driver
(
&
acpi_button_driver
);
if
(
result
<
0
)
{
remove_proc_entry
(
ACPI_BUTTON_CLASS
,
acpi_root_dir
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
return
_VALUE
(
0
)
;
return
0
;
}
static
void
__exit
acpi_button_exit
(
void
)
{
ACPI_FUNCTION_TRACE
(
"acpi_button_exit"
);
acpi_bus_unregister_driver
(
&
acpi_button_driver
);
...
...
@@ -474,7 +464,7 @@ static void __exit acpi_button_exit(void)
remove_proc_entry
(
ACPI_BUTTON_SUBCLASS_LID
,
acpi_button_dir
);
remove_proc_entry
(
ACPI_BUTTON_CLASS
,
acpi_root_dir
);
return
_VOID
;
return
;
}
module_init
(
acpi_button_init
);
...
...
drivers/acpi/container.c
浏览文件 @
d550d98d
...
...
@@ -73,17 +73,16 @@ static int is_device_present(acpi_handle handle)
acpi_status
status
;
unsigned
long
sta
;
ACPI_FUNCTION_TRACE
(
"is_device_present"
);
status
=
acpi_get_handle
(
handle
,
"_STA"
,
&
temp
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
1
)
;
/* _STA not found, assmue device present */
return
1
;
/* _STA not found, assmue device present */
status
=
acpi_evaluate_integer
(
handle
,
"_STA"
,
NULL
,
&
sta
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
0
)
;
/* Firmware error */
return
0
;
/* Firmware error */
return
_VALUE
((
sta
&
ACPI_STA_PRESENT
)
==
ACPI_STA_PRESENT
);
return
((
sta
&
ACPI_STA_PRESENT
)
==
ACPI_STA_PRESENT
);
}
/*******************************************************************/
...
...
@@ -91,16 +90,15 @@ static int acpi_container_add(struct acpi_device *device)
{
struct
acpi_container
*
container
;
ACPI_FUNCTION_TRACE
(
"acpi_container_add"
);
if
(
!
device
)
{
printk
(
KERN_ERR
PREFIX
"device is NULL
\n
"
);
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
}
container
=
kmalloc
(
sizeof
(
struct
acpi_container
),
GFP_KERNEL
);
if
(
!
container
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
memset
(
container
,
0
,
sizeof
(
struct
acpi_container
));
container
->
handle
=
device
->
handle
;
...
...
@@ -111,7 +109,7 @@ static int acpi_container_add(struct acpi_device *device)
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Device <%s> bid <%s>
\n
"
,
acpi_device_name
(
device
),
acpi_device_bid
(
device
)));
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_container_remove
(
struct
acpi_device
*
device
,
int
type
)
...
...
@@ -130,23 +128,22 @@ static int container_device_add(struct acpi_device **device, acpi_handle handle)
struct
acpi_device
*
pdev
;
int
result
;
ACPI_FUNCTION_TRACE
(
"container_device_add"
);
if
(
acpi_get_parent
(
handle
,
&
phandle
))
{
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
if
(
acpi_bus_get_device
(
phandle
,
&
pdev
))
{
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
if
(
acpi_bus_add
(
device
,
pdev
,
handle
,
ACPI_BUS_TYPE_DEVICE
))
{
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
result
=
acpi_bus_start
(
*
device
);
return
_VALUE
(
result
)
;
return
result
;
}
static
void
container_notify_cb
(
acpi_handle
handle
,
u32
type
,
void
*
context
)
...
...
@@ -156,7 +153,6 @@ static void container_notify_cb(acpi_handle handle, u32 type, void *context)
int
present
;
acpi_status
status
;
ACPI_FUNCTION_TRACE
(
"container_notify_cb"
);
present
=
is_device_present
(
handle
);
...
...
@@ -192,7 +188,7 @@ static void container_notify_cb(acpi_handle handle, u32 type, void *context)
default:
break
;
}
return
_VOID
;
return
;
}
static
acpi_status
...
...
@@ -205,11 +201,10 @@ container_walk_namespace_cb(acpi_handle handle,
acpi_status
status
;
int
*
action
=
context
;
ACPI_FUNCTION_TRACE
(
"container_walk_namespace_cb"
);
status
=
acpi_get_object_info
(
handle
,
&
buffer
);
if
(
ACPI_FAILURE
(
status
)
||
!
buffer
.
pointer
)
{
return
_ACPI_STATUS
(
AE_OK
)
;
return
AE_OK
;
}
info
=
buffer
.
pointer
;
...
...
@@ -243,7 +238,7 @@ container_walk_namespace_cb(acpi_handle handle,
end:
acpi_os_free
(
buffer
.
pointer
);
return
_ACPI_STATUS
(
AE_OK
)
;
return
AE_OK
;
}
static
int
__init
acpi_container_init
(
void
)
...
...
@@ -269,7 +264,6 @@ static void __exit acpi_container_exit(void)
{
int
action
=
UNINSTALL_NOTIFY_HANDLER
;
ACPI_FUNCTION_TRACE
(
"acpi_container_exit"
);
acpi_walk_namespace
(
ACPI_TYPE_DEVICE
,
ACPI_ROOT_OBJECT
,
...
...
@@ -278,7 +272,7 @@ static void __exit acpi_container_exit(void)
acpi_bus_unregister_driver
(
&
acpi_container_driver
);
return
_VOID
;
return
;
}
module_init
(
acpi_container_init
);
...
...
drivers/acpi/debug.c
浏览文件 @
d550d98d
...
...
@@ -155,13 +155,12 @@ acpi_system_write_debug(struct file *file,
{
char
debug_string
[
12
]
=
{
'\0'
};
ACPI_FUNCTION_TRACE
(
"acpi_system_write_debug"
);
if
(
count
>
sizeof
(
debug_string
)
-
1
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
copy_from_user
(
debug_string
,
buffer
,
count
))
return
_VALUE
(
-
EFAULT
)
;
return
-
EFAULT
;
debug_string
[
count
]
=
'\0'
;
...
...
@@ -173,10 +172,10 @@ acpi_system_write_debug(struct file *file,
acpi_dbg_level
=
simple_strtoul
(
debug_string
,
NULL
,
0
);
break
;
default:
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
}
return
_VALUE
(
count
)
;
return
count
;
}
static
int
__init
acpi_debug_init
(
void
)
...
...
@@ -185,10 +184,9 @@ static int __init acpi_debug_init(void)
int
error
=
0
;
char
*
name
;
ACPI_FUNCTION_TRACE
(
"acpi_debug_init"
);
if
(
acpi_disabled
)
return
_VALUE
(
0
)
;
return
0
;
/* 'debug_layer' [R/W] */
name
=
ACPI_SYSTEM_FILE_DEBUG_LAYER
;
...
...
@@ -213,7 +211,7 @@ static int __init acpi_debug_init(void)
goto
Error
;
Done:
return
_VALUE
(
error
)
;
return
error
;
Error:
remove_proc_entry
(
ACPI_SYSTEM_FILE_DEBUG_LEVEL
,
acpi_root_dir
);
...
...
drivers/acpi/ec.c
浏览文件 @
d550d98d
...
...
@@ -207,7 +207,6 @@ static int acpi_ec_intr_wait(union acpi_ec *ec, unsigned int event)
{
int
result
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_ec_wait"
);
ec
->
intr
.
expect_event
=
event
;
smp_mb
();
...
...
@@ -216,7 +215,7 @@ static int acpi_ec_intr_wait(union acpi_ec *ec, unsigned int event)
case
ACPI_EC_EVENT_IBE
:
if
(
~
acpi_ec_read_status
(
ec
)
&
event
)
{
ec
->
intr
.
expect_event
=
0
;
return
_VALUE
(
0
)
;
return
0
;
}
break
;
default:
...
...
@@ -238,16 +237,16 @@ static int acpi_ec_intr_wait(union acpi_ec *ec, unsigned int event)
switch
(
event
)
{
case
ACPI_EC_EVENT_OBF
:
if
(
acpi_ec_read_status
(
ec
)
&
ACPI_EC_FLAG_OBF
)
return
_VALUE
(
0
)
;
return
0
;
break
;
case
ACPI_EC_EVENT_IBE
:
if
(
~
acpi_ec_read_status
(
ec
)
&
ACPI_EC_FLAG_IBF
)
return
_VALUE
(
0
)
;
return
0
;
break
;
}
return
_VALUE
(
-
ETIME
)
;
return
-
ETIME
;
}
#ifdef ACPI_FUTURE_USAGE
...
...
@@ -260,7 +259,6 @@ int acpi_ec_enter_burst_mode(union acpi_ec *ec)
u32
tmp
=
0
;
int
status
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_ec_enter_burst_mode"
);
status
=
acpi_ec_read_status
(
ec
);
if
(
status
!=
-
EINVAL
&&
!
(
status
&
ACPI_EC_FLAG_BURST
))
{
...
...
@@ -272,22 +270,21 @@ int acpi_ec_enter_burst_mode(union acpi_ec *ec)
status
=
acpi_ec_wait
(
ec
,
ACPI_EC_EVENT_OBF
);
acpi_hw_low_level_read
(
8
,
&
tmp
,
&
ec
->
common
.
data_addr
);
if
(
tmp
!=
0x90
)
{
/* Burst ACK byte */
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
}
}
atomic_set
(
&
ec
->
intr
.
leaving_burst
,
0
);
return
_VALUE
(
0
)
;
return
0
;
end:
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"EC wait, burst mode"
);
return
_VALUE
(
-
1
)
;
return
-
1
;
}
int
acpi_ec_leave_burst_mode
(
union
acpi_ec
*
ec
)
{
int
status
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_ec_leave_burst_mode"
);
status
=
acpi_ec_read_status
(
ec
);
if
(
status
!=
-
EINVAL
&&
(
status
&
ACPI_EC_FLAG_BURST
)){
...
...
@@ -298,10 +295,10 @@ int acpi_ec_leave_burst_mode(union acpi_ec *ec)
acpi_ec_wait
(
ec
,
ACPI_EC_FLAG_IBF
);
}
atomic_set
(
&
ec
->
intr
.
leaving_burst
,
1
);
return
_VALUE
(
0
)
;
return
0
;
end:
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"EC leave burst mode"
);
return
_VALUE
(
-
1
)
;
return
-
1
;
}
#endif
/* ACPI_FUTURE_USAGE */
...
...
@@ -325,17 +322,16 @@ static int acpi_ec_poll_read(union acpi_ec *ec, u8 address, u32 * data)
int
result
=
0
;
u32
glk
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_ec_read"
);
if
(
!
ec
||
!
data
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
*
data
=
0
;
if
(
ec
->
common
.
global_lock
)
{
status
=
acpi_acquire_global_lock
(
ACPI_EC_UDELAY_GLK
,
&
glk
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
if
(
down_interruptible
(
&
ec
->
poll
.
sem
))
{
...
...
@@ -365,7 +361,7 @@ static int acpi_ec_poll_read(union acpi_ec *ec, u8 address, u32 * data)
if
(
ec
->
common
.
global_lock
)
acpi_release_global_lock
(
glk
);
return
_VALUE
(
result
)
;
return
result
;
}
static
int
acpi_ec_poll_write
(
union
acpi_ec
*
ec
,
u8
address
,
u8
data
)
...
...
@@ -374,15 +370,14 @@ static int acpi_ec_poll_write(union acpi_ec *ec, u8 address, u8 data)
acpi_status
status
=
AE_OK
;
u32
glk
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_ec_write"
);
if
(
!
ec
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
ec
->
common
.
global_lock
)
{
status
=
acpi_acquire_global_lock
(
ACPI_EC_UDELAY_GLK
,
&
glk
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
if
(
down_interruptible
(
&
ec
->
poll
.
sem
))
{
...
...
@@ -415,7 +410,7 @@ static int acpi_ec_poll_write(union acpi_ec *ec, u8 address, u8 data)
if
(
ec
->
common
.
global_lock
)
acpi_release_global_lock
(
glk
);
return
_VALUE
(
result
)
;
return
result
;
}
static
int
acpi_ec_intr_read
(
union
acpi_ec
*
ec
,
u8
address
,
u32
*
data
)
...
...
@@ -423,17 +418,16 @@ static int acpi_ec_intr_read(union acpi_ec *ec, u8 address, u32 * data)
int
status
=
0
;
u32
glk
;
ACPI_FUNCTION_TRACE
(
"acpi_ec_read"
);
if
(
!
ec
||
!
data
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
*
data
=
0
;
if
(
ec
->
common
.
global_lock
)
{
status
=
acpi_acquire_global_lock
(
ACPI_EC_UDELAY_GLK
,
&
glk
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
WARN_ON
(
in_interrupt
());
...
...
@@ -467,7 +461,7 @@ static int acpi_ec_intr_read(union acpi_ec *ec, u8 address, u32 * data)
if
(
ec
->
common
.
global_lock
)
acpi_release_global_lock
(
glk
);
return
_VALUE
(
status
)
;
return
status
;
}
static
int
acpi_ec_intr_write
(
union
acpi_ec
*
ec
,
u8
address
,
u8
data
)
...
...
@@ -475,15 +469,14 @@ static int acpi_ec_intr_write(union acpi_ec *ec, u8 address, u8 data)
int
status
=
0
;
u32
glk
;
ACPI_FUNCTION_TRACE
(
"acpi_ec_write"
);
if
(
!
ec
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
ec
->
common
.
global_lock
)
{
status
=
acpi_acquire_global_lock
(
ACPI_EC_UDELAY_GLK
,
&
glk
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
WARN_ON
(
in_interrupt
());
...
...
@@ -516,7 +509,7 @@ static int acpi_ec_intr_write(union acpi_ec *ec, u8 address, u8 data)
if
(
ec
->
common
.
global_lock
)
acpi_release_global_lock
(
glk
);
return
_VALUE
(
status
)
;
return
status
;
}
/*
...
...
@@ -574,17 +567,16 @@ static int acpi_ec_poll_query(union acpi_ec *ec, u32 * data)
acpi_status
status
=
AE_OK
;
u32
glk
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_ec_query"
);
if
(
!
ec
||
!
data
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
*
data
=
0
;
if
(
ec
->
common
.
global_lock
)
{
status
=
acpi_acquire_global_lock
(
ACPI_EC_UDELAY_GLK
,
&
glk
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
/*
...
...
@@ -613,23 +605,22 @@ static int acpi_ec_poll_query(union acpi_ec *ec, u32 * data)
if
(
ec
->
common
.
global_lock
)
acpi_release_global_lock
(
glk
);
return
_VALUE
(
result
)
;
return
result
;
}
static
int
acpi_ec_intr_query
(
union
acpi_ec
*
ec
,
u32
*
data
)
{
int
status
=
0
;
u32
glk
;
ACPI_FUNCTION_TRACE
(
"acpi_ec_query"
);
if
(
!
ec
||
!
data
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
*
data
=
0
;
if
(
ec
->
common
.
global_lock
)
{
status
=
acpi_acquire_global_lock
(
ACPI_EC_UDELAY_GLK
,
&
glk
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
down
(
&
ec
->
intr
.
sem
);
...
...
@@ -662,7 +653,7 @@ static int acpi_ec_intr_query(union acpi_ec *ec, u32 * data)
if
(
ec
->
common
.
global_lock
)
acpi_release_global_lock
(
glk
);
return
_VALUE
(
status
)
;
return
status
;
}
/* --------------------------------------------------------------------------
...
...
@@ -691,13 +682,12 @@ static void acpi_ec_gpe_poll_query(void *ec_cxt)
'8'
,
'9'
,
'A'
,
'B'
,
'C'
,
'D'
,
'E'
,
'F'
};
ACPI_FUNCTION_TRACE
(
"acpi_ec_gpe_query"
);
if
(
!
ec_cxt
)
goto
end
;
if
(
down_interruptible
(
&
ec
->
poll
.
sem
))
{
return
_VOID
;
return
;
}
acpi_hw_low_level_read
(
8
,
&
value
,
&
ec
->
common
.
command_addr
);
up
(
&
ec
->
poll
.
sem
);
...
...
@@ -734,7 +724,6 @@ static void acpi_ec_gpe_intr_query(void *ec_cxt)
'8'
,
'9'
,
'A'
,
'B'
,
'C'
,
'D'
,
'E'
,
'F'
};
ACPI_FUNCTION_TRACE
(
"acpi_ec_gpe_query"
);
if
(
acpi_ec_read_status
(
ec
)
&
ACPI_EC_FLAG_SCI
)
result
=
acpi_ec_query
(
ec
,
&
value
);
...
...
@@ -846,15 +835,14 @@ acpi_ec_space_handler(u32 function,
acpi_integer
f_v
=
0
;
int
i
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_ec_space_handler"
);
if
((
address
>
0xFF
)
||
!
value
||
!
handler_context
)
return
_VALUE
(
AE_BAD_PARAMETER
)
;
return
AE_BAD_PARAMETER
;
if
(
bit_width
!=
8
&&
acpi_strict
)
{
printk
(
KERN_WARNING
PREFIX
"acpi_ec_space_handler: bit_width should be 8
\n
"
);
return
_VALUE
(
AE_BAD_PARAMETER
)
;
return
AE_BAD_PARAMETER
;
}
ec
=
(
union
acpi_ec
*
)
handler_context
;
...
...
@@ -893,16 +881,16 @@ acpi_ec_space_handler(u32 function,
out:
switch
(
result
)
{
case
-
EINVAL
:
return
_VALUE
(
AE_BAD_PARAMETER
)
;
return
AE_BAD_PARAMETER
;
break
;
case
-
ENODEV
:
return
_VALUE
(
AE_NOT_FOUND
)
;
return
AE_NOT_FOUND
;
break
;
case
-
ETIME
:
return
_VALUE
(
AE_TIME
)
;
return
AE_TIME
;
break
;
default:
return
_VALUE
(
AE_OK
)
;
return
AE_OK
;
}
}
...
...
@@ -916,7 +904,6 @@ static int acpi_ec_read_info(struct seq_file *seq, void *offset)
{
union
acpi_ec
*
ec
=
(
union
acpi_ec
*
)
seq
->
private
;
ACPI_FUNCTION_TRACE
(
"acpi_ec_read_info"
);
if
(
!
ec
)
goto
end
;
...
...
@@ -931,7 +918,7 @@ static int acpi_ec_read_info(struct seq_file *seq, void *offset)
acpi_enable_gpe
(
NULL
,
ec
->
common
.
gpe_bit
,
ACPI_NOT_ISR
);
end:
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_ec_info_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -951,31 +938,29 @@ static int acpi_ec_add_fs(struct acpi_device *device)
{
struct
proc_dir_entry
*
entry
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_ec_add_fs"
);
if
(
!
acpi_device_dir
(
device
))
{
acpi_device_dir
(
device
)
=
proc_mkdir
(
acpi_device_bid
(
device
),
acpi_ec_dir
);
if
(
!
acpi_device_dir
(
device
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
entry
=
create_proc_entry
(
ACPI_EC_FILE_INFO
,
S_IRUGO
,
acpi_device_dir
(
device
));
if
(
!
entry
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
else
{
entry
->
proc_fops
=
&
acpi_ec_info_ops
;
entry
->
data
=
acpi_driver_data
(
device
);
entry
->
owner
=
THIS_MODULE
;
}
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_ec_remove_fs
(
struct
acpi_device
*
device
)
{
ACPI_FUNCTION_TRACE
(
"acpi_ec_remove_fs"
);
if
(
acpi_device_dir
(
device
))
{
remove_proc_entry
(
ACPI_EC_FILE_INFO
,
acpi_device_dir
(
device
));
...
...
@@ -983,7 +968,7 @@ static int acpi_ec_remove_fs(struct acpi_device *device)
acpi_device_dir
(
device
)
=
NULL
;
}
return
_VALUE
(
0
)
;
return
0
;
}
/* --------------------------------------------------------------------------
...
...
@@ -996,14 +981,13 @@ static int acpi_ec_poll_add(struct acpi_device *device)
acpi_status
status
=
AE_OK
;
union
acpi_ec
*
ec
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_ec_add"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
ec
=
kmalloc
(
sizeof
(
union
acpi_ec
),
GFP_KERNEL
);
if
(
!
ec
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
memset
(
ec
,
0
,
sizeof
(
union
acpi_ec
));
ec
->
common
.
handle
=
device
->
handle
;
...
...
@@ -1056,7 +1040,7 @@ static int acpi_ec_poll_add(struct acpi_device *device)
if
(
result
)
kfree
(
ec
);
return
_VALUE
(
result
)
;
return
result
;
}
static
int
acpi_ec_intr_add
(
struct
acpi_device
*
device
)
{
...
...
@@ -1064,14 +1048,13 @@ static int acpi_ec_intr_add(struct acpi_device *device)
acpi_status
status
=
AE_OK
;
union
acpi_ec
*
ec
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_ec_add"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
ec
=
kmalloc
(
sizeof
(
union
acpi_ec
),
GFP_KERNEL
);
if
(
!
ec
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
memset
(
ec
,
0
,
sizeof
(
union
acpi_ec
));
ec
->
common
.
handle
=
device
->
handle
;
...
...
@@ -1127,17 +1110,16 @@ static int acpi_ec_intr_add(struct acpi_device *device)
if
(
result
)
kfree
(
ec
);
return
_VALUE
(
result
)
;
return
result
;
}
static
int
acpi_ec_remove
(
struct
acpi_device
*
device
,
int
type
)
{
union
acpi_ec
*
ec
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_ec_remove"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
ec
=
acpi_driver_data
(
device
);
...
...
@@ -1145,7 +1127,7 @@ static int acpi_ec_remove(struct acpi_device *device, int type)
kfree
(
ec
);
return
_VALUE
(
0
)
;
return
0
;
}
static
acpi_status
...
...
@@ -1184,15 +1166,14 @@ static int acpi_ec_start(struct acpi_device *device)
acpi_status
status
=
AE_OK
;
union
acpi_ec
*
ec
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_ec_start"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
ec
=
acpi_driver_data
(
device
);
if
(
!
ec
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
/*
* Get I/O port addresses. Convert to GAS format.
...
...
@@ -1202,7 +1183,7 @@ static int acpi_ec_start(struct acpi_device *device)
if
(
ACPI_FAILURE
(
status
)
||
ec
->
common
.
command_addr
.
register_bit_width
==
0
)
{
printk
(
KERN_ERR
PREFIX
"Error getting I/O port addresses
\n
"
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
ec
->
common
.
status_addr
=
ec
->
common
.
command_addr
;
...
...
@@ -1219,7 +1200,7 @@ static int acpi_ec_start(struct acpi_device *device)
ACPI_GPE_EDGE_TRIGGERED
,
&
acpi_ec_gpe_handler
,
ec
);
if
(
ACPI_FAILURE
(
status
))
{
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
acpi_set_gpe_type
(
NULL
,
ec
->
common
.
gpe_bit
,
ACPI_GPE_TYPE_RUNTIME
);
acpi_enable_gpe
(
NULL
,
ec
->
common
.
gpe_bit
,
ACPI_NOT_ISR
);
...
...
@@ -1231,10 +1212,10 @@ static int acpi_ec_start(struct acpi_device *device)
if
(
ACPI_FAILURE
(
status
))
{
acpi_remove_gpe_handler
(
NULL
,
ec
->
common
.
gpe_bit
,
&
acpi_ec_gpe_handler
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
return
_VALUE
(
AE_OK
)
;
return
AE_OK
;
}
static
int
acpi_ec_stop
(
struct
acpi_device
*
device
,
int
type
)
...
...
@@ -1242,10 +1223,9 @@ static int acpi_ec_stop(struct acpi_device *device, int type)
acpi_status
status
=
AE_OK
;
union
acpi_ec
*
ec
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_ec_stop"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
ec
=
acpi_driver_data
(
device
);
...
...
@@ -1253,15 +1233,15 @@ static int acpi_ec_stop(struct acpi_device *device, int type)
ACPI_ADR_SPACE_EC
,
&
acpi_ec_space_handler
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
status
=
acpi_remove_gpe_handler
(
NULL
,
ec
->
common
.
gpe_bit
,
&
acpi_ec_gpe_handler
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
return
_VALUE
(
0
)
;
return
0
;
}
static
acpi_status
__init
...
...
@@ -1531,23 +1511,22 @@ static int __init acpi_ec_init(void)
{
int
result
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_ec_init"
);
if
(
acpi_disabled
)
return
_VALUE
(
0
)
;
return
0
;
acpi_ec_dir
=
proc_mkdir
(
ACPI_EC_CLASS
,
acpi_root_dir
);
if
(
!
acpi_ec_dir
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
/* Now register the driver for the EC */
result
=
acpi_bus_register_driver
(
&
acpi_ec_driver
);
if
(
result
<
0
)
{
remove_proc_entry
(
ACPI_EC_CLASS
,
acpi_root_dir
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
return
_VALUE
(
result
)
;
return
result
;
}
subsys_initcall
(
acpi_ec_init
);
...
...
@@ -1556,13 +1535,12 @@ subsys_initcall(acpi_ec_init);
#if 0
static void __exit acpi_ec_exit(void)
{
ACPI_FUNCTION_TRACE("acpi_ec_exit");
acpi_bus_unregister_driver(&acpi_ec_driver);
remove_proc_entry(ACPI_EC_CLASS, acpi_root_dir);
return
_VOID
;
return;
}
#endif /* 0 */
...
...
drivers/acpi/event.c
浏览文件 @
d550d98d
...
...
@@ -48,18 +48,17 @@ acpi_system_read_event(struct file *file, char __user * buffer, size_t count,
static
int
chars_remaining
=
0
;
static
char
*
ptr
;
ACPI_FUNCTION_TRACE
(
"acpi_system_read_event"
);
if
(
!
chars_remaining
)
{
memset
(
&
event
,
0
,
sizeof
(
struct
acpi_bus_event
));
if
((
file
->
f_flags
&
O_NONBLOCK
)
&&
(
list_empty
(
&
acpi_bus_event_list
)))
return
_VALUE
(
-
EAGAIN
)
;
return
-
EAGAIN
;
result
=
acpi_bus_receive_event
(
&
event
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
chars_remaining
=
sprintf
(
str
,
"%s %s %08x %08x
\n
"
,
event
.
device_class
?
event
.
...
...
@@ -75,13 +74,13 @@ acpi_system_read_event(struct file *file, char __user * buffer, size_t count,
}
if
(
copy_to_user
(
buffer
,
ptr
,
count
))
return
_VALUE
(
-
EFAULT
)
;
return
-
EFAULT
;
*
ppos
+=
count
;
chars_remaining
-=
count
;
ptr
+=
count
;
return
_VALUE
(
count
)
;
return
count
;
}
static
int
acpi_system_close_event
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -112,10 +111,9 @@ static int __init acpi_event_init(void)
struct
proc_dir_entry
*
entry
;
int
error
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_event_init"
);
if
(
acpi_disabled
)
return
_VALUE
(
0
)
;
return
0
;
/* 'event' [R] */
entry
=
create_proc_entry
(
"event"
,
S_IRUSR
,
acpi_root_dir
);
...
...
@@ -124,7 +122,7 @@ static int __init acpi_event_init(void)
else
{
error
=
-
ENODEV
;
}
return
_VALUE
(
error
)
;
return
error
;
}
subsys_initcall
(
acpi_event_init
);
drivers/acpi/fan.c
浏览文件 @
d550d98d
...
...
@@ -78,7 +78,6 @@ static int acpi_fan_read_state(struct seq_file *seq, void *offset)
struct
acpi_fan
*
fan
=
seq
->
private
;
int
state
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_fan_read_state"
);
if
(
fan
)
{
if
(
acpi_bus_get_power
(
fan
->
handle
,
&
state
))
...
...
@@ -87,7 +86,7 @@ static int acpi_fan_read_state(struct seq_file *seq, void *offset)
seq_printf
(
seq
,
"status: %s
\n
"
,
!
state
?
"on"
:
"off"
);
}
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_fan_state_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -104,22 +103,21 @@ acpi_fan_write_state(struct file *file, const char __user * buffer,
struct
acpi_fan
*
fan
=
(
struct
acpi_fan
*
)
m
->
private
;
char
state_string
[
12
]
=
{
'\0'
};
ACPI_FUNCTION_TRACE
(
"acpi_fan_write_state"
);
if
(
!
fan
||
(
count
>
sizeof
(
state_string
)
-
1
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
copy_from_user
(
state_string
,
buffer
,
count
))
return
_VALUE
(
-
EFAULT
)
;
return
-
EFAULT
;
state_string
[
count
]
=
'\0'
;
result
=
acpi_bus_set_power
(
fan
->
handle
,
simple_strtoul
(
state_string
,
NULL
,
0
));
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
return
_VALUE
(
count
)
;
return
count
;
}
static
struct
file_operations
acpi_fan_state_ops
=
{
...
...
@@ -135,16 +133,15 @@ static int acpi_fan_add_fs(struct acpi_device *device)
{
struct
proc_dir_entry
*
entry
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_fan_add_fs"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
!
acpi_device_dir
(
device
))
{
acpi_device_dir
(
device
)
=
proc_mkdir
(
acpi_device_bid
(
device
),
acpi_fan_dir
);
if
(
!
acpi_device_dir
(
device
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
acpi_device_dir
(
device
)
->
owner
=
THIS_MODULE
;
}
...
...
@@ -153,19 +150,18 @@ static int acpi_fan_add_fs(struct acpi_device *device)
S_IFREG
|
S_IRUGO
|
S_IWUSR
,
acpi_device_dir
(
device
));
if
(
!
entry
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
else
{
entry
->
proc_fops
=
&
acpi_fan_state_ops
;
entry
->
data
=
acpi_driver_data
(
device
);
entry
->
owner
=
THIS_MODULE
;
}
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_fan_remove_fs
(
struct
acpi_device
*
device
)
{
ACPI_FUNCTION_TRACE
(
"acpi_fan_remove_fs"
);
if
(
acpi_device_dir
(
device
))
{
remove_proc_entry
(
ACPI_FAN_FILE_STATE
,
acpi_device_dir
(
device
));
...
...
@@ -173,7 +169,7 @@ static int acpi_fan_remove_fs(struct acpi_device *device)
acpi_device_dir
(
device
)
=
NULL
;
}
return
_VALUE
(
0
)
;
return
0
;
}
/* --------------------------------------------------------------------------
...
...
@@ -186,14 +182,13 @@ static int acpi_fan_add(struct acpi_device *device)
struct
acpi_fan
*
fan
=
NULL
;
int
state
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_fan_add"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
fan
=
kmalloc
(
sizeof
(
struct
acpi_fan
),
GFP_KERNEL
);
if
(
!
fan
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
memset
(
fan
,
0
,
sizeof
(
struct
acpi_fan
));
fan
->
handle
=
device
->
handle
;
...
...
@@ -223,17 +218,16 @@ static int acpi_fan_add(struct acpi_device *device)
if
(
result
)
kfree
(
fan
);
return
_VALUE
(
result
)
;
return
result
;
}
static
int
acpi_fan_remove
(
struct
acpi_device
*
device
,
int
type
)
{
struct
acpi_fan
*
fan
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_fan_remove"
);
if
(
!
device
||
!
acpi_driver_data
(
device
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
fan
=
(
struct
acpi_fan
*
)
acpi_driver_data
(
device
);
...
...
@@ -241,7 +235,7 @@ static int acpi_fan_remove(struct acpi_device *device, int type)
kfree
(
fan
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_fan_suspend
(
struct
acpi_device
*
device
,
int
state
)
...
...
@@ -280,31 +274,29 @@ static int __init acpi_fan_init(void)
{
int
result
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_fan_init"
);
acpi_fan_dir
=
proc_mkdir
(
ACPI_FAN_CLASS
,
acpi_root_dir
);
if
(
!
acpi_fan_dir
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
acpi_fan_dir
->
owner
=
THIS_MODULE
;
result
=
acpi_bus_register_driver
(
&
acpi_fan_driver
);
if
(
result
<
0
)
{
remove_proc_entry
(
ACPI_FAN_CLASS
,
acpi_root_dir
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
return
_VALUE
(
0
)
;
return
0
;
}
static
void
__exit
acpi_fan_exit
(
void
)
{
ACPI_FUNCTION_TRACE
(
"acpi_fan_exit"
);
acpi_bus_unregister_driver
(
&
acpi_fan_driver
);
remove_proc_entry
(
ACPI_FAN_CLASS
,
acpi_root_dir
);
return
_VOID
;
return
;
}
module_init
(
acpi_fan_init
);
...
...
drivers/acpi/hotkey.c
浏览文件 @
d550d98d
...
...
@@ -231,11 +231,10 @@ struct list_head hotkey_entries; /* head of the list of hotkey_list */
static
int
hotkey_info_seq_show
(
struct
seq_file
*
seq
,
void
*
offset
)
{
ACPI_FUNCTION_TRACE
(
"hotkey_info_seq_show"
);
seq_printf
(
seq
,
"Hotkey generic driver ver: %s
\n
"
,
HOTKEY_ACPI_VERSION
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
hotkey_info_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -266,7 +265,6 @@ static int hotkey_polling_seq_show(struct seq_file *seq, void *offset)
(
struct
acpi_polling_hotkey
*
)
seq
->
private
;
char
*
buf
;
ACPI_FUNCTION_TRACE
(
"hotkey_polling_seq_show"
);
if
(
poll_hotkey
->
poll_result
)
{
buf
=
format_result
(
poll_hotkey
->
poll_result
);
...
...
@@ -274,7 +272,7 @@ static int hotkey_polling_seq_show(struct seq_file *seq, void *offset)
seq_printf
(
seq
,
"%s"
,
buf
);
kfree
(
buf
);
}
return
_VALUE
(
0
)
;
return
0
;
}
static
int
hotkey_polling_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -293,7 +291,6 @@ static int hotkey_get_internal_event(int event, struct acpi_hotkey_list *list)
struct
list_head
*
entries
;
int
val
=
-
1
;
ACPI_FUNCTION_TRACE
(
"hotkey_get_internal_event"
);
list_for_each
(
entries
,
list
->
entries
)
{
union
acpi_hotkey
*
key
=
...
...
@@ -305,7 +302,7 @@ static int hotkey_get_internal_event(int event, struct acpi_hotkey_list *list)
}
}
return
_VALUE
(
val
)
;
return
val
;
}
static
void
...
...
@@ -314,15 +311,14 @@ acpi_hotkey_notify_handler(acpi_handle handle, u32 event, void *data)
struct
acpi_device
*
device
=
NULL
;
u32
internal_event
;
ACPI_FUNCTION_TRACE
(
"acpi_hotkey_notify_handler"
);
if
(
acpi_bus_get_device
(
handle
,
&
device
))
return
_VOID
;
return
;
internal_event
=
hotkey_get_internal_event
(
event
,
&
global_hotkey_list
);
acpi_bus_generate_event
(
device
,
internal_event
,
0
);
return
_VOID
;
return
;
}
/* Need to invent automatically hotkey add method */
...
...
@@ -346,7 +342,6 @@ static int create_polling_proc(union acpi_hotkey *device)
char
proc_name
[
80
];
mode_t
mode
;
ACPI_FUNCTION_TRACE
(
"create_polling_proc"
);
mode
=
S_IFREG
|
S_IRUGO
|
S_IWUGO
;
sprintf
(
proc_name
,
"%d"
,
device
->
link
.
hotkey_standard_num
);
...
...
@@ -356,7 +351,7 @@ static int create_polling_proc(union acpi_hotkey *device)
proc
=
create_proc_entry
(
proc_name
,
mode
,
hotkey_proc_dir
);
if
(
!
proc
)
{
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
else
{
proc
->
proc_fops
=
&
hotkey_polling_fops
;
proc
->
owner
=
THIS_MODULE
;
...
...
@@ -365,7 +360,7 @@ static int create_polling_proc(union acpi_hotkey *device)
proc
->
gid
=
0
;
device
->
poll_hotkey
.
proc
=
proc
;
}
return
_VALUE
(
0
)
;
return
0
;
}
static
int
hotkey_add
(
union
acpi_hotkey
*
device
)
...
...
@@ -373,7 +368,6 @@ static int hotkey_add(union acpi_hotkey *device)
int
status
=
0
;
struct
acpi_device
*
dev
=
NULL
;
ACPI_FUNCTION_TRACE
(
"hotkey_add"
);
if
(
device
->
link
.
hotkey_type
==
ACPI_HOTKEY_EVENT
)
{
acpi_bus_get_device
(
device
->
event_hotkey
.
bus_handle
,
&
dev
);
...
...
@@ -388,14 +382,13 @@ static int hotkey_add(union acpi_hotkey *device)
list_add_tail
(
&
device
->
link
.
entries
,
global_hotkey_list
.
entries
);
return
_VALUE
(
status
)
;
return
status
;
}
static
int
hotkey_remove
(
union
acpi_hotkey
*
device
)
{
struct
list_head
*
entries
,
*
next
;
ACPI_FUNCTION_TRACE
(
"hotkey_remove"
);
list_for_each_safe
(
entries
,
next
,
global_hotkey_list
.
entries
)
{
union
acpi_hotkey
*
key
=
...
...
@@ -409,14 +402,13 @@ static int hotkey_remove(union acpi_hotkey *device)
}
}
kfree
(
device
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
hotkey_update
(
union
acpi_hotkey
*
key
)
{
struct
list_head
*
entries
;
ACPI_FUNCTION_TRACE
(
"hotkey_update"
);
list_for_each
(
entries
,
global_hotkey_list
.
entries
)
{
union
acpi_hotkey
*
tmp
=
...
...
@@ -458,19 +450,18 @@ static int hotkey_update(union acpi_hotkey *key)
*/
kfree
(
key
);
}
return
_VALUE
(
0
)
;
return
0
;
break
;
}
}
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
static
void
free_hotkey_device
(
union
acpi_hotkey
*
key
)
{
struct
acpi_device
*
dev
;
ACPI_FUNCTION_TRACE
(
"free_hotkey_device"
);
if
(
key
->
link
.
hotkey_type
==
ACPI_HOTKEY_EVENT
)
{
acpi_bus_get_device
(
key
->
event_hotkey
.
bus_handle
,
&
dev
);
...
...
@@ -490,7 +481,7 @@ static void free_hotkey_device(union acpi_hotkey *key)
free_poll_hotkey_buffer
(
key
);
}
kfree
(
key
);
return
_VOID
;
return
;
}
static
void
free_hotkey_buffer
(
union
acpi_hotkey
*
key
)
...
...
@@ -511,7 +502,6 @@ init_hotkey_device(union acpi_hotkey *key, char *bus_str, char *action_str,
acpi_handle
tmp_handle
;
acpi_status
status
=
AE_OK
;
ACPI_FUNCTION_TRACE
(
"init_hotkey_device"
);
if
(
std_num
<
0
||
IS_POLL
(
std_num
)
||
!
key
)
goto
do_fail
;
...
...
@@ -538,9 +528,9 @@ init_hotkey_device(union acpi_hotkey *key, char *bus_str, char *action_str,
method
,
&
tmp_handle
);
if
(
ACPI_FAILURE
(
status
))
goto
do_fail
;
return
_VALUE
(
AE_OK
)
;
return
AE_OK
;
do_fail:
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
static
int
...
...
@@ -552,7 +542,6 @@ init_poll_hotkey_device(union acpi_hotkey *key,
acpi_status
status
=
AE_OK
;
acpi_handle
tmp_handle
;
ACPI_FUNCTION_TRACE
(
"init_poll_hotkey_device"
);
if
(
std_num
<
0
||
IS_EVENT
(
std_num
)
||
!
key
)
goto
do_fail
;
...
...
@@ -587,22 +576,20 @@ init_poll_hotkey_device(union acpi_hotkey *key,
(
union
acpi_object
*
)
kmalloc
(
sizeof
(
union
acpi_object
),
GFP_KERNEL
);
if
(
!
key
->
poll_hotkey
.
poll_result
)
goto
do_fail
;
return
_VALUE
(
AE_OK
)
;
return
AE_OK
;
do_fail:
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
static
int
hotkey_open_config
(
struct
inode
*
inode
,
struct
file
*
file
)
{
ACPI_FUNCTION_TRACE
(
"hotkey_open_config"
);
return_VALUE
(
single_open
return
(
single_open
(
file
,
hotkey_config_seq_show
,
PDE
(
inode
)
->
data
));
}
static
int
hotkey_poll_open_config
(
struct
inode
*
inode
,
struct
file
*
file
)
{
ACPI_FUNCTION_TRACE
(
"hotkey_poll_open_config"
);
return_VALUE
(
single_open
return
(
single_open
(
file
,
hotkey_poll_config_seq_show
,
PDE
(
inode
)
->
data
));
}
...
...
@@ -615,7 +602,6 @@ static int hotkey_config_seq_show(struct seq_file *seq, void *offset)
struct
acpi_buffer
bus
=
{
ACPI_PATHNAME_MAX
,
bus_name
};
struct
acpi_buffer
act
=
{
ACPI_PATHNAME_MAX
,
action_name
};
ACPI_FUNCTION_TRACE
((
"hotkey_config_seq_show"
));
list_for_each
(
entries
,
hotkey_list
->
entries
)
{
union
acpi_hotkey
*
key
=
...
...
@@ -633,7 +619,7 @@ static int hotkey_config_seq_show(struct seq_file *seq, void *offset)
}
}
seq_puts
(
seq
,
"
\n
"
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
hotkey_poll_config_seq_show
(
struct
seq_file
*
seq
,
void
*
offset
)
...
...
@@ -645,7 +631,6 @@ static int hotkey_poll_config_seq_show(struct seq_file *seq, void *offset)
struct
acpi_buffer
bus
=
{
ACPI_PATHNAME_MAX
,
bus_name
};
struct
acpi_buffer
act
=
{
ACPI_PATHNAME_MAX
,
action_name
};
ACPI_FUNCTION_TRACE
((
"hotkey_config_seq_show"
));
list_for_each
(
entries
,
hotkey_list
->
entries
)
{
union
acpi_hotkey
*
key
=
...
...
@@ -663,7 +648,7 @@ static int hotkey_poll_config_seq_show(struct seq_file *seq, void *offset)
}
}
seq_puts
(
seq
,
"
\n
"
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
...
...
@@ -675,7 +660,6 @@ get_parms(char *config_record,
char
**
method
,
int
*
internal_event_num
,
int
*
external_event_num
)
{
char
*
tmp
,
*
tmp1
,
count
;
ACPI_FUNCTION_TRACE
((
"get_parms"
));
sscanf
(
config_record
,
"%d"
,
cmd
);
...
...
@@ -741,9 +725,9 @@ get_parms(char *config_record,
0
)
goto
do_fail
;
return
_VALUE
(
6
)
;
return
6
;
do_fail:
return
_VALUE
(
-
1
)
;
return
-
1
;
}
/* count is length for one input record */
...
...
@@ -760,16 +744,15 @@ static ssize_t hotkey_write_config(struct file *file,
int
ret
=
0
;
union
acpi_hotkey
*
key
=
NULL
;
ACPI_FUNCTION_TRACE
((
"hotkey_write_config"
));
config_record
=
(
char
*
)
kmalloc
(
count
+
1
,
GFP_KERNEL
);
if
(
!
config_record
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
if
(
copy_from_user
(
config_record
,
buffer
,
count
))
{
kfree
(
config_record
);
printk
(
KERN_ERR
PREFIX
"Invalid data
\n
"
);
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
}
config_record
[
count
]
=
0
;
...
...
@@ -790,7 +773,7 @@ static ssize_t hotkey_write_config(struct file *file,
kfree
(
action_handle
);
kfree
(
method
);
printk
(
KERN_ERR
PREFIX
"Invalid data format ret=%d
\n
"
,
ret
);
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
}
key
=
kmalloc
(
sizeof
(
union
acpi_hotkey
),
GFP_KERNEL
);
...
...
@@ -825,7 +808,7 @@ static ssize_t hotkey_write_config(struct file *file,
free_poll_hotkey_buffer
(
key
);
kfree
(
key
);
printk
(
KERN_ERR
PREFIX
"Invalid hotkey
\n
"
);
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
}
cont_cmd:
...
...
@@ -851,7 +834,7 @@ static ssize_t hotkey_write_config(struct file *file,
goto
fail_out
;
break
;
}
return
_VALUE
(
count
)
;
return
count
;
fail_out:
if
(
IS_EVENT
(
internal_event_num
))
free_hotkey_buffer
(
key
);
...
...
@@ -859,7 +842,7 @@ static ssize_t hotkey_write_config(struct file *file,
free_poll_hotkey_buffer
(
key
);
kfree
(
key
);
printk
(
KERN_ERR
PREFIX
"invalid key
\n
"
);
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
}
/*
...
...
@@ -876,7 +859,6 @@ static int write_acpi_int(acpi_handle handle, const char *method, int val,
union
acpi_object
in_obj
;
/* the only param we use */
acpi_status
status
;
ACPI_FUNCTION_TRACE
(
"write_acpi_int"
);
params
.
count
=
1
;
params
.
pointer
=
&
in_obj
;
in_obj
.
type
=
ACPI_TYPE_INTEGER
;
...
...
@@ -884,7 +866,7 @@ static int write_acpi_int(acpi_handle handle, const char *method, int val,
status
=
acpi_evaluate_object
(
handle
,
(
char
*
)
method
,
&
params
,
output
);
return
_VALUE
(
status
==
AE_OK
);
return
(
status
==
AE_OK
);
}
static
int
read_acpi_int
(
acpi_handle
handle
,
const
char
*
method
,
...
...
@@ -894,7 +876,6 @@ static int read_acpi_int(acpi_handle handle, const char *method,
union
acpi_object
out_obj
;
acpi_status
status
;
ACPI_FUNCTION_TRACE
(
"read_acpi_int"
);
output
.
length
=
sizeof
(
out_obj
);
output
.
pointer
=
&
out_obj
;
...
...
@@ -904,7 +885,7 @@ static int read_acpi_int(acpi_handle handle, const char *method,
val
->
type
=
out_obj
.
type
;
}
else
printk
(
KERN_ERR
PREFIX
"null val pointer
\n
"
);
return
_VALUE
((
status
==
AE_OK
)
return
((
status
==
AE_OK
)
&&
(
out_obj
.
type
==
ACPI_TYPE_INTEGER
));
}
...
...
@@ -941,24 +922,23 @@ static ssize_t hotkey_execute_aml_method(struct file *file,
int
event
,
method_type
,
type
,
value
;
union
acpi_hotkey
*
key
;
ACPI_FUNCTION_TRACE
(
"hotkey_execte_aml_method"
);
arg
=
(
char
*
)
kmalloc
(
count
+
1
,
GFP_KERNEL
);
if
(
!
arg
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
arg
[
count
]
=
0
;
if
(
copy_from_user
(
arg
,
buffer
,
count
))
{
kfree
(
arg
);
printk
(
KERN_ERR
PREFIX
"Invalid argument 2
\n
"
);
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
}
if
(
sscanf
(
arg
,
"%d:%d:%d:%d"
,
&
event
,
&
method_type
,
&
type
,
&
value
)
!=
4
)
{
kfree
(
arg
);
printk
(
KERN_ERR
PREFIX
"Invalid argument 3
\n
"
);
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
}
kfree
(
arg
);
if
(
type
==
ACPI_TYPE_INTEGER
)
{
...
...
@@ -984,11 +964,11 @@ static ssize_t hotkey_execute_aml_method(struct file *file,
}
}
else
{
printk
(
KERN_WARNING
"Not supported
\n
"
);
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
}
return
_VALUE
(
count
)
;
return
count
;
do_fail:
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
}
...
...
@@ -997,7 +977,6 @@ static int __init hotkey_init(void)
int
result
;
mode_t
mode
=
S_IFREG
|
S_IRUGO
|
S_IWUGO
;
ACPI_FUNCTION_TRACE
(
"hotkey_init"
);
if
(
acpi_disabled
)
return
-
ENODEV
;
...
...
@@ -1084,7 +1063,6 @@ static void __exit hotkey_exit(void)
{
struct
list_head
*
entries
,
*
next
;
ACPI_FUNCTION_TRACE
(
"hotkey_exit"
);
list_for_each_safe
(
entries
,
next
,
global_hotkey_list
.
entries
)
{
union
acpi_hotkey
*
key
=
...
...
drivers/acpi/motherboard.c
浏览文件 @
d550d98d
...
...
@@ -52,13 +52,12 @@ static acpi_status acpi_reserve_io_ranges(struct acpi_resource *res, void *data)
{
struct
resource
*
requested_res
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_reserve_io_ranges"
);
if
(
res
->
type
==
ACPI_RESOURCE_TYPE_IO
)
{
struct
acpi_resource_io
*
io_res
=
&
res
->
data
.
io
;
if
(
io_res
->
minimum
!=
io_res
->
maximum
)
return
_VALUE
(
AE_OK
)
;
return
AE_OK
;
if
(
IS_RESERVED_ADDR
(
io_res
->
minimum
,
io_res
->
address_length
))
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
...
...
@@ -92,7 +91,7 @@ static acpi_status acpi_reserve_io_ranges(struct acpi_resource *res, void *data)
if
(
requested_res
)
requested_res
->
flags
&=
~
IORESOURCE_BUSY
;
return
_VALUE
(
AE_OK
)
;
return
AE_OK
;
}
static
int
acpi_motherboard_add
(
struct
acpi_device
*
device
)
...
...
drivers/acpi/osl.c
浏览文件 @
d550d98d
...
...
@@ -587,19 +587,18 @@ static void acpi_os_execute_deferred(void *context)
{
struct
acpi_os_dpc
*
dpc
=
NULL
;
ACPI_FUNCTION_TRACE
(
"os_execute_deferred"
);
dpc
=
(
struct
acpi_os_dpc
*
)
context
;
if
(
!
dpc
)
{
printk
(
KERN_ERR
PREFIX
"Invalid (NULL) context
\n
"
);
return
_VOID
;
return
;
}
dpc
->
function
(
dpc
->
context
);
kfree
(
dpc
);
return
_VOID
;
return
;
}
static
int
acpi_os_execute_thread
(
void
*
context
)
...
...
@@ -693,7 +692,6 @@ acpi_status acpi_os_create_lock(acpi_handle * out_handle)
{
spinlock_t
*
lock_ptr
;
ACPI_FUNCTION_TRACE
(
"os_create_lock"
);
lock_ptr
=
acpi_os_allocate
(
sizeof
(
spinlock_t
));
...
...
@@ -703,7 +701,7 @@ acpi_status acpi_os_create_lock(acpi_handle * out_handle)
*
out_handle
=
lock_ptr
;
return
_ACPI_STATUS
(
AE_OK
)
;
return
AE_OK
;
}
/*
...
...
@@ -711,13 +709,12 @@ acpi_status acpi_os_create_lock(acpi_handle * out_handle)
*/
void
acpi_os_delete_lock
(
acpi_handle
handle
)
{
ACPI_FUNCTION_TRACE
(
"os_create_lock"
);
ACPI_DEBUG_PRINT
((
ACPI_DB_MUTEX
,
"Deleting spinlock[%p].
\n
"
,
handle
));
acpi_os_free
(
handle
);
return
_VOID
;
return
;
}
acpi_status
...
...
@@ -725,11 +722,10 @@ acpi_os_create_semaphore(u32 max_units, u32 initial_units, acpi_handle * handle)
{
struct
semaphore
*
sem
=
NULL
;
ACPI_FUNCTION_TRACE
(
"os_create_semaphore"
);
sem
=
acpi_os_allocate
(
sizeof
(
struct
semaphore
));
if
(
!
sem
)
return
_ACPI_STATUS
(
AE_NO_MEMORY
)
;
return
AE_NO_MEMORY
;
memset
(
sem
,
0
,
sizeof
(
struct
semaphore
));
sema_init
(
sem
,
initial_units
);
...
...
@@ -739,7 +735,7 @@ acpi_os_create_semaphore(u32 max_units, u32 initial_units, acpi_handle * handle)
ACPI_DEBUG_PRINT
((
ACPI_DB_MUTEX
,
"Creating semaphore[%p|%d].
\n
"
,
*
handle
,
initial_units
));
return
_ACPI_STATUS
(
AE_OK
)
;
return
AE_OK
;
}
EXPORT_SYMBOL
(
acpi_os_create_semaphore
);
...
...
@@ -755,17 +751,16 @@ acpi_status acpi_os_delete_semaphore(acpi_handle handle)
{
struct
semaphore
*
sem
=
(
struct
semaphore
*
)
handle
;
ACPI_FUNCTION_TRACE
(
"os_delete_semaphore"
);
if
(
!
sem
)
return
_ACPI_STATUS
(
AE_BAD_PARAMETER
)
;
return
AE_BAD_PARAMETER
;
ACPI_DEBUG_PRINT
((
ACPI_DB_MUTEX
,
"Deleting semaphore[%p].
\n
"
,
handle
));
acpi_os_free
(
sem
);
sem
=
NULL
;
return
_ACPI_STATUS
(
AE_OK
)
;
return
AE_OK
;
}
EXPORT_SYMBOL
(
acpi_os_delete_semaphore
);
...
...
@@ -785,13 +780,12 @@ acpi_status acpi_os_wait_semaphore(acpi_handle handle, u32 units, u16 timeout)
struct
semaphore
*
sem
=
(
struct
semaphore
*
)
handle
;
int
ret
=
0
;
ACPI_FUNCTION_TRACE
(
"os_wait_semaphore"
);
if
(
!
sem
||
(
units
<
1
))
return
_ACPI_STATUS
(
AE_BAD_PARAMETER
)
;
return
AE_BAD_PARAMETER
;
if
(
units
>
1
)
return
_ACPI_STATUS
(
AE_SUPPORT
)
;
return
AE_SUPPORT
;
ACPI_DEBUG_PRINT
((
ACPI_DB_MUTEX
,
"Waiting for semaphore[%p|%d|%d]
\n
"
,
handle
,
units
,
timeout
));
...
...
@@ -850,7 +844,7 @@ acpi_status acpi_os_wait_semaphore(acpi_handle handle, u32 units, u16 timeout)
units
,
timeout
));
}
return
_ACPI_STATUS
(
status
)
;
return
status
;
}
EXPORT_SYMBOL
(
acpi_os_wait_semaphore
);
...
...
@@ -862,20 +856,19 @@ acpi_status acpi_os_signal_semaphore(acpi_handle handle, u32 units)
{
struct
semaphore
*
sem
=
(
struct
semaphore
*
)
handle
;
ACPI_FUNCTION_TRACE
(
"os_signal_semaphore"
);
if
(
!
sem
||
(
units
<
1
))
return
_ACPI_STATUS
(
AE_BAD_PARAMETER
)
;
return
AE_BAD_PARAMETER
;
if
(
units
>
1
)
return
_ACPI_STATUS
(
AE_SUPPORT
)
;
return
AE_SUPPORT
;
ACPI_DEBUG_PRINT
((
ACPI_DB_MUTEX
,
"Signaling semaphore[%p|%d]
\n
"
,
handle
,
units
));
up
(
sem
);
return
_ACPI_STATUS
(
AE_OK
)
;
return
AE_OK
;
}
EXPORT_SYMBOL
(
acpi_os_signal_semaphore
);
...
...
drivers/acpi/pci_bind.c
浏览文件 @
d550d98d
...
...
@@ -47,11 +47,10 @@ struct acpi_pci_data {
static
void
acpi_pci_data_handler
(
acpi_handle
handle
,
u32
function
,
void
*
context
)
{
ACPI_FUNCTION_TRACE
(
"acpi_pci_data_handler"
);
/* TBD: Anything we need to do here? */
return
_VOID
;
return
;
}
/**
...
...
@@ -68,17 +67,16 @@ acpi_status acpi_get_pci_id(acpi_handle handle, struct acpi_pci_id *id)
struct
acpi_device
*
device
=
NULL
;
struct
acpi_pci_data
*
data
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_get_pci_id"
);
if
(
!
id
)
return
_ACPI_STATUS
(
AE_BAD_PARAMETER
)
;
return
AE_BAD_PARAMETER
;
result
=
acpi_bus_get_device
(
handle
,
&
device
);
if
(
result
)
{
printk
(
KERN_ERR
PREFIX
"Invalid ACPI Bus context for device %s
\n
"
,
acpi_device_bid
(
device
));
return
_ACPI_STATUS
(
AE_NOT_EXIST
)
;
return
AE_NOT_EXIST
;
}
status
=
acpi_get_data
(
handle
,
acpi_pci_data_handler
,
(
void
**
)
&
data
);
...
...
@@ -86,7 +84,7 @@ acpi_status acpi_get_pci_id(acpi_handle handle, struct acpi_pci_id *id)
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"Invalid ACPI-PCI context for device %s"
,
acpi_device_bid
(
device
)));
return
_ACPI_STATUS
(
status
)
;
return
status
;
}
*
id
=
data
->
id
;
...
...
@@ -103,7 +101,7 @@ acpi_status acpi_get_pci_id(acpi_handle handle, struct acpi_pci_id *id)
acpi_device_bid
(
device
),
id
->
segment
,
id
->
bus
,
id
->
device
,
id
->
function
));
return
_ACPI_STATUS
(
AE_OK
)
;
return
AE_OK
;
}
EXPORT_SYMBOL
(
acpi_get_pci_id
);
...
...
@@ -120,14 +118,13 @@ int acpi_pci_bind(struct acpi_device *device)
struct
pci_dev
*
dev
;
struct
pci_bus
*
bus
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_bind"
);
if
(
!
device
||
!
device
->
parent
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
pathname
=
kmalloc
(
ACPI_PATHNAME_MAX
,
GFP_KERNEL
);
if
(
!
pathname
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
memset
(
pathname
,
0
,
ACPI_PATHNAME_MAX
);
buffer
.
length
=
ACPI_PATHNAME_MAX
;
buffer
.
pointer
=
pathname
;
...
...
@@ -135,7 +132,7 @@ int acpi_pci_bind(struct acpi_device *device)
data
=
kmalloc
(
sizeof
(
struct
acpi_pci_data
),
GFP_KERNEL
);
if
(
!
data
)
{
kfree
(
pathname
);
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
}
memset
(
data
,
0
,
sizeof
(
struct
acpi_pci_data
));
...
...
@@ -269,7 +266,7 @@ int acpi_pci_bind(struct acpi_device *device)
if
(
result
)
kfree
(
data
);
return
_VALUE
(
result
)
;
return
result
;
}
int
acpi_pci_unbind
(
struct
acpi_device
*
device
)
...
...
@@ -280,14 +277,13 @@ int acpi_pci_unbind(struct acpi_device *device)
char
*
pathname
=
NULL
;
struct
acpi_buffer
buffer
=
{
0
,
NULL
};
ACPI_FUNCTION_TRACE
(
"acpi_pci_unbind"
);
if
(
!
device
||
!
device
->
parent
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
pathname
=
(
char
*
)
kmalloc
(
ACPI_PATHNAME_MAX
,
GFP_KERNEL
);
if
(
!
pathname
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
memset
(
pathname
,
0
,
ACPI_PATHNAME_MAX
);
buffer
.
length
=
ACPI_PATHNAME_MAX
;
...
...
@@ -322,7 +318,7 @@ int acpi_pci_unbind(struct acpi_device *device)
kfree
(
data
);
end:
return
_VALUE
(
result
)
;
return
result
;
}
int
...
...
@@ -335,11 +331,10 @@ acpi_pci_bind_root(struct acpi_device *device,
char
*
pathname
=
NULL
;
struct
acpi_buffer
buffer
=
{
0
,
NULL
};
ACPI_FUNCTION_TRACE
(
"acpi_pci_bind_root"
);
pathname
=
(
char
*
)
kmalloc
(
ACPI_PATHNAME_MAX
,
GFP_KERNEL
);
if
(
!
pathname
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
memset
(
pathname
,
0
,
ACPI_PATHNAME_MAX
);
buffer
.
length
=
ACPI_PATHNAME_MAX
;
...
...
@@ -347,13 +342,13 @@ acpi_pci_bind_root(struct acpi_device *device,
if
(
!
device
||
!
id
||
!
bus
)
{
kfree
(
pathname
);
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
}
data
=
kmalloc
(
sizeof
(
struct
acpi_pci_data
),
GFP_KERNEL
);
if
(
!
data
)
{
kfree
(
pathname
);
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
}
memset
(
data
,
0
,
sizeof
(
struct
acpi_pci_data
));
...
...
@@ -381,5 +376,5 @@ acpi_pci_bind_root(struct acpi_device *device,
if
(
result
!=
0
)
kfree
(
data
);
return
_VALUE
(
result
)
;
return
result
;
}
drivers/acpi/pci_irq.c
浏览文件 @
d550d98d
...
...
@@ -55,10 +55,9 @@ static struct acpi_prt_entry *acpi_pci_irq_find_prt_entry(int segment,
struct
list_head
*
node
=
NULL
;
struct
acpi_prt_entry
*
entry
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_irq_find_prt_entry"
);
if
(
!
acpi_prt
.
count
)
return
_PTR
(
NULL
)
;
return
NULL
;
/*
* Parse through all PRT entries looking for a match on the specified
...
...
@@ -73,12 +72,12 @@ static struct acpi_prt_entry *acpi_pci_irq_find_prt_entry(int segment,
&&
(
device
==
entry
->
id
.
device
)
&&
(
pin
==
entry
->
pin
))
{
spin_unlock
(
&
acpi_prt_lock
);
return
_PTR
(
entry
)
;
return
entry
;
}
}
spin_unlock
(
&
acpi_prt_lock
);
return
_PTR
(
NULL
)
;
return
NULL
;
}
static
int
...
...
@@ -87,14 +86,13 @@ acpi_pci_irq_add_entry(acpi_handle handle,
{
struct
acpi_prt_entry
*
entry
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_irq_add_entry"
);
if
(
!
prt
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
entry
=
kmalloc
(
sizeof
(
struct
acpi_prt_entry
),
GFP_KERNEL
);
if
(
!
entry
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
memset
(
entry
,
0
,
sizeof
(
struct
acpi_prt_entry
));
entry
->
id
.
segment
=
segment
;
...
...
@@ -141,7 +139,7 @@ acpi_pci_irq_add_entry(acpi_handle handle,
acpi_prt
.
count
++
;
spin_unlock
(
&
acpi_prt_lock
);
return
_VALUE
(
0
)
;
return
0
;
}
static
void
...
...
@@ -163,11 +161,10 @@ int acpi_pci_irq_add_prt(acpi_handle handle, int segment, int bus)
struct
acpi_pci_routing_table
*
entry
=
NULL
;
static
int
first_time
=
1
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_irq_add_prt"
);
pathname
=
(
char
*
)
kmalloc
(
ACPI_PATHNAME_MAX
,
GFP_KERNEL
);
if
(
!
pathname
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
memset
(
pathname
,
0
,
ACPI_PATHNAME_MAX
);
if
(
first_time
)
{
...
...
@@ -199,12 +196,12 @@ int acpi_pci_irq_add_prt(acpi_handle handle, int segment, int bus)
if
(
status
!=
AE_BUFFER_OVERFLOW
)
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"Evaluating _PRT [%s]"
,
acpi_format_exception
(
status
)));
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
prt
=
kmalloc
(
buffer
.
length
,
GFP_KERNEL
);
if
(
!
prt
)
{
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
}
memset
(
prt
,
0
,
buffer
.
length
);
buffer
.
pointer
=
prt
;
...
...
@@ -214,7 +211,7 @@ int acpi_pci_irq_add_prt(acpi_handle handle, int segment, int bus)
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"Evaluating _PRT [%s]"
,
acpi_format_exception
(
status
)));
kfree
(
buffer
.
pointer
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
entry
=
prt
;
...
...
@@ -227,7 +224,7 @@ int acpi_pci_irq_add_prt(acpi_handle handle, int segment, int bus)
kfree
(
prt
);
return
_VALUE
(
0
)
;
return
0
;
}
void
acpi_pci_irq_del_prt
(
int
segment
,
int
bus
)
...
...
@@ -262,7 +259,6 @@ acpi_pci_allocate_irq(struct acpi_prt_entry *entry,
{
int
irq
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_allocate_irq"
);
if
(
entry
->
link
.
handle
)
{
irq
=
acpi_pci_link_allocate_irq
(
entry
->
link
.
handle
,
...
...
@@ -271,7 +267,7 @@ acpi_pci_allocate_irq(struct acpi_prt_entry *entry,
if
(
irq
<
0
)
{
printk
(
KERN_WARNING
PREFIX
"Invalid IRQ link routing entry
\n
"
);
return
_VALUE
(
-
1
)
;
return
-
1
;
}
}
else
{
irq
=
entry
->
link
.
index
;
...
...
@@ -280,7 +276,7 @@ acpi_pci_allocate_irq(struct acpi_prt_entry *entry,
}
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Found IRQ %d
\n
"
,
irq
));
return
_VALUE
(
irq
)
;
return
irq
;
}
static
int
...
...
@@ -289,13 +285,12 @@ acpi_pci_free_irq(struct acpi_prt_entry *entry,
{
int
irq
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_free_irq"
);
if
(
entry
->
link
.
handle
)
{
irq
=
acpi_pci_link_free_irq
(
entry
->
link
.
handle
);
}
else
{
irq
=
entry
->
link
.
index
;
}
return
_VALUE
(
irq
)
;
return
irq
;
}
/*
...
...
@@ -315,7 +310,6 @@ acpi_pci_irq_lookup(struct pci_bus *bus,
int
bus_nr
=
bus
->
number
;
int
ret
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_irq_lookup"
);
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Searching for PRT entry for %02x:%02x:%02x[%c]
\n
"
,
...
...
@@ -324,11 +318,11 @@ acpi_pci_irq_lookup(struct pci_bus *bus,
entry
=
acpi_pci_irq_find_prt_entry
(
segment
,
bus_nr
,
device
,
pin
);
if
(
!
entry
)
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"PRT entry not found
\n
"
));
return
_VALUE
(
-
1
)
;
return
-
1
;
}
ret
=
func
(
entry
,
triggering
,
polarity
,
link
);
return
_VALUE
(
ret
)
;
return
ret
;
}
/*
...
...
@@ -346,10 +340,9 @@ acpi_pci_irq_derive(struct pci_dev *dev,
int
irq
=
-
1
;
u8
bridge_pin
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_irq_derive"
);
if
(
!
dev
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
/*
* Attempt to derive an IRQ for this device from a parent bridge's
...
...
@@ -366,7 +359,7 @@ acpi_pci_irq_derive(struct pci_dev *dev,
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"No interrupt pin configured for device %s
\n
"
,
pci_name
(
bridge
)));
return
_VALUE
(
-
1
)
;
return
-
1
;
}
/* Pin is from 0 to 3 */
bridge_pin
--
;
...
...
@@ -381,13 +374,13 @@ acpi_pci_irq_derive(struct pci_dev *dev,
if
(
irq
<
0
)
{
printk
(
KERN_WARNING
PREFIX
"Unable to derive IRQ for device %s
\n
"
,
pci_name
(
dev
));
return
_VALUE
(
-
1
)
;
return
-
1
;
}
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Derive IRQ %d for device %s from %s
\n
"
,
irq
,
pci_name
(
dev
),
pci_name
(
bridge
)));
return
_VALUE
(
irq
)
;
return
irq
;
}
/*
...
...
@@ -405,23 +398,22 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
char
*
link
=
NULL
;
int
rc
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_irq_enable"
);
if
(
!
dev
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
pin
=
dev
->
pin
;
if
(
!
pin
)
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"No interrupt pin configured for device %s
\n
"
,
pci_name
(
dev
)));
return
_VALUE
(
0
)
;
return
0
;
}
pin
--
;
if
(
!
dev
->
bus
)
{
printk
(
KERN_ERR
PREFIX
"Invalid (NULL) 'bus' field
\n
"
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
/*
...
...
@@ -453,10 +445,10 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
printk
(
" - using IRQ %d
\n
"
,
dev
->
irq
);
acpi_register_gsi
(
dev
->
irq
,
ACPI_LEVEL_SENSITIVE
,
ACPI_ACTIVE_LOW
);
return
_VALUE
(
0
)
;
return
0
;
}
else
{
printk
(
"
\n
"
);
return
_VALUE
(
0
)
;
return
0
;
}
}
...
...
@@ -464,7 +456,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
if
(
rc
<
0
)
{
printk
(
KERN_WARNING
PREFIX
"PCI Interrupt %s[%c]: failed "
"to register GSI
\n
"
,
pci_name
(
dev
),
(
'A'
+
pin
));
return
_VALUE
(
rc
)
;
return
rc
;
}
dev
->
irq
=
rc
;
...
...
@@ -478,7 +470,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev)
(
triggering
==
ACPI_LEVEL_SENSITIVE
)
?
"level"
:
"edge"
,
(
polarity
==
ACPI_ACTIVE_LOW
)
?
"low"
:
"high"
,
dev
->
irq
);
return
_VALUE
(
0
)
;
return
0
;
}
EXPORT_SYMBOL
(
acpi_pci_irq_enable
);
...
...
@@ -495,14 +487,13 @@ void acpi_pci_irq_disable(struct pci_dev *dev)
int
triggering
=
ACPI_LEVEL_SENSITIVE
;
int
polarity
=
ACPI_ACTIVE_LOW
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_irq_disable"
);
if
(
!
dev
||
!
dev
->
bus
)
return
_VOID
;
return
;
pin
=
dev
->
pin
;
if
(
!
pin
)
return
_VOID
;
return
;
pin
--
;
/*
...
...
@@ -520,7 +511,7 @@ void acpi_pci_irq_disable(struct pci_dev *dev)
&
triggering
,
&
polarity
,
NULL
,
acpi_pci_free_irq
);
if
(
gsi
<
0
)
return
_VOID
;
return
;
/*
* TBD: It might be worth clearing dev->irq by magic constant
...
...
@@ -532,5 +523,5 @@ void acpi_pci_irq_disable(struct pci_dev *dev)
acpi_unregister_gsi
(
gsi
);
return
_VOID
;
return
;
}
drivers/acpi/pci_link.c
浏览文件 @
d550d98d
...
...
@@ -107,17 +107,16 @@ acpi_pci_link_check_possible(struct acpi_resource *resource, void *context)
struct
acpi_pci_link
*
link
=
(
struct
acpi_pci_link
*
)
context
;
u32
i
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_link_check_possible"
);
switch
(
resource
->
type
)
{
case
ACPI_RESOURCE_TYPE_START_DEPENDENT
:
return
_ACPI_STATUS
(
AE_OK
)
;
return
AE_OK
;
case
ACPI_RESOURCE_TYPE_IRQ
:
{
struct
acpi_resource_irq
*
p
=
&
resource
->
data
.
irq
;
if
(
!
p
||
!
p
->
interrupt_count
)
{
printk
(
KERN_WARNING
PREFIX
"Blank IRQ resource
\n
"
);
return
_ACPI_STATUS
(
AE_OK
)
;
return
AE_OK
;
}
for
(
i
=
0
;
(
i
<
p
->
interrupt_count
...
...
@@ -142,7 +141,7 @@ acpi_pci_link_check_possible(struct acpi_resource *resource, void *context)
if
(
!
p
||
!
p
->
interrupt_count
)
{
printk
(
KERN_WARNING
PREFIX
"Blank EXT IRQ resource
\n
"
);
return
_ACPI_STATUS
(
AE_OK
)
;
return
AE_OK
;
}
for
(
i
=
0
;
(
i
<
p
->
interrupt_count
...
...
@@ -162,33 +161,32 @@ acpi_pci_link_check_possible(struct acpi_resource *resource, void *context)
}
default:
printk
(
KERN_ERR
PREFIX
"Resource is not an IRQ entry
\n
"
);
return
_ACPI_STATUS
(
AE_OK
)
;
return
AE_OK
;
}
return
_ACPI_STATUS
(
AE_CTRL_TERMINATE
)
;
return
AE_CTRL_TERMINATE
;
}
static
int
acpi_pci_link_get_possible
(
struct
acpi_pci_link
*
link
)
{
acpi_status
status
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_link_get_possible"
);
if
(
!
link
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
status
=
acpi_walk_resources
(
link
->
handle
,
METHOD_NAME__PRS
,
acpi_pci_link_check_possible
,
link
);
if
(
ACPI_FAILURE
(
status
))
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"Evaluating _PRS"
));
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Found %d possible IRQs
\n
"
,
link
->
irq
.
possible_count
));
return
_VALUE
(
0
)
;
return
0
;
}
static
acpi_status
...
...
@@ -196,7 +194,6 @@ acpi_pci_link_check_current(struct acpi_resource *resource, void *context)
{
int
*
irq
=
(
int
*
)
context
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_link_check_current"
);
switch
(
resource
->
type
)
{
case
ACPI_RESOURCE_TYPE_IRQ
:
...
...
@@ -209,7 +206,7 @@ acpi_pci_link_check_current(struct acpi_resource *resource, void *context)
*/
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Blank IRQ resource
\n
"
));
return
_ACPI_STATUS
(
AE_OK
)
;
return
AE_OK
;
}
*
irq
=
p
->
interrupts
[
0
];
break
;
...
...
@@ -225,7 +222,7 @@ acpi_pci_link_check_current(struct acpi_resource *resource, void *context)
*/
printk
(
KERN_WARNING
PREFIX
"Blank EXT IRQ resource
\n
"
);
return
_ACPI_STATUS
(
AE_OK
)
;
return
AE_OK
;
}
*
irq
=
p
->
interrupts
[
0
];
break
;
...
...
@@ -234,9 +231,9 @@ acpi_pci_link_check_current(struct acpi_resource *resource, void *context)
default:
printk
(
KERN_ERR
PREFIX
"Resource %d isn't an IRQ
\n
"
,
resource
->
type
);
case
ACPI_RESOURCE_TYPE_END_TAG
:
return
_ACPI_STATUS
(
AE_OK
)
;
return
AE_OK
;
}
return
_ACPI_STATUS
(
AE_CTRL_TERMINATE
)
;
return
AE_CTRL_TERMINATE
;
}
/*
...
...
@@ -252,10 +249,9 @@ static int acpi_pci_link_get_current(struct acpi_pci_link *link)
acpi_status
status
=
AE_OK
;
int
irq
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_link_get_current"
);
if
(
!
link
||
!
link
->
handle
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
link
->
irq
.
active
=
0
;
...
...
@@ -270,7 +266,7 @@ static int acpi_pci_link_get_current(struct acpi_pci_link *link)
if
(
!
link
->
device
->
status
.
enabled
)
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Link disabled
\n
"
));
return
_VALUE
(
0
)
;
return
0
;
}
}
...
...
@@ -296,7 +292,7 @@ static int acpi_pci_link_get_current(struct acpi_pci_link *link)
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Link at IRQ %d
\n
"
,
link
->
irq
.
active
));
end:
return
_VALUE
(
result
)
;
return
result
;
}
static
int
acpi_pci_link_set
(
struct
acpi_pci_link
*
link
,
int
irq
)
...
...
@@ -309,14 +305,13 @@ static int acpi_pci_link_set(struct acpi_pci_link *link, int irq)
}
*
resource
;
struct
acpi_buffer
buffer
=
{
0
,
NULL
};
ACPI_FUNCTION_TRACE
(
"acpi_pci_link_set"
);
if
(
!
link
||
!
irq
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
resource
=
kmalloc
(
sizeof
(
*
resource
)
+
1
,
GFP_ATOMIC
);
if
(
!
resource
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
memset
(
resource
,
0
,
sizeof
(
*
resource
)
+
1
);
buffer
.
length
=
sizeof
(
*
resource
)
+
1
;
...
...
@@ -413,7 +408,7 @@ static int acpi_pci_link_set(struct acpi_pci_link *link, int irq)
end:
kfree
(
resource
);
return
_VALUE
(
result
)
;
return
result
;
}
/* --------------------------------------------------------------------------
...
...
@@ -487,7 +482,6 @@ int __init acpi_irq_penalty_init(void)
struct
acpi_pci_link
*
link
=
NULL
;
int
i
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_irq_penalty_init"
);
/*
* Update penalties to facilitate IRQ balancing.
...
...
@@ -524,7 +518,7 @@ int __init acpi_irq_penalty_init(void)
/* Add a penalty for the SCI */
acpi_irq_penalty
[
acpi_fadt
.
sci_int
]
+=
PIRQ_PENALTY_PCI_USING
;
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_irq_balance
;
/* 0: static, 1: balance */
...
...
@@ -534,13 +528,12 @@ static int acpi_pci_link_allocate(struct acpi_pci_link *link)
int
irq
;
int
i
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_link_allocate"
);
if
(
link
->
irq
.
initialized
)
{
if
(
link
->
refcnt
==
0
)
/* This means the link is disabled but initialized */
acpi_pci_link_set
(
link
,
link
->
irq
.
active
);
return
_VALUE
(
0
)
;
return
0
;
}
/*
...
...
@@ -587,7 +580,7 @@ static int acpi_pci_link_allocate(struct acpi_pci_link *link)
"Try pci=noacpi or acpi=off
\n
"
,
acpi_device_name
(
link
->
device
),
acpi_device_bid
(
link
->
device
));
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
else
{
acpi_irq_penalty
[
link
->
irq
.
active
]
+=
PIRQ_PENALTY_PCI_USING
;
printk
(
PREFIX
"%s [%s] enabled at IRQ %d
\n
"
,
...
...
@@ -597,7 +590,7 @@ static int acpi_pci_link_allocate(struct acpi_pci_link *link)
link
->
irq
.
initialized
=
1
;
return
_VALUE
(
0
)
;
return
0
;
}
/*
...
...
@@ -615,36 +608,35 @@ acpi_pci_link_allocate_irq(acpi_handle handle,
struct
acpi_device
*
device
=
NULL
;
struct
acpi_pci_link
*
link
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_link_allocate_irq"
);
result
=
acpi_bus_get_device
(
handle
,
&
device
);
if
(
result
)
{
printk
(
KERN_ERR
PREFIX
"Invalid link device
\n
"
);
return
_VALUE
(
-
1
)
;
return
-
1
;
}
link
=
(
struct
acpi_pci_link
*
)
acpi_driver_data
(
device
);
if
(
!
link
)
{
printk
(
KERN_ERR
PREFIX
"Invalid link context
\n
"
);
return
_VALUE
(
-
1
)
;
return
-
1
;
}
/* TBD: Support multiple index (IRQ) entries per Link Device */
if
(
index
)
{
printk
(
KERN_ERR
PREFIX
"Invalid index %d
\n
"
,
index
);
return
_VALUE
(
-
1
)
;
return
-
1
;
}
mutex_lock
(
&
acpi_link_lock
);
if
(
acpi_pci_link_allocate
(
link
))
{
mutex_unlock
(
&
acpi_link_lock
);
return
_VALUE
(
-
1
)
;
return
-
1
;
}
if
(
!
link
->
irq
.
active
)
{
mutex_unlock
(
&
acpi_link_lock
);
printk
(
KERN_ERR
PREFIX
"Link active IRQ is 0!
\n
"
);
return
_VALUE
(
-
1
)
;
return
-
1
;
}
link
->
refcnt
++
;
mutex_unlock
(
&
acpi_link_lock
);
...
...
@@ -658,7 +650,7 @@ acpi_pci_link_allocate_irq(acpi_handle handle,
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Link %s is referenced
\n
"
,
acpi_device_bid
(
link
->
device
)));
return
_VALUE
(
link
->
irq
.
active
);
return
(
link
->
irq
.
active
);
}
/*
...
...
@@ -671,25 +663,24 @@ int acpi_pci_link_free_irq(acpi_handle handle)
struct
acpi_pci_link
*
link
=
NULL
;
acpi_status
result
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_link_free_irq"
);
result
=
acpi_bus_get_device
(
handle
,
&
device
);
if
(
result
)
{
printk
(
KERN_ERR
PREFIX
"Invalid link device
\n
"
);
return
_VALUE
(
-
1
)
;
return
-
1
;
}
link
=
(
struct
acpi_pci_link
*
)
acpi_driver_data
(
device
);
if
(
!
link
)
{
printk
(
KERN_ERR
PREFIX
"Invalid link context
\n
"
);
return
_VALUE
(
-
1
)
;
return
-
1
;
}
mutex_lock
(
&
acpi_link_lock
);
if
(
!
link
->
irq
.
initialized
)
{
mutex_unlock
(
&
acpi_link_lock
);
printk
(
KERN_ERR
PREFIX
"Link isn't initialized
\n
"
);
return
_VALUE
(
-
1
)
;
return
-
1
;
}
#ifdef FUTURE_USE
/*
...
...
@@ -711,7 +702,7 @@ int acpi_pci_link_free_irq(acpi_handle handle)
acpi_ut_evaluate_object
(
link
->
handle
,
"_DIS"
,
0
,
NULL
);
}
mutex_unlock
(
&
acpi_link_lock
);
return
_VALUE
(
link
->
irq
.
active
);
return
(
link
->
irq
.
active
);
}
/* --------------------------------------------------------------------------
...
...
@@ -725,14 +716,13 @@ static int acpi_pci_link_add(struct acpi_device *device)
int
i
=
0
;
int
found
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_link_add"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
link
=
kmalloc
(
sizeof
(
struct
acpi_pci_link
),
GFP_KERNEL
);
if
(
!
link
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
memset
(
link
,
0
,
sizeof
(
struct
acpi_pci_link
));
link
->
device
=
device
;
...
...
@@ -781,17 +771,16 @@ static int acpi_pci_link_add(struct acpi_device *device)
if
(
result
)
kfree
(
link
);
return
_VALUE
(
result
)
;
return
result
;
}
static
int
acpi_pci_link_resume
(
struct
acpi_pci_link
*
link
)
{
ACPI_FUNCTION_TRACE
(
"acpi_pci_link_resume"
);
if
(
link
->
refcnt
&&
link
->
irq
.
active
&&
link
->
irq
.
initialized
)
return
_VALUE
(
acpi_pci_link_set
(
link
,
link
->
irq
.
active
));
return
(
acpi_pci_link_set
(
link
,
link
->
irq
.
active
));
else
return
_VALUE
(
0
)
;
return
0
;
}
/*
...
...
@@ -804,7 +793,6 @@ static int irqrouter_resume(struct sys_device *dev)
struct
list_head
*
node
=
NULL
;
struct
acpi_pci_link
*
link
=
NULL
;
ACPI_FUNCTION_TRACE
(
"irqrouter_resume"
);
/* Make sure SCI is enabled again (Apple firmware bug?) */
acpi_set_register
(
ACPI_BITREG_SCI_ENABLE
,
1
,
ACPI_MTX_DO_NOT_LOCK
);
...
...
@@ -819,17 +807,16 @@ static int irqrouter_resume(struct sys_device *dev)
acpi_pci_link_resume
(
link
);
}
acpi_in_resume
=
0
;
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_pci_link_remove
(
struct
acpi_device
*
device
,
int
type
)
{
struct
acpi_pci_link
*
link
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_link_remove"
);
if
(
!
device
||
!
acpi_driver_data
(
device
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
link
=
(
struct
acpi_pci_link
*
)
acpi_driver_data
(
device
);
...
...
@@ -839,7 +826,7 @@ static int acpi_pci_link_remove(struct acpi_device *device, int type)
kfree
(
link
);
return
_VALUE
(
0
)
;
return
0
;
}
/*
...
...
@@ -945,34 +932,32 @@ static int __init irqrouter_init_sysfs(void)
{
int
error
;
ACPI_FUNCTION_TRACE
(
"irqrouter_init_sysfs"
);
if
(
acpi_disabled
||
acpi_noirq
)
return
_VALUE
(
0
)
;
return
0
;
error
=
sysdev_class_register
(
&
irqrouter_sysdev_class
);
if
(
!
error
)
error
=
sysdev_register
(
&
device_irqrouter
);
return
_VALUE
(
error
)
;
return
error
;
}
device_initcall
(
irqrouter_init_sysfs
);
static
int
__init
acpi_pci_link_init
(
void
)
{
ACPI_FUNCTION_TRACE
(
"acpi_pci_link_init"
);
if
(
acpi_noirq
)
return
_VALUE
(
0
)
;
return
0
;
acpi_link
.
count
=
0
;
INIT_LIST_HEAD
(
&
acpi_link
.
entries
);
if
(
acpi_bus_register_driver
(
&
acpi_pci_link_driver
)
<
0
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
return
_VALUE
(
0
)
;
return
0
;
}
subsys_initcall
(
acpi_pci_link_init
);
drivers/acpi/pci_root.c
浏览文件 @
d550d98d
...
...
@@ -160,14 +160,13 @@ static int acpi_pci_root_add(struct acpi_device *device)
unsigned
long
value
=
0
;
acpi_handle
handle
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_root_add"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
root
=
kmalloc
(
sizeof
(
struct
acpi_pci_root
),
GFP_KERNEL
);
if
(
!
root
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
memset
(
root
,
0
,
sizeof
(
struct
acpi_pci_root
));
INIT_LIST_HEAD
(
&
root
->
node
);
...
...
@@ -307,46 +306,43 @@ static int acpi_pci_root_add(struct acpi_device *device)
kfree
(
root
);
}
return
_VALUE
(
result
)
;
return
result
;
}
static
int
acpi_pci_root_start
(
struct
acpi_device
*
device
)
{
struct
acpi_pci_root
*
root
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_root_start"
);
list_for_each_entry
(
root
,
&
acpi_pci_roots
,
node
)
{
if
(
root
->
handle
==
device
->
handle
)
{
pci_bus_add_devices
(
root
->
bus
);
return
_VALUE
(
0
)
;
return
0
;
}
}
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
static
int
acpi_pci_root_remove
(
struct
acpi_device
*
device
,
int
type
)
{
struct
acpi_pci_root
*
root
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_pci_root_remove"
);
if
(
!
device
||
!
acpi_driver_data
(
device
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
root
=
(
struct
acpi_pci_root
*
)
acpi_driver_data
(
device
);
kfree
(
root
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
__init
acpi_pci_root_init
(
void
)
{
ACPI_FUNCTION_TRACE
(
"acpi_pci_root_init"
);
if
(
acpi_pci_disabled
)
return
_VALUE
(
0
)
;
return
0
;
/* DEBUG:
acpi_dbg_layer = ACPI_PCI_COMPONENT;
...
...
@@ -354,9 +350,9 @@ static int __init acpi_pci_root_init(void)
*/
if
(
acpi_bus_register_driver
(
&
acpi_pci_root_driver
)
<
0
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
return
_VALUE
(
0
)
;
return
0
;
}
subsys_initcall
(
acpi_pci_root_init
);
drivers/acpi/power.c
浏览文件 @
d550d98d
...
...
@@ -98,22 +98,21 @@ acpi_power_get_context(acpi_handle handle,
int
result
=
0
;
struct
acpi_device
*
device
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_power_get_context"
);
if
(
!
resource
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
result
=
acpi_bus_get_device
(
handle
,
&
device
);
if
(
result
)
{
printk
(
KERN_WARNING
PREFIX
"Getting context [%p]
\n
"
,
handle
);
return
_VALUE
(
result
)
;
return
result
;
}
*
resource
=
(
struct
acpi_power_resource
*
)
acpi_driver_data
(
device
);
if
(
!
resource
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_power_get_state
(
struct
acpi_power_resource
*
resource
)
...
...
@@ -121,14 +120,13 @@ static int acpi_power_get_state(struct acpi_power_resource *resource)
acpi_status
status
=
AE_OK
;
unsigned
long
sta
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_power_get_state"
);
if
(
!
resource
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
status
=
acpi_evaluate_integer
(
resource
->
handle
,
"_STA"
,
NULL
,
&
sta
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
if
(
sta
&
0x01
)
resource
->
state
=
ACPI_POWER_RESOURCE_STATE_ON
;
...
...
@@ -138,7 +136,7 @@ static int acpi_power_get_state(struct acpi_power_resource *resource)
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Resource [%s] is %s
\n
"
,
resource
->
name
,
resource
->
state
?
"on"
:
"off"
));
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_power_get_list_state
(
struct
acpi_handle_list
*
list
,
int
*
state
)
...
...
@@ -147,20 +145,19 @@ static int acpi_power_get_list_state(struct acpi_handle_list *list, int *state)
struct
acpi_power_resource
*
resource
=
NULL
;
u32
i
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_power_get_list_state"
);
if
(
!
list
||
!
state
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
/* The state of the list is 'on' IFF all resources are 'on'. */
for
(
i
=
0
;
i
<
list
->
count
;
i
++
)
{
result
=
acpi_power_get_context
(
list
->
handles
[
i
],
&
resource
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
result
=
acpi_power_get_state
(
resource
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
*
state
=
resource
->
state
;
...
...
@@ -171,7 +168,7 @@ static int acpi_power_get_list_state(struct acpi_handle_list *list, int *state)
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Resource list is %s
\n
"
,
*
state
?
"on"
:
"off"
));
return
_VALUE
(
result
)
;
return
result
;
}
static
int
acpi_power_on
(
acpi_handle
handle
)
...
...
@@ -181,11 +178,10 @@ static int acpi_power_on(acpi_handle handle)
struct
acpi_device
*
device
=
NULL
;
struct
acpi_power_resource
*
resource
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_power_on"
);
result
=
acpi_power_get_context
(
handle
,
&
resource
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
resource
->
references
++
;
...
...
@@ -193,29 +189,29 @@ static int acpi_power_on(acpi_handle handle)
||
(
resource
->
state
==
ACPI_POWER_RESOURCE_STATE_ON
))
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Resource [%s] already on
\n
"
,
resource
->
name
));
return
_VALUE
(
0
)
;
return
0
;
}
status
=
acpi_evaluate_object
(
resource
->
handle
,
"_ON"
,
NULL
,
NULL
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
result
=
acpi_power_get_state
(
resource
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
if
(
resource
->
state
!=
ACPI_POWER_RESOURCE_STATE_ON
)
return
_VALUE
(
-
ENOEXEC
)
;
return
-
ENOEXEC
;
/* Update the power resource's _device_ power state */
result
=
acpi_bus_get_device
(
resource
->
handle
,
&
device
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
device
->
power
.
state
=
ACPI_STATE_D0
;
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Resource [%s] turned on
\n
"
,
resource
->
name
));
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_power_off_device
(
acpi_handle
handle
)
...
...
@@ -225,11 +221,10 @@ static int acpi_power_off_device(acpi_handle handle)
struct
acpi_device
*
device
=
NULL
;
struct
acpi_power_resource
*
resource
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_power_off_device"
);
result
=
acpi_power_get_context
(
handle
,
&
resource
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
if
(
resource
->
references
)
resource
->
references
--
;
...
...
@@ -238,35 +233,35 @@ static int acpi_power_off_device(acpi_handle handle)
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Resource [%s] is still in use, dereferencing
\n
"
,
device
->
pnp
.
bus_id
));
return
_VALUE
(
0
)
;
return
0
;
}
if
(
resource
->
state
==
ACPI_POWER_RESOURCE_STATE_OFF
)
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Resource [%s] already off
\n
"
,
device
->
pnp
.
bus_id
));
return
_VALUE
(
0
)
;
return
0
;
}
status
=
acpi_evaluate_object
(
resource
->
handle
,
"_OFF"
,
NULL
,
NULL
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
result
=
acpi_power_get_state
(
resource
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
if
(
resource
->
state
!=
ACPI_POWER_RESOURCE_STATE_OFF
)
return
_VALUE
(
-
ENOEXEC
)
;
return
-
ENOEXEC
;
/* Update the power resource's _device_ power state */
result
=
acpi_bus_get_device
(
resource
->
handle
,
&
device
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
device
->
power
.
state
=
ACPI_STATE_D3
;
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Resource [%s] turned off
\n
"
,
resource
->
name
));
return
_VALUE
(
0
)
;
return
0
;
}
/*
...
...
@@ -282,9 +277,8 @@ int acpi_enable_wakeup_device_power(struct acpi_device *dev)
int
i
;
int
ret
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_enable_wakeup_device_power"
);
if
(
!
dev
||
!
dev
->
wakeup
.
flags
.
valid
)
return
_VALUE
(
-
1
)
;
return
-
1
;
arg
.
integer
.
value
=
1
;
/* Open power resource */
...
...
@@ -293,7 +287,7 @@ int acpi_enable_wakeup_device_power(struct acpi_device *dev)
if
(
ret
)
{
printk
(
KERN_ERR
PREFIX
"Transition power state
\n
"
);
dev
->
wakeup
.
flags
.
valid
=
0
;
return
_VALUE
(
-
1
)
;
return
-
1
;
}
}
...
...
@@ -305,7 +299,7 @@ int acpi_enable_wakeup_device_power(struct acpi_device *dev)
ret
=
-
1
;
}
return
_VALUE
(
ret
)
;
return
ret
;
}
/*
...
...
@@ -321,10 +315,9 @@ int acpi_disable_wakeup_device_power(struct acpi_device *dev)
int
i
;
int
ret
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_disable_wakeup_device_power"
);
if
(
!
dev
||
!
dev
->
wakeup
.
flags
.
valid
)
return
_VALUE
(
-
1
)
;
return
-
1
;
arg
.
integer
.
value
=
0
;
/* Execute PSW */
...
...
@@ -332,7 +325,7 @@ int acpi_disable_wakeup_device_power(struct acpi_device *dev)
if
(
ACPI_FAILURE
(
status
)
&&
(
status
!=
AE_NOT_FOUND
))
{
printk
(
KERN_ERR
PREFIX
"Evaluate _PSW
\n
"
);
dev
->
wakeup
.
flags
.
valid
=
0
;
return
_VALUE
(
-
1
)
;
return
-
1
;
}
/* Close power resource */
...
...
@@ -341,11 +334,11 @@ int acpi_disable_wakeup_device_power(struct acpi_device *dev)
if
(
ret
)
{
printk
(
KERN_ERR
PREFIX
"Transition power state
\n
"
);
dev
->
wakeup
.
flags
.
valid
=
0
;
return
_VALUE
(
-
1
)
;
return
-
1
;
}
}
return
_VALUE
(
ret
)
;
return
ret
;
}
/* --------------------------------------------------------------------------
...
...
@@ -359,10 +352,9 @@ int acpi_power_get_inferred_state(struct acpi_device *device)
int
list_state
=
0
;
int
i
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_power_get_inferred_state"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
device
->
power
.
state
=
ACPI_STATE_UNKNOWN
;
...
...
@@ -377,17 +369,17 @@ int acpi_power_get_inferred_state(struct acpi_device *device)
result
=
acpi_power_get_list_state
(
list
,
&
list_state
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
if
(
list_state
==
ACPI_POWER_RESOURCE_STATE_ON
)
{
device
->
power
.
state
=
i
;
return
_VALUE
(
0
)
;
return
0
;
}
}
device
->
power
.
state
=
ACPI_STATE_D3
;
return
_VALUE
(
0
)
;
return
0
;
}
int
acpi_power_transition
(
struct
acpi_device
*
device
,
int
state
)
...
...
@@ -397,14 +389,13 @@ int acpi_power_transition(struct acpi_device *device, int state)
struct
acpi_handle_list
*
tl
=
NULL
;
/* Target Resources */
int
i
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_power_transition"
);
if
(
!
device
||
(
state
<
ACPI_STATE_D0
)
||
(
state
>
ACPI_STATE_D3
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
((
device
->
power
.
state
<
ACPI_STATE_D0
)
||
(
device
->
power
.
state
>
ACPI_STATE_D3
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
cl
=
&
device
->
power
.
states
[
device
->
power
.
state
].
resources
;
tl
=
&
device
->
power
.
states
[
state
].
resources
;
...
...
@@ -444,7 +435,7 @@ int acpi_power_transition(struct acpi_device *device, int state)
printk
(
KERN_WARNING
PREFIX
"Transitioning device [%s] to D%d
\n
"
,
device
->
pnp
.
bus_id
,
state
);
return
_VALUE
(
result
)
;
return
result
;
}
/* --------------------------------------------------------------------------
...
...
@@ -457,7 +448,6 @@ static int acpi_power_seq_show(struct seq_file *seq, void *offset)
{
struct
acpi_power_resource
*
resource
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_power_seq_show"
);
resource
=
(
struct
acpi_power_resource
*
)
seq
->
private
;
...
...
@@ -484,7 +474,7 @@ static int acpi_power_seq_show(struct seq_file *seq, void *offset)
resource
->
order
,
resource
->
references
);
end:
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_power_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -496,34 +486,32 @@ static int acpi_power_add_fs(struct acpi_device *device)
{
struct
proc_dir_entry
*
entry
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_power_add_fs"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
!
acpi_device_dir
(
device
))
{
acpi_device_dir
(
device
)
=
proc_mkdir
(
acpi_device_bid
(
device
),
acpi_power_dir
);
if
(
!
acpi_device_dir
(
device
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
/* 'status' [R] */
entry
=
create_proc_entry
(
ACPI_POWER_FILE_STATUS
,
S_IRUGO
,
acpi_device_dir
(
device
));
if
(
!
entry
)
return
_VALUE
(
-
EIO
)
;
return
-
EIO
;
else
{
entry
->
proc_fops
=
&
acpi_power_fops
;
entry
->
data
=
acpi_driver_data
(
device
);
}
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_power_remove_fs
(
struct
acpi_device
*
device
)
{
ACPI_FUNCTION_TRACE
(
"acpi_power_remove_fs"
);
if
(
acpi_device_dir
(
device
))
{
remove_proc_entry
(
ACPI_POWER_FILE_STATUS
,
...
...
@@ -532,7 +520,7 @@ static int acpi_power_remove_fs(struct acpi_device *device)
acpi_device_dir
(
device
)
=
NULL
;
}
return
_VALUE
(
0
)
;
return
0
;
}
/* --------------------------------------------------------------------------
...
...
@@ -547,14 +535,13 @@ static int acpi_power_add(struct acpi_device *device)
union
acpi_object
acpi_object
;
struct
acpi_buffer
buffer
=
{
sizeof
(
acpi_object
),
&
acpi_object
};
ACPI_FUNCTION_TRACE
(
"acpi_power_add"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
resource
=
kmalloc
(
sizeof
(
struct
acpi_power_resource
),
GFP_KERNEL
);
if
(
!
resource
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
memset
(
resource
,
0
,
sizeof
(
struct
acpi_power_resource
));
resource
->
handle
=
device
->
handle
;
...
...
@@ -599,17 +586,16 @@ static int acpi_power_add(struct acpi_device *device)
if
(
result
)
kfree
(
resource
);
return
_VALUE
(
result
)
;
return
result
;
}
static
int
acpi_power_remove
(
struct
acpi_device
*
device
,
int
type
)
{
struct
acpi_power_resource
*
resource
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_power_remove"
);
if
(
!
device
||
!
acpi_driver_data
(
device
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
resource
=
(
struct
acpi_power_resource
*
)
acpi_driver_data
(
device
);
...
...
@@ -617,31 +603,30 @@ static int acpi_power_remove(struct acpi_device *device, int type)
kfree
(
resource
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
__init
acpi_power_init
(
void
)
{
int
result
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_power_init"
);
if
(
acpi_disabled
)
return
_VALUE
(
0
)
;
return
0
;
INIT_LIST_HEAD
(
&
acpi_power_resource_list
);
acpi_power_dir
=
proc_mkdir
(
ACPI_POWER_CLASS
,
acpi_root_dir
);
if
(
!
acpi_power_dir
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
result
=
acpi_bus_register_driver
(
&
acpi_power_driver
);
if
(
result
<
0
)
{
remove_proc_entry
(
ACPI_POWER_CLASS
,
acpi_root_dir
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
return
_VALUE
(
0
)
;
return
0
;
}
subsys_initcall
(
acpi_power_init
);
drivers/acpi/processor_core.c
浏览文件 @
d550d98d
...
...
@@ -122,10 +122,9 @@ static int acpi_processor_errata_piix4(struct pci_dev *dev)
u8
value1
=
0
;
u8
value2
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_errata_piix4"
);
if
(
!
dev
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
/*
* Note that 'dev' references the PIIX4 ACPI Controller.
...
...
@@ -218,7 +217,7 @@ static int acpi_processor_errata_piix4(struct pci_dev *dev)
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Type-F DMA livelock erratum (C3 disabled)
\n
"
));
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_processor_errata
(
struct
acpi_processor
*
pr
)
...
...
@@ -226,10 +225,9 @@ static int acpi_processor_errata(struct acpi_processor *pr)
int
result
=
0
;
struct
pci_dev
*
dev
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_errata"
);
if
(
!
pr
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
/*
* PIIX4
...
...
@@ -242,7 +240,7 @@ static int acpi_processor_errata(struct acpi_processor *pr)
pci_dev_put
(
dev
);
}
return
_VALUE
(
result
)
;
return
result
;
}
/* --------------------------------------------------------------------------
...
...
@@ -258,10 +256,9 @@ static int acpi_processor_set_pdc(struct acpi_processor *pr)
struct
acpi_object_list
*
pdc_in
=
pr
->
pdc
;
acpi_status
status
=
AE_OK
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_set_pdc"
);
if
(
!
pdc_in
)
return
_VALUE
(
status
)
;
return
status
;
status
=
acpi_evaluate_object
(
pr
->
handle
,
"_PDC"
,
pdc_in
,
NULL
);
...
...
@@ -269,7 +266,7 @@ static int acpi_processor_set_pdc(struct acpi_processor *pr)
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Could not evaluate _PDC, using legacy perf. control...
\n
"
));
return
_VALUE
(
status
)
;
return
status
;
}
/* --------------------------------------------------------------------------
...
...
@@ -282,7 +279,6 @@ static int acpi_processor_info_seq_show(struct seq_file *seq, void *offset)
{
struct
acpi_processor
*
pr
=
(
struct
acpi_processor
*
)
seq
->
private
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_info_seq_show"
);
if
(
!
pr
)
goto
end
;
...
...
@@ -301,7 +297,7 @@ static int acpi_processor_info_seq_show(struct seq_file *seq, void *offset)
pr
->
flags
.
limit
?
"yes"
:
"no"
);
end:
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_processor_info_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -314,13 +310,12 @@ static int acpi_processor_add_fs(struct acpi_device *device)
{
struct
proc_dir_entry
*
entry
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_add_fs"
);
if
(
!
acpi_device_dir
(
device
))
{
acpi_device_dir
(
device
)
=
proc_mkdir
(
acpi_device_bid
(
device
),
acpi_processor_dir
);
if
(
!
acpi_device_dir
(
device
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
acpi_device_dir
(
device
)
->
owner
=
THIS_MODULE
;
...
...
@@ -328,7 +323,7 @@ static int acpi_processor_add_fs(struct acpi_device *device)
entry
=
create_proc_entry
(
ACPI_PROCESSOR_FILE_INFO
,
S_IRUGO
,
acpi_device_dir
(
device
));
if
(
!
entry
)
return
_VALUE
(
-
EIO
)
;
return
-
EIO
;
else
{
entry
->
proc_fops
=
&
acpi_processor_info_fops
;
entry
->
data
=
acpi_driver_data
(
device
);
...
...
@@ -340,7 +335,7 @@ static int acpi_processor_add_fs(struct acpi_device *device)
S_IFREG
|
S_IRUGO
|
S_IWUSR
,
acpi_device_dir
(
device
));
if
(
!
entry
)
return
_VALUE
(
-
EIO
)
;
return
-
EIO
;
else
{
entry
->
proc_fops
=
&
acpi_processor_throttling_fops
;
entry
->
data
=
acpi_driver_data
(
device
);
...
...
@@ -352,19 +347,18 @@ static int acpi_processor_add_fs(struct acpi_device *device)
S_IFREG
|
S_IRUGO
|
S_IWUSR
,
acpi_device_dir
(
device
));
if
(
!
entry
)
return
_VALUE
(
-
EIO
)
;
return
-
EIO
;
else
{
entry
->
proc_fops
=
&
acpi_processor_limit_fops
;
entry
->
data
=
acpi_driver_data
(
device
);
entry
->
owner
=
THIS_MODULE
;
}
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_processor_remove_fs
(
struct
acpi_device
*
device
)
{
ACPI_FUNCTION_TRACE
(
"acpi_processor_remove_fs"
);
if
(
acpi_device_dir
(
device
))
{
remove_proc_entry
(
ACPI_PROCESSOR_FILE_INFO
,
...
...
@@ -377,7 +371,7 @@ static int acpi_processor_remove_fs(struct acpi_device *device)
acpi_device_dir
(
device
)
=
NULL
;
}
return
_VALUE
(
0
)
;
return
0
;
}
/* Use the acpiid in MADT to map cpus in case of SMP */
...
...
@@ -424,10 +418,9 @@ static int acpi_processor_get_info(struct acpi_processor *pr)
int
cpu_index
;
static
int
cpu0_initialized
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_get_info"
);
if
(
!
pr
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
num_online_cpus
()
>
1
)
errata
.
smp
=
TRUE
;
...
...
@@ -454,7 +447,7 @@ static int acpi_processor_get_info(struct acpi_processor *pr)
status
=
acpi_evaluate_object
(
pr
->
handle
,
NULL
,
NULL
,
&
buffer
);
if
(
ACPI_FAILURE
(
status
))
{
printk
(
KERN_ERR
PREFIX
"Evaluating processor object
\n
"
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
/*
...
...
@@ -486,7 +479,7 @@ static int acpi_processor_get_info(struct acpi_processor *pr)
printk
(
KERN_ERR
PREFIX
"Getting cpuindex for acpiid 0x%x
\n
"
,
pr
->
acpi_id
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
}
...
...
@@ -521,7 +514,7 @@ static int acpi_processor_get_info(struct acpi_processor *pr)
acpi_processor_get_throttling_info
(
pr
);
acpi_processor_get_limit_info
(
pr
);
return
_VALUE
(
0
)
;
return
0
;
}
static
void
*
processor_device_array
[
NR_CPUS
];
...
...
@@ -532,14 +525,13 @@ static int acpi_processor_start(struct acpi_device *device)
acpi_status
status
=
AE_OK
;
struct
acpi_processor
*
pr
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_start"
);
pr
=
acpi_driver_data
(
device
);
result
=
acpi_processor_get_info
(
pr
);
if
(
result
)
{
/* Processor is physically not present */
return
_VALUE
(
0
)
;
return
0
;
}
BUG_ON
((
pr
->
id
>=
NR_CPUS
)
||
(
pr
->
id
<
0
));
...
...
@@ -553,7 +545,7 @@ static int acpi_processor_start(struct acpi_device *device)
processor_device_array
[
pr
->
id
]
!=
(
void
*
)
device
)
{
printk
(
KERN_WARNING
"BIOS reported wrong ACPI id"
"for the processor
\n
"
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
processor_device_array
[
pr
->
id
]
=
(
void
*
)
device
;
...
...
@@ -581,7 +573,7 @@ static int acpi_processor_start(struct acpi_device *device)
end:
return
_VALUE
(
result
)
;
return
result
;
}
static
void
acpi_processor_notify
(
acpi_handle
handle
,
u32
event
,
void
*
data
)
...
...
@@ -589,13 +581,12 @@ static void acpi_processor_notify(acpi_handle handle, u32 event, void *data)
struct
acpi_processor
*
pr
=
(
struct
acpi_processor
*
)
data
;
struct
acpi_device
*
device
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_notify"
);
if
(
!
pr
)
return
_VOID
;
return
;
if
(
acpi_bus_get_device
(
pr
->
handle
,
&
device
))
return
_VOID
;
return
;
switch
(
event
)
{
case
ACPI_PROCESSOR_NOTIFY_PERFORMANCE
:
...
...
@@ -613,21 +604,20 @@ static void acpi_processor_notify(acpi_handle handle, u32 event, void *data)
break
;
}
return
_VOID
;
return
;
}
static
int
acpi_processor_add
(
struct
acpi_device
*
device
)
{
struct
acpi_processor
*
pr
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_add"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
pr
=
kmalloc
(
sizeof
(
struct
acpi_processor
),
GFP_KERNEL
);
if
(
!
pr
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
memset
(
pr
,
0
,
sizeof
(
struct
acpi_processor
));
pr
->
handle
=
device
->
handle
;
...
...
@@ -635,7 +625,7 @@ static int acpi_processor_add(struct acpi_device *device)
strcpy
(
acpi_device_class
(
device
),
ACPI_PROCESSOR_CLASS
);
acpi_driver_data
(
device
)
=
pr
;
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_processor_remove
(
struct
acpi_device
*
device
,
int
type
)
...
...
@@ -643,21 +633,20 @@ static int acpi_processor_remove(struct acpi_device *device, int type)
acpi_status
status
=
AE_OK
;
struct
acpi_processor
*
pr
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_remove"
);
if
(
!
device
||
!
acpi_driver_data
(
device
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
pr
=
(
struct
acpi_processor
*
)
acpi_driver_data
(
device
);
if
(
pr
->
id
>=
NR_CPUS
)
{
kfree
(
pr
);
return
_VALUE
(
0
)
;
return
0
;
}
if
(
type
==
ACPI_BUS_REMOVAL_EJECT
)
{
if
(
acpi_processor_handle_eject
(
pr
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
}
acpi_processor_power_exit
(
pr
,
device
);
...
...
@@ -671,7 +660,7 @@ static int acpi_processor_remove(struct acpi_device *device, int type)
kfree
(
pr
);
return
_VALUE
(
0
)
;
return
0
;
}
#ifdef CONFIG_ACPI_HOTPLUG_CPU
...
...
@@ -686,14 +675,13 @@ static int is_processor_present(acpi_handle handle)
acpi_status
status
;
unsigned
long
sta
=
0
;
ACPI_FUNCTION_TRACE
(
"is_processor_present"
);
status
=
acpi_evaluate_integer
(
handle
,
"_STA"
,
NULL
,
&
sta
);
if
(
ACPI_FAILURE
(
status
)
||
!
(
sta
&
ACPI_STA_PRESENT
))
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"Processor Device is not present"
));
return
_VALUE
(
0
)
;
return
0
;
}
return
_VALUE
(
1
)
;
return
1
;
}
static
...
...
@@ -703,30 +691,29 @@ int acpi_processor_device_add(acpi_handle handle, struct acpi_device **device)
struct
acpi_device
*
pdev
;
struct
acpi_processor
*
pr
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_device_add"
);
if
(
acpi_get_parent
(
handle
,
&
phandle
))
{
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
if
(
acpi_bus_get_device
(
phandle
,
&
pdev
))
{
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
if
(
acpi_bus_add
(
device
,
pdev
,
handle
,
ACPI_BUS_TYPE_PROCESSOR
))
{
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
acpi_bus_start
(
*
device
);
pr
=
acpi_driver_data
(
*
device
);
if
(
!
pr
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
if
((
pr
->
id
>=
0
)
&&
(
pr
->
id
<
NR_CPUS
))
{
kobject_uevent
(
&
(
*
device
)
->
kobj
,
KOBJ_ONLINE
);
}
return
_VALUE
(
0
)
;
return
0
;
}
static
void
...
...
@@ -736,7 +723,6 @@ acpi_processor_hotplug_notify(acpi_handle handle, u32 event, void *data)
struct
acpi_device
*
device
=
NULL
;
int
result
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_hotplug_notify"
);
switch
(
event
)
{
case
ACPI_NOTIFY_BUS_CHECK
:
...
...
@@ -788,7 +774,7 @@ acpi_processor_hotplug_notify(acpi_handle handle, u32 event, void *data)
if
(
!
pr
)
{
printk
(
KERN_ERR
PREFIX
"Driver data is NULL, dropping EJECT
\n
"
);
return
_VOID
;
return
;
}
if
((
pr
->
id
<
NR_CPUS
)
&&
(
cpu_present
(
pr
->
id
)))
...
...
@@ -800,7 +786,7 @@ acpi_processor_hotplug_notify(acpi_handle handle, u32 event, void *data)
break
;
}
return
_VOID
;
return
;
}
static
acpi_status
...
...
@@ -839,21 +825,20 @@ processor_walk_namespace_cb(acpi_handle handle,
static
acpi_status
acpi_processor_hotadd_init
(
acpi_handle
handle
,
int
*
p_cpu
)
{
ACPI_FUNCTION_TRACE
(
"acpi_processor_hotadd_init"
);
if
(
!
is_processor_present
(
handle
))
{
return
_VALUE
(
AE_ERROR
)
;
return
AE_ERROR
;
}
if
(
acpi_map_lsapic
(
handle
,
p_cpu
))
return
_VALUE
(
AE_ERROR
)
;
return
AE_ERROR
;
if
(
arch_register_cpu
(
*
p_cpu
))
{
acpi_unmap_lsapic
(
*
p_cpu
);
return
_VALUE
(
AE_ERROR
)
;
return
AE_ERROR
;
}
return
_VALUE
(
AE_OK
)
;
return
AE_OK
;
}
static
int
acpi_processor_handle_eject
(
struct
acpi_processor
*
pr
)
...
...
@@ -910,20 +895,19 @@ static int __init acpi_processor_init(void)
{
int
result
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_init"
);
memset
(
&
processors
,
0
,
sizeof
(
processors
));
memset
(
&
errata
,
0
,
sizeof
(
errata
));
acpi_processor_dir
=
proc_mkdir
(
ACPI_PROCESSOR_CLASS
,
acpi_root_dir
);
if
(
!
acpi_processor_dir
)
return
_VALUE
(
0
)
;
return
0
;
acpi_processor_dir
->
owner
=
THIS_MODULE
;
result
=
acpi_bus_register_driver
(
&
acpi_processor_driver
);
if
(
result
<
0
)
{
remove_proc_entry
(
ACPI_PROCESSOR_CLASS
,
acpi_root_dir
);
return
_VALUE
(
0
)
;
return
0
;
}
acpi_processor_install_hotplug_notify
();
...
...
@@ -932,12 +916,11 @@ static int __init acpi_processor_init(void)
acpi_processor_ppc_init
();
return
_VALUE
(
0
)
;
return
0
;
}
static
void
__exit
acpi_processor_exit
(
void
)
{
ACPI_FUNCTION_TRACE
(
"acpi_processor_exit"
);
acpi_processor_ppc_exit
();
...
...
@@ -949,7 +932,7 @@ static void __exit acpi_processor_exit(void)
remove_proc_entry
(
ACPI_PROCESSOR_CLASS
,
acpi_root_dir
);
return
_VOID
;
return
;
}
module_init
(
acpi_processor_init
);
...
...
drivers/acpi/processor_idle.c
浏览文件 @
d550d98d
...
...
@@ -517,10 +517,9 @@ static int acpi_processor_set_power_policy(struct acpi_processor *pr)
struct
acpi_processor_cx
*
higher
=
NULL
;
struct
acpi_processor_cx
*
cx
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_set_power_policy"
);
if
(
!
pr
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
/*
* This function sets the default Cx state policy (OS idle handler).
...
...
@@ -544,7 +543,7 @@ static int acpi_processor_set_power_policy(struct acpi_processor *pr)
}
if
(
!
state_is_set
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
/* demotion */
for
(
i
=
1
;
i
<
ACPI_PROCESSOR_MAX_POWER
;
i
++
)
{
...
...
@@ -583,18 +582,17 @@ static int acpi_processor_set_power_policy(struct acpi_processor *pr)
higher
=
cx
;
}
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_processor_get_power_info_fadt
(
struct
acpi_processor
*
pr
)
{
ACPI_FUNCTION_TRACE
(
"acpi_processor_get_power_info_fadt"
);
if
(
!
pr
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
!
pr
->
pblk
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
/* if info is obtained from pblk/fadt, type equals state */
pr
->
power
.
states
[
ACPI_STATE_C2
].
type
=
ACPI_STATE_C2
;
...
...
@@ -606,7 +604,7 @@ static int acpi_processor_get_power_info_fadt(struct acpi_processor *pr)
* an SMP system.
*/
if
((
num_online_cpus
()
>
1
)
&&
!
acpi_fadt
.
plvl2_up
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
#endif
/* determine C2 and C3 address from pblk */
...
...
@@ -622,12 +620,11 @@ static int acpi_processor_get_power_info_fadt(struct acpi_processor *pr)
pr
->
power
.
states
[
ACPI_STATE_C2
].
address
,
pr
->
power
.
states
[
ACPI_STATE_C3
].
address
));
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_processor_get_power_info_default_c1
(
struct
acpi_processor
*
pr
)
{
ACPI_FUNCTION_TRACE
(
"acpi_processor_get_power_info_default_c1"
);
/* Zero initialize all the C-states info. */
memset
(
pr
->
power
.
states
,
0
,
sizeof
(
pr
->
power
.
states
));
...
...
@@ -640,7 +637,7 @@ static int acpi_processor_get_power_info_default_c1(struct acpi_processor *pr)
pr
->
power
.
states
[
ACPI_STATE_C0
].
valid
=
1
;
pr
->
power
.
states
[
ACPI_STATE_C1
].
valid
=
1
;
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_processor_get_power_info_cst
(
struct
acpi_processor
*
pr
)
...
...
@@ -652,10 +649,9 @@ static int acpi_processor_get_power_info_cst(struct acpi_processor *pr)
struct
acpi_buffer
buffer
=
{
ACPI_ALLOCATE_BUFFER
,
NULL
};
union
acpi_object
*
cst
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_get_power_info_cst"
);
if
(
nocst
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
current_count
=
1
;
...
...
@@ -667,7 +663,7 @@ static int acpi_processor_get_power_info_cst(struct acpi_processor *pr)
status
=
acpi_evaluate_object
(
pr
->
handle
,
"_CST"
,
NULL
,
&
buffer
);
if
(
ACPI_FAILURE
(
status
))
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"No _CST, giving up
\n
"
));
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
cst
=
(
union
acpi_object
*
)
buffer
.
pointer
;
...
...
@@ -773,15 +769,14 @@ static int acpi_processor_get_power_info_cst(struct acpi_processor *pr)
end:
acpi_os_free
(
buffer
.
pointer
);
return
_VALUE
(
status
)
;
return
status
;
}
static
void
acpi_processor_power_verify_c2
(
struct
acpi_processor_cx
*
cx
)
{
ACPI_FUNCTION_TRACE
(
"acpi_processor_get_power_verify_c2"
);
if
(
!
cx
->
address
)
return
_VOID
;
return
;
/*
* C2 latency must be less than or equal to 100
...
...
@@ -790,7 +785,7 @@ static void acpi_processor_power_verify_c2(struct acpi_processor_cx *cx)
else
if
(
cx
->
latency
>
ACPI_PROCESSOR_MAX_C2_LATENCY
)
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"latency too large [%d]
\n
"
,
cx
->
latency
));
return
_VOID
;
return
;
}
/*
...
...
@@ -800,7 +795,7 @@ static void acpi_processor_power_verify_c2(struct acpi_processor_cx *cx)
cx
->
valid
=
1
;
cx
->
latency_ticks
=
US_TO_PM_TIMER_TICKS
(
cx
->
latency
);
return
_VOID
;
return
;
}
static
void
acpi_processor_power_verify_c3
(
struct
acpi_processor
*
pr
,
...
...
@@ -808,10 +803,9 @@ static void acpi_processor_power_verify_c3(struct acpi_processor *pr,
{
static
int
bm_check_flag
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_get_power_verify_c3"
);
if
(
!
cx
->
address
)
return
_VOID
;
return
;
/*
* C3 latency must be less than or equal to 1000
...
...
@@ -820,7 +814,7 @@ static void acpi_processor_power_verify_c3(struct acpi_processor *pr,
else
if
(
cx
->
latency
>
ACPI_PROCESSOR_MAX_C3_LATENCY
)
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"latency too large [%d]
\n
"
,
cx
->
latency
));
return
_VOID
;
return
;
}
/*
...
...
@@ -833,7 +827,7 @@ static void acpi_processor_power_verify_c3(struct acpi_processor *pr,
else
if
(
errata
.
piix4
.
fdma
)
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"C3 not supported on PIIX4 with Type-F DMA
\n
"
));
return
_VOID
;
return
;
}
/* All the logic here assumes flags.bm_check is same across all CPUs */
...
...
@@ -850,7 +844,7 @@ static void acpi_processor_power_verify_c3(struct acpi_processor *pr,
if
(
!
pr
->
flags
.
bm_control
)
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"C3 support requires bus mastering control
\n
"
));
return
_VOID
;
return
;
}
}
else
{
/*
...
...
@@ -861,7 +855,7 @@ static void acpi_processor_power_verify_c3(struct acpi_processor *pr,
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Cache invalidation should work properly"
" for C3 to be enabled on SMP systems
\n
"
));
return
_VOID
;
return
;
}
acpi_set_register
(
ACPI_BITREG_BUS_MASTER_RLD
,
0
,
ACPI_MTX_DO_NOT_LOCK
);
...
...
@@ -876,7 +870,7 @@ static void acpi_processor_power_verify_c3(struct acpi_processor *pr,
cx
->
valid
=
1
;
cx
->
latency_ticks
=
US_TO_PM_TIMER_TICKS
(
cx
->
latency
);
return
_VOID
;
return
;
}
static
int
acpi_processor_power_verify
(
struct
acpi_processor
*
pr
)
...
...
@@ -935,7 +929,6 @@ static int acpi_processor_get_power_info(struct acpi_processor *pr)
unsigned
int
i
;
int
result
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_get_power_info"
);
/* NOTE: the idle thread may not be running while calling
* this function */
...
...
@@ -958,7 +951,7 @@ static int acpi_processor_get_power_info(struct acpi_processor *pr)
*/
result
=
acpi_processor_set_power_policy
(
pr
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
/*
* if one state of type C2 or C3 is available, mark this
...
...
@@ -972,24 +965,23 @@ static int acpi_processor_get_power_info(struct acpi_processor *pr)
}
}
return
_VALUE
(
0
)
;
return
0
;
}
int
acpi_processor_cst_has_changed
(
struct
acpi_processor
*
pr
)
{
int
result
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_cst_has_changed"
);
if
(
!
pr
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
nocst
)
{
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
if
(
!
pr
->
flags
.
power_setup_done
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
/* Fall back to the default idle loop */
pm_idle
=
pm_idle_save
;
...
...
@@ -1000,7 +992,7 @@ int acpi_processor_cst_has_changed(struct acpi_processor *pr)
if
((
pr
->
flags
.
power
==
1
)
&&
(
pr
->
flags
.
power_setup_done
))
pm_idle
=
acpi_processor_idle
;
return
_VALUE
(
result
)
;
return
result
;
}
/* proc interface */
...
...
@@ -1010,7 +1002,6 @@ static int acpi_processor_power_seq_show(struct seq_file *seq, void *offset)
struct
acpi_processor
*
pr
=
(
struct
acpi_processor
*
)
seq
->
private
;
unsigned
int
i
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_power_seq_show"
);
if
(
!
pr
)
goto
end
;
...
...
@@ -1068,7 +1059,7 @@ static int acpi_processor_power_seq_show(struct seq_file *seq, void *offset)
}
end:
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_processor_power_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -1092,7 +1083,6 @@ int acpi_processor_power_init(struct acpi_processor *pr,
struct
proc_dir_entry
*
entry
=
NULL
;
unsigned
int
i
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_power_init"
);
if
(
!
first_run
)
{
dmi_check_system
(
processor_power_dmi_table
);
...
...
@@ -1104,7 +1094,7 @@ int acpi_processor_power_init(struct acpi_processor *pr,
}
if
(
!
pr
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
acpi_fadt
.
cst_cnt
&&
!
nocst
)
{
status
=
...
...
@@ -1149,13 +1139,12 @@ int acpi_processor_power_init(struct acpi_processor *pr,
pr
->
flags
.
power_setup_done
=
1
;
return
_VALUE
(
0
)
;
return
0
;
}
int
acpi_processor_power_exit
(
struct
acpi_processor
*
pr
,
struct
acpi_device
*
device
)
{
ACPI_FUNCTION_TRACE
(
"acpi_processor_power_exit"
);
pr
->
flags
.
power_setup_done
=
0
;
...
...
@@ -1175,5 +1164,5 @@ int acpi_processor_power_exit(struct acpi_processor *pr,
cpu_idle_wait
();
}
return
_VALUE
(
0
)
;
return
0
;
}
drivers/acpi/processor_perflib.c
浏览文件 @
d550d98d
此差异已折叠。
点击以展开。
drivers/acpi/processor_thermal.c
浏览文件 @
d550d98d
此差异已折叠。
点击以展开。
drivers/acpi/processor_throttling.c
浏览文件 @
d550d98d
此差异已折叠。
点击以展开。
drivers/acpi/scan.c
浏览文件 @
d550d98d
此差异已折叠。
点击以展开。
drivers/acpi/system.c
浏览文件 @
d550d98d
...
...
@@ -47,10 +47,9 @@ extern struct fadt_descriptor acpi_fadt;
static
int
acpi_system_read_info
(
struct
seq_file
*
seq
,
void
*
offset
)
{
ACPI_FUNCTION_TRACE
(
"acpi_system_read_info"
);
seq_printf
(
seq
,
"version: %x
\n
"
,
ACPI_CA_VERSION
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_system_info_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -80,17 +79,16 @@ acpi_system_read_dsdt(struct file *file,
struct
acpi_buffer
dsdt
=
{
ACPI_ALLOCATE_BUFFER
,
NULL
};
ssize_t
res
;
ACPI_FUNCTION_TRACE
(
"acpi_system_read_dsdt"
);
status
=
acpi_get_table
(
ACPI_TABLE_ID_DSDT
,
1
,
&
dsdt
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
res
=
simple_read_from_buffer
(
buffer
,
count
,
ppos
,
dsdt
.
pointer
,
dsdt
.
length
);
acpi_os_free
(
dsdt
.
pointer
);
return
_VALUE
(
res
)
;
return
res
;
}
static
ssize_t
acpi_system_read_fadt
(
struct
file
*
,
char
__user
*
,
size_t
,
...
...
@@ -108,17 +106,16 @@ acpi_system_read_fadt(struct file *file,
struct
acpi_buffer
fadt
=
{
ACPI_ALLOCATE_BUFFER
,
NULL
};
ssize_t
res
;
ACPI_FUNCTION_TRACE
(
"acpi_system_read_fadt"
);
status
=
acpi_get_table
(
ACPI_TABLE_ID_FADT
,
1
,
&
fadt
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
res
=
simple_read_from_buffer
(
buffer
,
count
,
ppos
,
fadt
.
pointer
,
fadt
.
length
);
acpi_os_free
(
fadt
.
pointer
);
return
_VALUE
(
res
)
;
return
res
;
}
static
int
__init
acpi_system_init
(
void
)
...
...
@@ -127,10 +124,9 @@ static int __init acpi_system_init(void)
int
error
=
0
;
char
*
name
;
ACPI_FUNCTION_TRACE
(
"acpi_system_init"
);
if
(
acpi_disabled
)
return
_VALUE
(
0
)
;
return
0
;
/* 'info' [R] */
name
=
ACPI_SYSTEM_FILE_INFO
;
...
...
@@ -158,7 +154,7 @@ static int __init acpi_system_init(void)
goto
Error
;
Done:
return
_VALUE
(
error
)
;
return
error
;
Error:
remove_proc_entry
(
ACPI_SYSTEM_FILE_FADT
,
acpi_root_dir
);
...
...
drivers/acpi/thermal.c
浏览文件 @
d550d98d
此差异已折叠。
点击以展开。
drivers/acpi/utils.c
浏览文件 @
d550d98d
此差异已折叠。
点击以展开。
drivers/acpi/video.c
浏览文件 @
d550d98d
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录