Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
d550d98d
Commit
d550d98d
authored
Jun 27, 2006
by
Patrick Mochel
Committed by
Len Brown
Jun 27, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ACPI: delete tracing macros from drivers/acpi/*.c
Signed-off-by:
Len Brown
<
len.brown@intel.com
>
parent
d7fa2589
Changes
28
Show whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
862 additions
and
1187 deletions
+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
No files found.
drivers/acpi/ac.c
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
d550d98d
...
...
@@ -108,10 +108,9 @@ static int acpi_processor_get_platform_limit(struct acpi_processor *pr)
acpi_status
status
=
0
;
unsigned
long
ppc
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_get_platform_limit"
);
if
(
!
pr
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
/*
* _PPC indicates the maximum state currently supported by the platform
...
...
@@ -124,12 +123,12 @@ static int acpi_processor_get_platform_limit(struct acpi_processor *pr)
if
(
ACPI_FAILURE
(
status
)
&&
status
!=
AE_NOT_FOUND
)
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"Evaluating _PPC"
));
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
pr
->
performance_platform_limit
=
(
int
)
ppc
;
return
_VALUE
(
0
)
;
return
0
;
}
int
acpi_processor_ppc_has_changed
(
struct
acpi_processor
*
pr
)
...
...
@@ -168,12 +167,11 @@ static int acpi_processor_get_performance_control(struct acpi_processor *pr)
union
acpi_object
*
pct
=
NULL
;
union
acpi_object
obj
=
{
0
};
ACPI_FUNCTION_TRACE
(
"acpi_processor_get_performance_control"
);
status
=
acpi_evaluate_object
(
pr
->
handle
,
"_PCT"
,
NULL
,
&
buffer
);
if
(
ACPI_FAILURE
(
status
))
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"Evaluating _PCT"
));
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
pct
=
(
union
acpi_object
*
)
buffer
.
pointer
;
...
...
@@ -220,7 +218,7 @@ static int acpi_processor_get_performance_control(struct acpi_processor *pr)
end:
acpi_os_free
(
buffer
.
pointer
);
return
_VALUE
(
result
)
;
return
result
;
}
static
int
acpi_processor_get_performance_states
(
struct
acpi_processor
*
pr
)
...
...
@@ -233,12 +231,11 @@ static int acpi_processor_get_performance_states(struct acpi_processor *pr)
union
acpi_object
*
pss
=
NULL
;
int
i
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_get_performance_states"
);
status
=
acpi_evaluate_object
(
pr
->
handle
,
"_PSS"
,
NULL
,
&
buffer
);
if
(
ACPI_FAILURE
(
status
))
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"Evaluating _PSS"
));
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
pss
=
(
union
acpi_object
*
)
buffer
.
pointer
;
...
...
@@ -299,7 +296,7 @@ static int acpi_processor_get_performance_states(struct acpi_processor *pr)
end:
acpi_os_free
(
buffer
.
pointer
);
return
_VALUE
(
result
)
;
return
result
;
}
static
int
acpi_processor_get_performance_info
(
struct
acpi_processor
*
pr
)
...
...
@@ -308,31 +305,30 @@ static int acpi_processor_get_performance_info(struct acpi_processor *pr)
acpi_status
status
=
AE_OK
;
acpi_handle
handle
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_get_performance_info"
);
if
(
!
pr
||
!
pr
->
performance
||
!
pr
->
handle
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
status
=
acpi_get_handle
(
pr
->
handle
,
"_PCT"
,
&
handle
);
if
(
ACPI_FAILURE
(
status
))
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"ACPI-based processor performance control unavailable
\n
"
));
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
result
=
acpi_processor_get_performance_control
(
pr
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
result
=
acpi_processor_get_performance_states
(
pr
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
result
=
acpi_processor_get_platform_limit
(
pr
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
return
_VALUE
(
0
)
;
return
0
;
}
int
acpi_processor_notify_smm
(
struct
module
*
calling_module
)
...
...
@@ -340,13 +336,12 @@ int acpi_processor_notify_smm(struct module *calling_module)
acpi_status
status
;
static
int
is_done
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_notify_smm"
);
if
(
!
(
acpi_processor_ppc_status
&
PPC_REGISTERED
))
return
_VALUE
(
-
EBUSY
)
;
return
-
EBUSY
;
if
(
!
try_module_get
(
calling_module
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
/* is_done is set to negative if an error occured,
* and to postitive if _no_ error occured, but SMM
...
...
@@ -355,10 +350,10 @@ int acpi_processor_notify_smm(struct module *calling_module)
*/
if
(
is_done
>
0
)
{
module_put
(
calling_module
);
return
_VALUE
(
0
)
;
return
0
;
}
else
if
(
is_done
<
0
)
{
module_put
(
calling_module
);
return
_VALUE
(
is_done
)
;
return
is_done
;
}
is_done
=
-
EIO
;
...
...
@@ -367,7 +362,7 @@ int acpi_processor_notify_smm(struct module *calling_module)
if
((
!
acpi_fadt
.
smi_cmd
)
||
(
!
acpi_fadt
.
pstate_cnt
))
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"No SMI port or pstate_cnt
\n
"
));
module_put
(
calling_module
);
return
_VALUE
(
0
)
;
return
0
;
}
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
...
...
@@ -389,7 +384,7 @@ int acpi_processor_notify_smm(struct module *calling_module)
"smi_cmd [0x%x]"
,
acpi_fadt
.
pstate_cnt
,
acpi_fadt
.
smi_cmd
));
module_put
(
calling_module
);
return
_VALUE
(
status
)
;
return
status
;
}
/* Success. If there's no _PPC, we need to fear nothing, so
...
...
@@ -399,7 +394,7 @@ int acpi_processor_notify_smm(struct module *calling_module)
if
(
!
(
acpi_processor_ppc_status
&
PPC_IN_USE
))
module_put
(
calling_module
);
return
_VALUE
(
0
)
;
return
0
;
}
EXPORT_SYMBOL
(
acpi_processor_notify_smm
);
...
...
@@ -420,7 +415,6 @@ static int acpi_processor_perf_seq_show(struct seq_file *seq, void *offset)
struct
acpi_processor
*
pr
=
(
struct
acpi_processor
*
)
seq
->
private
;
int
i
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_perf_seq_show"
);
if
(
!
pr
)
goto
end
;
...
...
@@ -444,7 +438,7 @@ static int acpi_processor_perf_seq_show(struct seq_file *seq, void *offset)
(
u32
)
pr
->
performance
->
states
[
i
].
transition_latency
);
end:
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_processor_perf_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -466,23 +460,22 @@ acpi_processor_write_performance(struct file *file,
unsigned
int
new_state
=
0
;
struct
cpufreq_policy
policy
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_write_performance"
);
if
(
!
pr
||
(
count
>
sizeof
(
state_string
)
-
1
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
perf
=
pr
->
performance
;
if
(
!
perf
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
copy_from_user
(
state_string
,
buffer
,
count
))
return
_VALUE
(
-
EFAULT
)
;
return
-
EFAULT
;
state_string
[
count
]
=
'\0'
;
new_state
=
simple_strtoul
(
state_string
,
NULL
,
0
);
if
(
new_state
>=
perf
->
state_count
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
cpufreq_get_policy
(
&
policy
,
pr
->
id
);
...
...
@@ -492,9 +485,9 @@ acpi_processor_write_performance(struct file *file,
result
=
cpufreq_set_policy
(
&
policy
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
return
_VALUE
(
count
)
;
return
count
;
}
static
void
acpi_cpufreq_add_file
(
struct
acpi_processor
*
pr
)
...
...
@@ -502,10 +495,9 @@ static void acpi_cpufreq_add_file(struct acpi_processor *pr)
struct
proc_dir_entry
*
entry
=
NULL
;
struct
acpi_device
*
device
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_cpufreq_addfile"
);
if
(
acpi_bus_get_device
(
pr
->
handle
,
&
device
))
return
_VOID
;
return
;
/* add file 'performance' [R/W] */
entry
=
create_proc_entry
(
ACPI_PROCESSOR_FILE_PERFORMANCE
,
...
...
@@ -517,23 +509,22 @@ static void acpi_cpufreq_add_file(struct acpi_processor *pr)
entry
->
data
=
acpi_driver_data
(
device
);
entry
->
owner
=
THIS_MODULE
;
}
return
_VOID
;
return
;
}
static
void
acpi_cpufreq_remove_file
(
struct
acpi_processor
*
pr
)
{
struct
acpi_device
*
device
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_cpufreq_addfile"
);
if
(
acpi_bus_get_device
(
pr
->
handle
,
&
device
))
return
_VOID
;
return
;
/* remove file 'performance' */
remove_proc_entry
(
ACPI_PROCESSOR_FILE_PERFORMANCE
,
acpi_device_dir
(
device
));
return
_VOID
;
return
;
}
#else
...
...
@@ -777,22 +768,21 @@ acpi_processor_register_performance(struct acpi_processor_performance
{
struct
acpi_processor
*
pr
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_register_performance"
);
if
(
!
(
acpi_processor_ppc_status
&
PPC_REGISTERED
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
mutex_lock
(
&
performance_mutex
);
pr
=
processors
[
cpu
];
if
(
!
pr
)
{
mutex_unlock
(
&
performance_mutex
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
if
(
pr
->
performance
)
{
mutex_unlock
(
&
performance_mutex
);
return
_VALUE
(
-
EBUSY
)
;
return
-
EBUSY
;
}
WARN_ON
(
!
performance
);
...
...
@@ -802,13 +792,13 @@ acpi_processor_register_performance(struct acpi_processor_performance
if
(
acpi_processor_get_performance_info
(
pr
))
{
pr
->
performance
=
NULL
;
mutex_unlock
(
&
performance_mutex
);
return
_VALUE
(
-
EIO
)
;
return
-
EIO
;
}
acpi_cpufreq_add_file
(
pr
);
mutex_unlock
(
&
performance_mutex
);
return
_VALUE
(
0
)
;
return
0
;
}
EXPORT_SYMBOL
(
acpi_processor_register_performance
);
...
...
@@ -819,14 +809,13 @@ acpi_processor_unregister_performance(struct acpi_processor_performance
{
struct
acpi_processor
*
pr
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_unregister_performance"
);
mutex_lock
(
&
performance_mutex
);
pr
=
processors
[
cpu
];
if
(
!
pr
)
{
mutex_unlock
(
&
performance_mutex
);
return
_VOID
;
return
;
}
if
(
pr
->
performance
)
...
...
@@ -837,7 +826,7 @@ acpi_processor_unregister_performance(struct acpi_processor_performance
mutex_unlock
(
&
performance_mutex
);
return
_VOID
;
return
;
}
EXPORT_SYMBOL
(
acpi_processor_unregister_performance
);
drivers/acpi/processor_thermal.c
View file @
d550d98d
...
...
@@ -54,13 +54,12 @@ static int acpi_processor_apply_limit(struct acpi_processor *pr)
u16
px
=
0
;
u16
tx
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_apply_limit"
);
if
(
!
pr
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
!
pr
->
flags
.
limit
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
if
(
pr
->
flags
.
throttling
)
{
if
(
pr
->
limit
.
user
.
tx
>
tx
)
...
...
@@ -84,7 +83,7 @@ static int acpi_processor_apply_limit(struct acpi_processor *pr)
if
(
result
)
printk
(
KERN_ERR
PREFIX
"Unable to set limit
\n
"
);
return
_VALUE
(
result
)
;
return
result
;
}
#ifdef CONFIG_CPU_FREQ
...
...
@@ -200,19 +199,18 @@ int acpi_processor_set_thermal_limit(acpi_handle handle, int type)
struct
acpi_device
*
device
=
NULL
;
int
tx
=
0
,
max_tx_px
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_set_thermal_limit"
);
if
((
type
<
ACPI_PROCESSOR_LIMIT_NONE
)
||
(
type
>
ACPI_PROCESSOR_LIMIT_DECREMENT
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
result
=
acpi_bus_get_device
(
handle
,
&
device
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
pr
=
(
struct
acpi_processor
*
)
acpi_driver_data
(
device
);
if
(
!
pr
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
/* Thermal limits are always relative to the current Px/Tx state. */
if
(
pr
->
flags
.
throttling
)
...
...
@@ -296,22 +294,21 @@ int acpi_processor_set_thermal_limit(acpi_handle handle, int type)
}
else
result
=
0
;
if
(
max_tx_px
)
return
_VALUE
(
1
)
;
return
1
;
else
return
_VALUE
(
result
)
;
return
result
;
}
int
acpi_processor_get_limit_info
(
struct
acpi_processor
*
pr
)
{
ACPI_FUNCTION_TRACE
(
"acpi_processor_get_limit_info"
);
if
(
!
pr
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
pr
->
flags
.
throttling
)
pr
->
flags
.
limit
=
1
;
return
_VALUE
(
0
)
;
return
0
;
}
/* /proc interface */
...
...
@@ -320,7 +317,6 @@ static int acpi_processor_limit_seq_show(struct seq_file *seq, void *offset)
{
struct
acpi_processor
*
pr
=
(
struct
acpi_processor
*
)
seq
->
private
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_limit_seq_show"
);
if
(
!
pr
)
goto
end
;
...
...
@@ -338,7 +334,7 @@ static int acpi_processor_limit_seq_show(struct seq_file *seq, void *offset)
pr
->
limit
.
thermal
.
px
,
pr
->
limit
.
thermal
.
tx
);
end:
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_processor_limit_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -358,34 +354,33 @@ static ssize_t acpi_processor_write_limit(struct file * file,
int
px
=
0
;
int
tx
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_write_limit"
);
if
(
!
pr
||
(
count
>
sizeof
(
limit_string
)
-
1
))
{
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
}
if
(
copy_from_user
(
limit_string
,
buffer
,
count
))
{
return
_VALUE
(
-
EFAULT
)
;
return
-
EFAULT
;
}
limit_string
[
count
]
=
'\0'
;
if
(
sscanf
(
limit_string
,
"%d:%d"
,
&
px
,
&
tx
)
!=
2
)
{
printk
(
KERN_ERR
PREFIX
"Invalid data format
\n
"
);
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
}
if
(
pr
->
flags
.
throttling
)
{
if
((
tx
<
0
)
||
(
tx
>
(
pr
->
throttling
.
state_count
-
1
)))
{
printk
(
KERN_ERR
PREFIX
"Invalid tx
\n
"
);
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
}
pr
->
limit
.
user
.
tx
=
tx
;
}
result
=
acpi_processor_apply_limit
(
pr
);
return
_VALUE
(
count
)
;
return
count
;
}
struct
file_operations
acpi_processor_limit_fops
=
{
...
...
drivers/acpi/processor_throttling.c
View file @
d550d98d
...
...
@@ -55,13 +55,12 @@ static int acpi_processor_get_throttling(struct acpi_processor *pr)
u32
duty_mask
=
0
;
u32
duty_value
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_get_throttling"
);
if
(
!
pr
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
!
pr
->
flags
.
throttling
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
pr
->
throttling
.
state
=
0
;
...
...
@@ -93,7 +92,7 @@ static int acpi_processor_get_throttling(struct acpi_processor *pr)
"Throttling state is T%d (%d%% throttling applied)
\n
"
,
state
,
pr
->
throttling
.
states
[
state
].
performance
));
return
_VALUE
(
0
)
;
return
0
;
}
int
acpi_processor_set_throttling
(
struct
acpi_processor
*
pr
,
int
state
)
...
...
@@ -102,19 +101,18 @@ int acpi_processor_set_throttling(struct acpi_processor *pr, int state)
u32
duty_mask
=
0
;
u32
duty_value
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_set_throttling"
);
if
(
!
pr
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
((
state
<
0
)
||
(
state
>
(
pr
->
throttling
.
state_count
-
1
)))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
!
pr
->
flags
.
throttling
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
if
(
state
==
pr
->
throttling
.
state
)
return
_VALUE
(
0
)
;
return
0
;
/*
* Calculate the duty_value and duty_mask.
...
...
@@ -165,7 +163,7 @@ int acpi_processor_set_throttling(struct acpi_processor *pr, int state)
(
pr
->
throttling
.
states
[
state
].
performance
?
pr
->
throttling
.
states
[
state
].
performance
/
10
:
0
)));
return
_VALUE
(
0
)
;
return
0
;
}
int
acpi_processor_get_throttling_info
(
struct
acpi_processor
*
pr
)
...
...
@@ -174,7 +172,6 @@ int acpi_processor_get_throttling_info(struct acpi_processor *pr)
int
step
=
0
;
int
i
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_get_throttling_info"
);
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"pblk_address[0x%08x] duty_offset[%d] duty_width[%d]
\n
"
,
...
...
@@ -183,21 +180,21 @@ int acpi_processor_get_throttling_info(struct acpi_processor *pr)
pr
->
throttling
.
duty_width
));
if
(
!
pr
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
/* TBD: Support ACPI 2.0 objects */
if
(
!
pr
->
throttling
.
address
)
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"No throttling register
\n
"
));
return
_VALUE
(
0
)
;
return
0
;
}
else
if
(
!
pr
->
throttling
.
duty_width
)
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"No throttling states
\n
"
));
return
_VALUE
(
0
)
;
return
0
;
}
/* TBD: Support duty_cycle values that span bit 4. */
else
if
((
pr
->
throttling
.
duty_offset
+
pr
->
throttling
.
duty_width
)
>
4
)
{
printk
(
KERN_WARNING
PREFIX
"duty_cycle spans bit 4
\n
"
);
return
_VALUE
(
0
)
;
return
0
;
}
/*
...
...
@@ -208,7 +205,7 @@ int acpi_processor_get_throttling_info(struct acpi_processor *pr)
if
(
errata
.
piix4
.
throttle
)
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Throttling not supported on PIIX4 A- or B-step
\n
"
));
return
_VALUE
(
0
)
;
return
0
;
}
pr
->
throttling
.
state_count
=
1
<<
acpi_fadt
.
duty_width
;
...
...
@@ -254,7 +251,7 @@ int acpi_processor_get_throttling_info(struct acpi_processor *pr)
if
(
result
)
pr
->
flags
.
throttling
=
0
;
return
_VALUE
(
result
)
;
return
result
;
}
/* proc interface */
...
...
@@ -266,7 +263,6 @@ static int acpi_processor_throttling_seq_show(struct seq_file *seq,
int
i
=
0
;
int
result
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_processor_throttling_seq_show"
);
if
(
!
pr
)
goto
end
;
...
...
@@ -296,7 +292,7 @@ static int acpi_processor_throttling_seq_show(struct seq_file *seq,
throttling
.
states
[
i
].
performance
/
10
:
0
));
end:
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_processor_throttling_open_fs
(
struct
inode
*
inode
,
...
...
@@ -315,13 +311,12 @@ static ssize_t acpi_processor_write_throttling(struct file * file,
struct
acpi_processor
*
pr
=
(
struct
acpi_processor
*
)
m
->
private
;
char
state_string
[
12
]
=
{
'\0'
};
ACPI_FUNCTION_TRACE
(
"acpi_processor_write_throttling"
);
if
(
!
pr
||
(
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'
;
...
...
@@ -329,9 +324,9 @@ static ssize_t acpi_processor_write_throttling(struct file * file,
simple_strtoul
(
state_string
,
NULL
,
0
));
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
return
_VALUE
(
count
)
;
return
count
;
}
struct
file_operations
acpi_processor_throttling_fops
=
{
...
...
drivers/acpi/scan.c
View file @
d550d98d
...
...
@@ -162,11 +162,10 @@ static void acpi_device_unregister(struct acpi_device *device, int type)
void
acpi_bus_data_handler
(
acpi_handle
handle
,
u32
function
,
void
*
context
)
{
ACPI_FUNCTION_TRACE
(
"acpi_bus_data_handler"
);
/* TBD */
return
_VOID
;
return
;
}
static
int
acpi_bus_get_power_flags
(
struct
acpi_device
*
device
)
...
...
@@ -175,7 +174,6 @@ static int acpi_bus_get_power_flags(struct acpi_device *device)
acpi_handle
handle
=
NULL
;
u32
i
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_bus_get_power_flags"
);
/*
* Power Management Flags
...
...
@@ -228,7 +226,7 @@ static int acpi_bus_get_power_flags(struct acpi_device *device)
device
->
power
.
state
=
ACPI_STATE_UNKNOWN
;
return
_VALUE
(
0
)
;
return
0
;
}
int
acpi_match_ids
(
struct
acpi_device
*
device
,
char
*
ids
)
...
...
@@ -306,7 +304,6 @@ static int acpi_bus_get_wakeup_device_flags(struct acpi_device *device)
struct
acpi_buffer
buffer
=
{
ACPI_ALLOCATE_BUFFER
,
NULL
};
union
acpi_object
*
package
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_bus_get_wakeup_flags"
);
/* _PRW */
status
=
acpi_evaluate_object
(
device
->
handle
,
"_PRW"
,
NULL
,
&
buffer
);
...
...
@@ -332,7 +329,7 @@ static int acpi_bus_get_wakeup_device_flags(struct acpi_device *device)
end:
if
(
ACPI_FAILURE
(
status
))
device
->
flags
.
wake_capable
=
0
;
return
_VALUE
(
0
)
;
return
0
;
}
/* --------------------------------------------------------------------------
...
...
@@ -488,19 +485,18 @@ acpi_bus_driver_init(struct acpi_device *device, struct acpi_driver *driver)
{
int
result
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_bus_driver_init"
);
if
(
!
device
||
!
driver
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
!
driver
->
ops
.
add
)
return
_VALUE
(
-
ENOSYS
)
;
return
-
ENOSYS
;
result
=
driver
->
ops
.
add
(
device
);
if
(
result
)
{
device
->
driver
=
NULL
;
acpi_driver_data
(
device
)
=
NULL
;
return
_VALUE
(
result
)
;
return
result
;
}
device
->
driver
=
driver
;
...
...
@@ -512,7 +508,7 @@ acpi_bus_driver_init(struct acpi_device *device, struct acpi_driver *driver)
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Driver successfully bound to device
\n
"
));
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_start_single_object
(
struct
acpi_device
*
device
)
...
...
@@ -520,10 +516,9 @@ static int acpi_start_single_object(struct acpi_device *device)
int
result
=
0
;
struct
acpi_driver
*
driver
;
ACPI_FUNCTION_TRACE
(
"acpi_start_single_object"
);
if
(
!
(
driver
=
device
->
driver
))
return
_VALUE
(
0
)
;
return
0
;
if
(
driver
->
ops
.
start
)
{
result
=
driver
->
ops
.
start
(
device
);
...
...
@@ -531,14 +526,13 @@ static int acpi_start_single_object(struct acpi_device *device)
driver
->
ops
.
remove
(
device
,
ACPI_BUS_REMOVAL_NORMAL
);
}
return
_VALUE
(
result
)
;
return
result
;
}
static
void
acpi_driver_attach
(
struct
acpi_driver
*
drv
)
{
struct
list_head
*
node
,
*
next
;
ACPI_FUNCTION_TRACE
(
"acpi_driver_attach"
);
spin_lock
(
&
acpi_device_lock
);
list_for_each_safe
(
node
,
next
,
&
acpi_device_list
)
{
...
...
@@ -567,7 +561,6 @@ static void acpi_driver_detach(struct acpi_driver *drv)
{
struct
list_head
*
node
,
*
next
;
ACPI_FUNCTION_TRACE
(
"acpi_driver_detach"
);
spin_lock
(
&
acpi_device_lock
);
list_for_each_safe
(
node
,
next
,
&
acpi_device_list
)
{
...
...
@@ -597,17 +590,16 @@ static void acpi_driver_detach(struct acpi_driver *drv)
*/
int
acpi_bus_register_driver
(
struct
acpi_driver
*
driver
)
{
ACPI_FUNCTION_TRACE
(
"acpi_bus_register_driver"
);
if
(
acpi_disabled
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
spin_lock
(
&
acpi_device_lock
);
list_add_tail
(
&
driver
->
node
,
&
acpi_bus_drivers
);
spin_unlock
(
&
acpi_device_lock
);
acpi_driver_attach
(
driver
);
return
_VALUE
(
0
)
;
return
0
;
}
EXPORT_SYMBOL
(
acpi_bus_register_driver
);
...
...
@@ -645,7 +637,6 @@ static int acpi_bus_find_driver(struct acpi_device *device)
int
result
=
0
;
struct
list_head
*
node
,
*
next
;
ACPI_FUNCTION_TRACE
(
"acpi_bus_find_driver"
);
spin_lock
(
&
acpi_device_lock
);
list_for_each_safe
(
node
,
next
,
&
acpi_bus_drivers
)
{
...
...
@@ -665,7 +656,7 @@ static int acpi_bus_find_driver(struct acpi_device *device)
spin_unlock
(
&
acpi_device_lock
);
Done:
return
_VALUE
(
result
)
;
return
result
;
}
/* --------------------------------------------------------------------------
...
...
@@ -677,7 +668,6 @@ static int acpi_bus_get_flags(struct acpi_device *device)
acpi_status
status
=
AE_OK
;
acpi_handle
temp
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_bus_get_flags"
);
/* Presence of _STA indicates 'dynamic_status' */
status
=
acpi_get_handle
(
device
->
handle
,
"_STA"
,
&
temp
);
...
...
@@ -723,7 +713,7 @@ static int acpi_bus_get_flags(struct acpi_device *device)
/* TBD: Peformance management */
return
_VALUE
(
0
)
;
return
0
;
}
static
void
acpi_device_get_busid
(
struct
acpi_device
*
device
,
...
...
@@ -917,10 +907,9 @@ static int acpi_bus_remove(struct acpi_device *dev, int rmdevice)
int
result
=
0
;
struct
acpi_driver
*
driver
;
ACPI_FUNCTION_TRACE
(
"acpi_bus_remove"
);
if
(
!
dev
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
driver
=
dev
->
driver
;
...
...
@@ -929,12 +918,12 @@ static int acpi_bus_remove(struct acpi_device *dev, int rmdevice)
if
(
driver
->
ops
.
stop
)
{
result
=
driver
->
ops
.
stop
(
dev
,
ACPI_BUS_REMOVAL_EJECT
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
}
result
=
dev
->
driver
->
ops
.
remove
(
dev
,
ACPI_BUS_REMOVAL_EJECT
);
if
(
result
)
{
return
_VALUE
(
result
)
;
return
result
;
}
atomic_dec
(
&
dev
->
driver
->
references
);
...
...
@@ -943,7 +932,7 @@ static int acpi_bus_remove(struct acpi_device *dev, int rmdevice)
}
if
(
!
rmdevice
)
return
_VALUE
(
0
)
;
return
0
;
if
(
dev
->
flags
.
bus_address
)
{
if
((
dev
->
parent
)
&&
(
dev
->
parent
->
ops
.
unbind
))
...
...
@@ -952,7 +941,7 @@ static int acpi_bus_remove(struct acpi_device *dev, int rmdevice)
acpi_device_unregister
(
dev
,
ACPI_BUS_REMOVAL_EJECT
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
...
...
@@ -962,15 +951,14 @@ acpi_add_single_object(struct acpi_device **child,
int
result
=
0
;
struct
acpi_device
*
device
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_add_single_object"
);
if
(
!
child
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
device
=
kmalloc
(
sizeof
(
struct
acpi_device
),
GFP_KERNEL
);
if
(
!
device
)
{
printk
(
KERN_ERR
PREFIX
"Memory allocation error
\n
"
);
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
}
memset
(
device
,
0
,
sizeof
(
struct
acpi_device
));
...
...
@@ -1095,7 +1083,7 @@ acpi_add_single_object(struct acpi_device **child,
kfree
(
device
);
}
return
_VALUE
(
result
)
;
return
result
;
}
static
int
acpi_bus_scan
(
struct
acpi_device
*
start
,
struct
acpi_bus_ops
*
ops
)
...
...
@@ -1108,10 +1096,9 @@ static int acpi_bus_scan(struct acpi_device *start, struct acpi_bus_ops *ops)
acpi_object_type
type
=
0
;
u32
level
=
1
;
ACPI_FUNCTION_TRACE
(
"acpi_bus_scan"
);
if
(
!
start
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
parent
=
start
;
phandle
=
start
->
handle
;
...
...
@@ -1208,7 +1195,7 @@ static int acpi_bus_scan(struct acpi_device *start, struct acpi_bus_ops *ops)
}
}
return
_VALUE
(
0
)
;
return
0
;
}
int
...
...
@@ -1218,7 +1205,6 @@ acpi_bus_add(struct acpi_device **child,
int
result
;
struct
acpi_bus_ops
ops
;
ACPI_FUNCTION_TRACE
(
"acpi_bus_add"
);
result
=
acpi_add_single_object
(
child
,
parent
,
handle
,
type
);
if
(
!
result
)
{
...
...
@@ -1226,7 +1212,7 @@ acpi_bus_add(struct acpi_device **child,
ops
.
acpi_op_add
=
1
;
result
=
acpi_bus_scan
(
*
child
,
&
ops
);
}
return
_VALUE
(
result
)
;
return
result
;
}
EXPORT_SYMBOL
(
acpi_bus_add
);
...
...
@@ -1236,10 +1222,9 @@ int acpi_bus_start(struct acpi_device *device)
int
result
;
struct
acpi_bus_ops
ops
;
ACPI_FUNCTION_TRACE
(
"acpi_bus_start"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
result
=
acpi_start_single_object
(
device
);
if
(
!
result
)
{
...
...
@@ -1247,7 +1232,7 @@ int acpi_bus_start(struct acpi_device *device)
ops
.
acpi_op_start
=
1
;
result
=
acpi_bus_scan
(
device
,
&
ops
);
}
return
_VALUE
(
result
)
;
return
result
;
}
EXPORT_SYMBOL
(
acpi_bus_start
);
...
...
@@ -1313,10 +1298,9 @@ static int acpi_bus_scan_fixed(struct acpi_device *root)
int
result
=
0
;
struct
acpi_device
*
device
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_bus_scan_fixed"
);
if
(
!
root
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
/*
* Enumerate all fixed-feature devices.
...
...
@@ -1337,7 +1321,7 @@ static int acpi_bus_scan_fixed(struct acpi_device *root)
result
=
acpi_start_single_object
(
device
);
}
return
_VALUE
(
result
)
;
return
result
;
}
...
...
@@ -1439,10 +1423,9 @@ static int __init acpi_scan_init(void)
int
result
;
struct
acpi_bus_ops
ops
;
ACPI_FUNCTION_TRACE
(
"acpi_scan_init"
);
if
(
acpi_disabled
)
return
_VALUE
(
0
)
;
return
0
;
kset_register
(
&
acpi_namespace_kset
);
...
...
@@ -1487,7 +1470,7 @@ static int __init acpi_scan_init(void)
acpi_device_unregister
(
acpi_root
,
ACPI_BUS_REMOVAL_NORMAL
);
Done:
return
_VALUE
(
result
)
;
return
result
;
}
subsys_initcall
(
acpi_scan_init
);
drivers/acpi/system.c
View file @
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
View file @
d550d98d
...
...
@@ -222,51 +222,48 @@ static int acpi_thermal_get_temperature(struct acpi_thermal *tz)
{
acpi_status
status
=
AE_OK
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_get_temperature"
);
if
(
!
tz
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
tz
->
last_temperature
=
tz
->
temperature
;
status
=
acpi_evaluate_integer
(
tz
->
handle
,
"_TMP"
,
NULL
,
&
tz
->
temperature
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Temperature is %lu dK
\n
"
,
tz
->
temperature
));
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_thermal_get_polling_frequency
(
struct
acpi_thermal
*
tz
)
{
acpi_status
status
=
AE_OK
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_get_polling_frequency"
);
if
(
!
tz
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
status
=
acpi_evaluate_integer
(
tz
->
handle
,
"_TZP"
,
NULL
,
&
tz
->
polling_frequency
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Polling frequency is %lu dS
\n
"
,
tz
->
polling_frequency
));
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_thermal_set_polling
(
struct
acpi_thermal
*
tz
,
int
seconds
)
{
ACPI_FUNCTION_TRACE
(
"acpi_thermal_set_polling"
);
if
(
!
tz
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
tz
->
polling_frequency
=
seconds
*
10
;
/* Convert value to deci-seconds */
...
...
@@ -274,7 +271,7 @@ static int acpi_thermal_set_polling(struct acpi_thermal *tz, int seconds)
"Polling frequency set to %lu seconds
\n
"
,
tz
->
polling_frequency
));
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_thermal_set_cooling_mode
(
struct
acpi_thermal
*
tz
,
int
mode
)
...
...
@@ -284,29 +281,28 @@ static int acpi_thermal_set_cooling_mode(struct acpi_thermal *tz, int mode)
struct
acpi_object_list
arg_list
=
{
1
,
&
arg0
};
acpi_handle
handle
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_set_cooling_mode"
);
if
(
!
tz
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
status
=
acpi_get_handle
(
tz
->
handle
,
"_SCP"
,
&
handle
);
if
(
ACPI_FAILURE
(
status
))
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"_SCP not present
\n
"
));
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
arg0
.
integer
.
value
=
mode
;
status
=
acpi_evaluate_object
(
handle
,
NULL
,
&
arg_list
,
NULL
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
tz
->
cooling_mode
=
mode
;
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Cooling mode [%s]
\n
"
,
mode
?
"passive"
:
"active"
));
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_thermal_get_trip_points
(
struct
acpi_thermal
*
tz
)
...
...
@@ -314,10 +310,9 @@ static int acpi_thermal_get_trip_points(struct acpi_thermal *tz)
acpi_status
status
=
AE_OK
;
int
i
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_get_trip_points"
);
if
(
!
tz
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
/* Critical Shutdown (required) */
...
...
@@ -326,7 +321,7 @@ static int acpi_thermal_get_trip_points(struct acpi_thermal *tz)
if
(
ACPI_FAILURE
(
status
))
{
tz
->
trips
.
critical
.
flags
.
valid
=
0
;
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"No critical threshold"
));
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
else
{
tz
->
trips
.
critical
.
flags
.
valid
=
1
;
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
...
...
@@ -417,24 +412,23 @@ static int acpi_thermal_get_trip_points(struct acpi_thermal *tz)
"Invalid active threshold [%d]"
,
i
));
}
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_thermal_get_devices
(
struct
acpi_thermal
*
tz
)
{
acpi_status
status
=
AE_OK
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_get_devices"
);
if
(
!
tz
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
status
=
acpi_evaluate_reference
(
tz
->
handle
,
"_TZD"
,
NULL
,
&
tz
->
devices
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_thermal_call_usermode
(
char
*
path
)
...
...
@@ -442,10 +436,9 @@ static int acpi_thermal_call_usermode(char *path)
char
*
argv
[
2
]
=
{
NULL
,
NULL
};
char
*
envp
[
3
]
=
{
NULL
,
NULL
,
NULL
};
ACPI_FUNCTION_TRACE
(
"acpi_thermal_call_usermode"
);
if
(
!
path
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
argv
[
0
]
=
path
;
...
...
@@ -455,7 +448,7 @@ static int acpi_thermal_call_usermode(char *path)
call_usermodehelper
(
argv
[
0
],
argv
,
envp
,
0
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_thermal_critical
(
struct
acpi_thermal
*
tz
)
...
...
@@ -463,10 +456,9 @@ static int acpi_thermal_critical(struct acpi_thermal *tz)
int
result
=
0
;
struct
acpi_device
*
device
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_critical"
);
if
(
!
tz
||
!
tz
->
trips
.
critical
.
flags
.
valid
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
tz
->
temperature
>=
tz
->
trips
.
critical
.
temperature
)
{
printk
(
KERN_WARNING
PREFIX
"Critical trip point
\n
"
);
...
...
@@ -476,7 +468,7 @@ static int acpi_thermal_critical(struct acpi_thermal *tz)
result
=
acpi_bus_get_device
(
tz
->
handle
,
&
device
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
printk
(
KERN_EMERG
"Critical temperature reached (%ld C), shutting down.
\n
"
,
...
...
@@ -486,7 +478,7 @@ static int acpi_thermal_critical(struct acpi_thermal *tz)
acpi_thermal_call_usermode
(
ACPI_THERMAL_PATH_POWEROFF
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_thermal_hot
(
struct
acpi_thermal
*
tz
)
...
...
@@ -494,10 +486,9 @@ static int acpi_thermal_hot(struct acpi_thermal *tz)
int
result
=
0
;
struct
acpi_device
*
device
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_hot"
);
if
(
!
tz
||
!
tz
->
trips
.
hot
.
flags
.
valid
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
tz
->
temperature
>=
tz
->
trips
.
hot
.
temperature
)
{
printk
(
KERN_WARNING
PREFIX
"Hot trip point
\n
"
);
...
...
@@ -507,14 +498,14 @@ static int acpi_thermal_hot(struct acpi_thermal *tz)
result
=
acpi_bus_get_device
(
tz
->
handle
,
&
device
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
acpi_bus_generate_event
(
device
,
ACPI_THERMAL_NOTIFY_HOT
,
tz
->
trips
.
hot
.
flags
.
enabled
);
/* TBD: Call user-mode "sleep(S4)" function */
return
_VALUE
(
0
)
;
return
0
;
}
static
void
acpi_thermal_passive
(
struct
acpi_thermal
*
tz
)
...
...
@@ -524,7 +515,6 @@ static void acpi_thermal_passive(struct acpi_thermal *tz)
int
trend
=
0
;
int
i
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_passive"
);
if
(
!
tz
||
!
tz
->
trips
.
passive
.
flags
.
valid
)
return
;
...
...
@@ -613,7 +603,6 @@ static void acpi_thermal_active(struct acpi_thermal *tz)
int
j
=
0
;
unsigned
long
maxtemp
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_active"
);
if
(
!
tz
)
return
;
...
...
@@ -695,18 +684,17 @@ static void acpi_thermal_check(void *data)
int
i
=
0
;
struct
acpi_thermal_state
state
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_check"
);
if
(
!
tz
)
{
printk
(
KERN_ERR
PREFIX
"Invalid (NULL) context
\n
"
);
return
_VOID
;
return
;
}
state
=
tz
->
state
;
result
=
acpi_thermal_get_temperature
(
tz
);
if
(
result
)
return
_VOID
;
return
;
memset
(
&
tz
->
state
,
0
,
sizeof
(
tz
->
state
));
...
...
@@ -795,7 +783,7 @@ static void acpi_thermal_check(void *data)
}
}
return
_VOID
;
return
;
}
/* --------------------------------------------------------------------------
...
...
@@ -808,7 +796,6 @@ static int acpi_thermal_state_seq_show(struct seq_file *seq, void *offset)
{
struct
acpi_thermal
*
tz
=
(
struct
acpi_thermal
*
)
seq
->
private
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_state_seq_show"
);
if
(
!
tz
)
goto
end
;
...
...
@@ -831,7 +818,7 @@ static int acpi_thermal_state_seq_show(struct seq_file *seq, void *offset)
}
end:
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_thermal_state_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -844,7 +831,6 @@ static int acpi_thermal_temp_seq_show(struct seq_file *seq, void *offset)
int
result
=
0
;
struct
acpi_thermal
*
tz
=
(
struct
acpi_thermal
*
)
seq
->
private
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_temp_seq_show"
);
if
(
!
tz
)
goto
end
;
...
...
@@ -857,7 +843,7 @@ static int acpi_thermal_temp_seq_show(struct seq_file *seq, void *offset)
KELVIN_TO_CELSIUS
(
tz
->
temperature
));
end:
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_thermal_temp_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -871,7 +857,6 @@ static int acpi_thermal_trip_seq_show(struct seq_file *seq, void *offset)
int
i
=
0
;
int
j
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_trip_seq_show"
);
if
(
!
tz
)
goto
end
;
...
...
@@ -911,7 +896,7 @@ static int acpi_thermal_trip_seq_show(struct seq_file *seq, void *offset)
}
end:
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_thermal_trip_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -932,18 +917,17 @@ acpi_thermal_write_trip_points(struct file *file,
int
*
active
;
int
i
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_write_trip_points"
);
limit_string
=
kmalloc
(
ACPI_THERMAL_MAX_LIMIT_STR_LEN
,
GFP_KERNEL
);
if
(
!
limit_string
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
memset
(
limit_string
,
0
,
ACPI_THERMAL_MAX_LIMIT_STR_LEN
);
active
=
kmalloc
(
ACPI_THERMAL_MAX_ACTIVE
*
sizeof
(
int
),
GFP_KERNEL
);
if
(
!
active
)
{
kfree
(
limit_string
);
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
}
if
(
!
tz
||
(
count
>
ACPI_THERMAL_MAX_LIMIT_STR_LEN
-
1
))
{
...
...
@@ -980,14 +964,13 @@ acpi_thermal_write_trip_points(struct file *file,
end:
kfree
(
active
);
kfree
(
limit_string
);
return
_VALUE
(
count
)
;
return
count
;
}
static
int
acpi_thermal_cooling_seq_show
(
struct
seq_file
*
seq
,
void
*
offset
)
{
struct
acpi_thermal
*
tz
=
(
struct
acpi_thermal
*
)
seq
->
private
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_cooling_seq_show"
);
if
(
!
tz
)
goto
end
;
...
...
@@ -1003,7 +986,7 @@ static int acpi_thermal_cooling_seq_show(struct seq_file *seq, void *offset)
tz
->
cooling_mode
?
"passive"
:
"active"
);
end:
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_thermal_cooling_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -1022,16 +1005,15 @@ acpi_thermal_write_cooling_mode(struct file *file,
int
result
=
0
;
char
mode_string
[
12
]
=
{
'\0'
};
ACPI_FUNCTION_TRACE
(
"acpi_thermal_write_cooling_mode"
);
if
(
!
tz
||
(
count
>
sizeof
(
mode_string
)
-
1
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
!
tz
->
flags
.
cooling_mode
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
if
(
copy_from_user
(
mode_string
,
buffer
,
count
))
return
_VALUE
(
-
EFAULT
)
;
return
-
EFAULT
;
mode_string
[
count
]
=
'\0'
;
...
...
@@ -1039,18 +1021,17 @@ acpi_thermal_write_cooling_mode(struct file *file,
simple_strtoul
(
mode_string
,
NULL
,
0
));
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
acpi_thermal_check
(
tz
);
return
_VALUE
(
count
)
;
return
count
;
}
static
int
acpi_thermal_polling_seq_show
(
struct
seq_file
*
seq
,
void
*
offset
)
{
struct
acpi_thermal
*
tz
=
(
struct
acpi_thermal
*
)
seq
->
private
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_polling_seq_show"
);
if
(
!
tz
)
goto
end
;
...
...
@@ -1064,7 +1045,7 @@ static int acpi_thermal_polling_seq_show(struct seq_file *seq, void *offset)
(
tz
->
polling_frequency
/
10
));
end:
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_thermal_polling_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -1084,13 +1065,12 @@ acpi_thermal_write_polling(struct file *file,
char
polling_string
[
12
]
=
{
'\0'
};
int
seconds
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_write_polling"
);
if
(
!
tz
||
(
count
>
sizeof
(
polling_string
)
-
1
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
copy_from_user
(
polling_string
,
buffer
,
count
))
return
_VALUE
(
-
EFAULT
)
;
return
-
EFAULT
;
polling_string
[
count
]
=
'\0'
;
...
...
@@ -1098,24 +1078,23 @@ acpi_thermal_write_polling(struct file *file,
result
=
acpi_thermal_set_polling
(
tz
,
seconds
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
acpi_thermal_check
(
tz
);
return
_VALUE
(
count
)
;
return
count
;
}
static
int
acpi_thermal_add_fs
(
struct
acpi_device
*
device
)
{
struct
proc_dir_entry
*
entry
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_add_fs"
);
if
(
!
acpi_device_dir
(
device
))
{
acpi_device_dir
(
device
)
=
proc_mkdir
(
acpi_device_bid
(
device
),
acpi_thermal_dir
);
if
(
!
acpi_device_dir
(
device
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
acpi_device_dir
(
device
)
->
owner
=
THIS_MODULE
;
}
...
...
@@ -1123,7 +1102,7 @@ static int acpi_thermal_add_fs(struct acpi_device *device)
entry
=
create_proc_entry
(
ACPI_THERMAL_FILE_STATE
,
S_IRUGO
,
acpi_device_dir
(
device
));
if
(
!
entry
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
else
{
entry
->
proc_fops
=
&
acpi_thermal_state_fops
;
entry
->
data
=
acpi_driver_data
(
device
);
...
...
@@ -1134,7 +1113,7 @@ static int acpi_thermal_add_fs(struct acpi_device *device)
entry
=
create_proc_entry
(
ACPI_THERMAL_FILE_TEMPERATURE
,
S_IRUGO
,
acpi_device_dir
(
device
));
if
(
!
entry
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
else
{
entry
->
proc_fops
=
&
acpi_thermal_temp_fops
;
entry
->
data
=
acpi_driver_data
(
device
);
...
...
@@ -1146,7 +1125,7 @@ static int acpi_thermal_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_thermal_trip_fops
;
entry
->
data
=
acpi_driver_data
(
device
);
...
...
@@ -1158,7 +1137,7 @@ static int acpi_thermal_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_thermal_cooling_fops
;
entry
->
data
=
acpi_driver_data
(
device
);
...
...
@@ -1170,19 +1149,18 @@ static int acpi_thermal_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_thermal_polling_fops
;
entry
->
data
=
acpi_driver_data
(
device
);
entry
->
owner
=
THIS_MODULE
;
}
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_thermal_remove_fs
(
struct
acpi_device
*
device
)
{
ACPI_FUNCTION_TRACE
(
"acpi_thermal_remove_fs"
);
if
(
acpi_device_dir
(
device
))
{
remove_proc_entry
(
ACPI_THERMAL_FILE_POLLING_FREQ
,
...
...
@@ -1199,7 +1177,7 @@ static int acpi_thermal_remove_fs(struct acpi_device *device)
acpi_device_dir
(
device
)
=
NULL
;
}
return
_VALUE
(
0
)
;
return
0
;
}
/* --------------------------------------------------------------------------
...
...
@@ -1211,13 +1189,12 @@ static void acpi_thermal_notify(acpi_handle handle, u32 event, void *data)
struct
acpi_thermal
*
tz
=
(
struct
acpi_thermal
*
)
data
;
struct
acpi_device
*
device
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_notify"
);
if
(
!
tz
)
return
_VOID
;
return
;
if
(
acpi_bus_get_device
(
tz
->
handle
,
&
device
))
return
_VOID
;
return
;
switch
(
event
)
{
case
ACPI_THERMAL_NOTIFY_TEMPERATURE
:
...
...
@@ -1239,27 +1216,26 @@ static void acpi_thermal_notify(acpi_handle handle, u32 event, void *data)
break
;
}
return
_VOID
;
return
;
}
static
int
acpi_thermal_get_info
(
struct
acpi_thermal
*
tz
)
{
int
result
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_get_info"
);
if
(
!
tz
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
/* Get temperature [_TMP] (required) */
result
=
acpi_thermal_get_temperature
(
tz
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
/* Get trip points [_CRT, _PSV, etc.] (required) */
result
=
acpi_thermal_get_trip_points
(
tz
);
if
(
result
)
return
_VALUE
(
result
)
;
return
result
;
/* Set the cooling mode [_SCP] to active cooling (default) */
result
=
acpi_thermal_set_cooling_mode
(
tz
,
ACPI_THERMAL_MODE_ACTIVE
);
...
...
@@ -1299,7 +1275,7 @@ static int acpi_thermal_get_info(struct acpi_thermal *tz)
if
(
!
result
)
tz
->
flags
.
devices
=
1
;
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_thermal_add
(
struct
acpi_device
*
device
)
...
...
@@ -1308,14 +1284,13 @@ static int acpi_thermal_add(struct acpi_device *device)
acpi_status
status
=
AE_OK
;
struct
acpi_thermal
*
tz
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_add"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
tz
=
kmalloc
(
sizeof
(
struct
acpi_thermal
),
GFP_KERNEL
);
if
(
!
tz
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
memset
(
tz
,
0
,
sizeof
(
struct
acpi_thermal
));
tz
->
handle
=
device
->
handle
;
...
...
@@ -1354,7 +1329,7 @@ static int acpi_thermal_add(struct acpi_device *device)
kfree
(
tz
);
}
return
_VALUE
(
result
)
;
return
result
;
}
static
int
acpi_thermal_remove
(
struct
acpi_device
*
device
,
int
type
)
...
...
@@ -1362,10 +1337,9 @@ static int acpi_thermal_remove(struct acpi_device *device, int type)
acpi_status
status
=
AE_OK
;
struct
acpi_thermal
*
tz
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_remove"
);
if
(
!
device
||
!
acpi_driver_data
(
device
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
tz
=
(
struct
acpi_thermal
*
)
acpi_driver_data
(
device
);
...
...
@@ -1396,7 +1370,7 @@ static int acpi_thermal_remove(struct acpi_device *device, int type)
acpi_thermal_remove_fs
(
device
);
kfree
(
tz
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_thermal_resume
(
struct
acpi_device
*
device
,
int
state
)
...
...
@@ -1404,7 +1378,7 @@ static int acpi_thermal_resume(struct acpi_device *device, int state)
struct
acpi_thermal
*
tz
=
NULL
;
if
(
!
device
||
!
acpi_driver_data
(
device
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
tz
=
(
struct
acpi_thermal
*
)
acpi_driver_data
(
device
);
...
...
@@ -1417,31 +1391,29 @@ static int __init acpi_thermal_init(void)
{
int
result
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_thermal_init"
);
acpi_thermal_dir
=
proc_mkdir
(
ACPI_THERMAL_CLASS
,
acpi_root_dir
);
if
(
!
acpi_thermal_dir
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
acpi_thermal_dir
->
owner
=
THIS_MODULE
;
result
=
acpi_bus_register_driver
(
&
acpi_thermal_driver
);
if
(
result
<
0
)
{
remove_proc_entry
(
ACPI_THERMAL_CLASS
,
acpi_root_dir
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
return
_VALUE
(
0
)
;
return
0
;
}
static
void
__exit
acpi_thermal_exit
(
void
)
{
ACPI_FUNCTION_TRACE
(
"acpi_thermal_exit"
);
acpi_bus_unregister_driver
(
&
acpi_thermal_driver
);
remove_proc_entry
(
ACPI_THERMAL_CLASS
,
acpi_root_dir
);
return
_VOID
;
return
;
}
module_init
(
acpi_thermal_init
);
...
...
drivers/acpi/utils.c
View file @
d550d98d
...
...
@@ -58,22 +58,21 @@ acpi_extract_package(union acpi_object *package,
u8
*
head
=
NULL
;
u8
*
tail
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_extract_package"
);
if
(
!
package
||
(
package
->
type
!=
ACPI_TYPE_PACKAGE
)
||
(
package
->
package
.
count
<
1
))
{
printk
(
KERN_WARNING
PREFIX
"Invalid package argument
\n
"
);
return
_ACPI_STATUS
(
AE_BAD_PARAMETER
)
;
return
AE_BAD_PARAMETER
;
}
if
(
!
format
||
!
format
->
pointer
||
(
format
->
length
<
1
))
{
printk
(
KERN_WARNING
PREFIX
"Invalid format argument
\n
"
);
return
_ACPI_STATUS
(
AE_BAD_PARAMETER
)
;
return
AE_BAD_PARAMETER
;
}
if
(
!
buffer
)
{
printk
(
KERN_WARNING
PREFIX
"Invalid buffer argument
\n
"
);
return
_ACPI_STATUS
(
AE_BAD_PARAMETER
)
;
return
AE_BAD_PARAMETER
;
}
format_count
=
(
format
->
length
/
sizeof
(
char
))
-
1
;
...
...
@@ -81,7 +80,7 @@ acpi_extract_package(union acpi_object *package,
printk
(
KERN_WARNING
PREFIX
"Format specifies more objects [%d]"
" than exist in package [%d].
\n
"
,
format_count
,
package
->
package
.
count
);
return
_ACPI_STATUS
(
AE_BAD_DATA
)
;
return
AE_BAD_DATA
;
}
format_string
=
(
char
*
)
format
->
pointer
;
...
...
@@ -94,7 +93,7 @@ acpi_extract_package(union acpi_object *package,
union
acpi_object
*
element
=
&
(
package
->
package
.
elements
[
i
]);
if
(
!
element
)
{
return
_ACPI_STATUS
(
AE_BAD_DATA
)
;
return
AE_BAD_DATA
;
}
switch
(
element
->
type
)
{
...
...
@@ -116,7 +115,7 @@ acpi_extract_package(union acpi_object *package,
" [%d]: got number, expecing"
" [%c]
\n
"
,
i
,
format_string
[
i
]);
return
_ACPI_STATUS
(
AE_BAD_DATA
)
;
return
AE_BAD_DATA
;
break
;
}
break
;
...
...
@@ -142,7 +141,7 @@ acpi_extract_package(union acpi_object *package,
" [%d] got string/buffer,"
" expecing [%c]
\n
"
,
i
,
format_string
[
i
]);
return
_ACPI_STATUS
(
AE_BAD_DATA
)
;
return
AE_BAD_DATA
;
break
;
}
break
;
...
...
@@ -153,7 +152,7 @@ acpi_extract_package(union acpi_object *package,
"Found unsupported element at index=%d
\n
"
,
i
));
/* TBD: handle nested packages... */
return
_ACPI_STATUS
(
AE_SUPPORT
)
;
return
AE_SUPPORT
;
break
;
}
}
...
...
@@ -163,9 +162,9 @@ acpi_extract_package(union acpi_object *package,
*/
if
(
buffer
->
length
<
size_required
)
{
buffer
->
length
=
size_required
;
return
_ACPI_STATUS
(
AE_BUFFER_OVERFLOW
)
;
return
AE_BUFFER_OVERFLOW
;
}
else
if
(
buffer
->
length
!=
size_required
||
!
buffer
->
pointer
)
{
return
_ACPI_STATUS
(
AE_BAD_PARAMETER
)
;
return
AE_BAD_PARAMETER
;
}
head
=
buffer
->
pointer
;
...
...
@@ -180,7 +179,7 @@ acpi_extract_package(union acpi_object *package,
union
acpi_object
*
element
=
&
(
package
->
package
.
elements
[
i
]);
if
(
!
element
)
{
return
_ACPI_STATUS
(
AE_BAD_DATA
)
;
return
AE_BAD_DATA
;
}
switch
(
element
->
type
)
{
...
...
@@ -245,7 +244,7 @@ acpi_extract_package(union acpi_object *package,
}
}
return
_ACPI_STATUS
(
AE_OK
)
;
return
AE_OK
;
}
EXPORT_SYMBOL
(
acpi_extract_package
);
...
...
@@ -259,14 +258,13 @@ acpi_evaluate_integer(acpi_handle handle,
union
acpi_object
*
element
;
struct
acpi_buffer
buffer
=
{
0
,
NULL
};
ACPI_FUNCTION_TRACE
(
"acpi_evaluate_integer"
);
if
(
!
data
)
return
_ACPI_STATUS
(
AE_BAD_PARAMETER
)
;
return
AE_BAD_PARAMETER
;
element
=
kmalloc
(
sizeof
(
union
acpi_object
),
GFP_KERNEL
);
if
(
!
element
)
return
_ACPI_STATUS
(
AE_NO_MEMORY
)
;
return
AE_NO_MEMORY
;
memset
(
element
,
0
,
sizeof
(
union
acpi_object
));
buffer
.
length
=
sizeof
(
union
acpi_object
);
...
...
@@ -275,13 +273,13 @@ acpi_evaluate_integer(acpi_handle handle,
if
(
ACPI_FAILURE
(
status
))
{
acpi_util_eval_error
(
handle
,
pathname
,
status
);
kfree
(
element
);
return
_ACPI_STATUS
(
status
)
;
return
status
;
}
if
(
element
->
type
!=
ACPI_TYPE_INTEGER
)
{
acpi_util_eval_error
(
handle
,
pathname
,
AE_BAD_DATA
);
kfree
(
element
);
return
_ACPI_STATUS
(
AE_BAD_DATA
)
;
return
AE_BAD_DATA
;
}
*
data
=
element
->
integer
.
value
;
...
...
@@ -289,7 +287,7 @@ acpi_evaluate_integer(acpi_handle handle,
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Return value [%lu]
\n
"
,
*
data
));
return
_ACPI_STATUS
(
AE_OK
)
;
return
AE_OK
;
}
EXPORT_SYMBOL
(
acpi_evaluate_integer
);
...
...
@@ -304,15 +302,14 @@ acpi_evaluate_string(acpi_handle handle,
acpi_object *element = NULL;
acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
ACPI_FUNCTION_TRACE("acpi_evaluate_string");
if (!data)
return
_ACPI_STATUS(AE_BAD_PARAMETER)
;
return
AE_BAD_PARAMETER
;
status = acpi_evaluate_object(handle, pathname, arguments, &buffer);
if (ACPI_FAILURE(status)) {
acpi_util_eval_error(handle, pathname, status);
return
_ACPI_STATUS(status)
;
return
status
;
}
element = (acpi_object *) buffer.pointer;
...
...
@@ -321,13 +318,13 @@ acpi_evaluate_string(acpi_handle handle,
|| (element->type != ACPI_TYPE_BUFFER)
|| !element->string.length) {
acpi_util_eval_error(handle, pathname, AE_BAD_DATA);
return
_ACPI_STATUS(AE_BAD_DATA)
;
return
AE_BAD_DATA
;
}
*data = kmalloc(element->string.length + 1, GFP_KERNEL);
if (!data) {
printk(KERN_ERR PREFIX "Memory allocation\n");
return
_VALUE(-ENOMEM)
;
return
-ENOMEM
;
}
memset(*data, 0, element->string.length + 1);
...
...
@@ -337,7 +334,7 @@ acpi_evaluate_string(acpi_handle handle,
acpi_os_free(buffer.pointer);
return
_ACPI_STATUS(AE_OK)
;
return
AE_OK
;
}
#endif
...
...
@@ -353,10 +350,9 @@ acpi_evaluate_reference(acpi_handle handle,
struct
acpi_buffer
buffer
=
{
ACPI_ALLOCATE_BUFFER
,
NULL
};
u32
i
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_evaluate_reference"
);
if
(
!
list
)
{
return
_ACPI_STATUS
(
AE_BAD_PARAMETER
)
;
return
AE_BAD_PARAMETER
;
}
/* Evaluate object. */
...
...
@@ -390,7 +386,7 @@ acpi_evaluate_reference(acpi_handle handle,
}
if
(
package
->
package
.
count
>
ACPI_MAX_HANDLES
)
{
return
_ACPI_STATUS
(
AE_NO_MEMORY
)
;
return
AE_NO_MEMORY
;
}
list
->
count
=
package
->
package
.
count
;
...
...
@@ -424,7 +420,7 @@ acpi_evaluate_reference(acpi_handle handle,
acpi_os_free
(
buffer
.
pointer
);
return
_ACPI_STATUS
(
status
)
;
return
status
;
}
EXPORT_SYMBOL
(
acpi_evaluate_reference
);
drivers/acpi/video.c
View file @
d550d98d
...
...
@@ -272,10 +272,9 @@ static int
acpi_video_device_query
(
struct
acpi_video_device
*
device
,
unsigned
long
*
state
)
{
int
status
;
ACPI_FUNCTION_TRACE
(
"acpi_video_device_query"
);
status
=
acpi_evaluate_integer
(
device
->
handle
,
"_DGS"
,
NULL
,
state
);
return
_VALUE
(
status
)
;
return
status
;
}
static
int
...
...
@@ -284,11 +283,10 @@ acpi_video_device_get_state(struct acpi_video_device *device,
{
int
status
;
ACPI_FUNCTION_TRACE
(
"acpi_video_device_get_state"
);
status
=
acpi_evaluate_integer
(
device
->
handle
,
"_DCS"
,
NULL
,
state
);
return
_VALUE
(
status
)
;
return
status
;
}
static
int
...
...
@@ -299,12 +297,11 @@ acpi_video_device_set_state(struct acpi_video_device *device, int state)
struct
acpi_object_list
args
=
{
1
,
&
arg0
};
unsigned
long
ret
;
ACPI_FUNCTION_TRACE
(
"acpi_video_device_set_state"
);
arg0
.
integer
.
value
=
state
;
status
=
acpi_evaluate_integer
(
device
->
handle
,
"_DSS"
,
&
args
,
&
ret
);
return
_VALUE
(
status
)
;
return
status
;
}
static
int
...
...
@@ -315,13 +312,12 @@ acpi_video_device_lcd_query_levels(struct acpi_video_device *device,
struct
acpi_buffer
buffer
=
{
ACPI_ALLOCATE_BUFFER
,
NULL
};
union
acpi_object
*
obj
;
ACPI_FUNCTION_TRACE
(
"acpi_video_device_lcd_query_levels"
);
*
levels
=
NULL
;
status
=
acpi_evaluate_object
(
device
->
handle
,
"_BCL"
,
NULL
,
&
buffer
);
if
(
!
ACPI_SUCCESS
(
status
))
return
_VALUE
(
status
)
;
return
status
;
obj
=
(
union
acpi_object
*
)
buffer
.
pointer
;
if
(
!
obj
||
(
obj
->
type
!=
ACPI_TYPE_PACKAGE
))
{
printk
(
KERN_ERR
PREFIX
"Invalid _BCL data
\n
"
);
...
...
@@ -331,12 +327,12 @@ acpi_video_device_lcd_query_levels(struct acpi_video_device *device,
*
levels
=
obj
;
return
_VALUE
(
0
)
;
return
0
;
err:
kfree
(
buffer
.
pointer
);
return
_VALUE
(
status
)
;
return
status
;
}
static
int
...
...
@@ -346,13 +342,12 @@ acpi_video_device_lcd_set_level(struct acpi_video_device *device, int level)
union
acpi_object
arg0
=
{
ACPI_TYPE_INTEGER
};
struct
acpi_object_list
args
=
{
1
,
&
arg0
};
ACPI_FUNCTION_TRACE
(
"acpi_video_device_lcd_set_level"
);
arg0
.
integer
.
value
=
level
;
status
=
acpi_evaluate_object
(
device
->
handle
,
"_BCM"
,
&
args
,
NULL
);
printk
(
KERN_DEBUG
"set_level status: %x
\n
"
,
status
);
return
_VALUE
(
status
)
;
return
status
;
}
static
int
...
...
@@ -360,11 +355,10 @@ acpi_video_device_lcd_get_level_current(struct acpi_video_device *device,
unsigned
long
*
level
)
{
int
status
;
ACPI_FUNCTION_TRACE
(
"acpi_video_device_lcd_get_level_current"
);
status
=
acpi_evaluate_integer
(
device
->
handle
,
"_BQC"
,
NULL
,
level
);
return
_VALUE
(
status
)
;
return
status
;
}
static
int
...
...
@@ -377,22 +371,21 @@ acpi_video_device_EDID(struct acpi_video_device *device,
union
acpi_object
arg0
=
{
ACPI_TYPE_INTEGER
};
struct
acpi_object_list
args
=
{
1
,
&
arg0
};
ACPI_FUNCTION_TRACE
(
"acpi_video_device_get_EDID"
);
*
edid
=
NULL
;
if
(
!
device
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
if
(
length
==
128
)
arg0
.
integer
.
value
=
1
;
else
if
(
length
==
256
)
arg0
.
integer
.
value
=
2
;
else
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
status
=
acpi_evaluate_object
(
device
->
handle
,
"_DDC"
,
&
args
,
&
buffer
);
if
(
ACPI_FAILURE
(
status
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
obj
=
(
union
acpi_object
*
)
buffer
.
pointer
;
...
...
@@ -404,7 +397,7 @@ acpi_video_device_EDID(struct acpi_video_device *device,
kfree
(
obj
);
}
return
_VALUE
(
status
)
;
return
status
;
}
/* bus */
...
...
@@ -417,7 +410,6 @@ acpi_video_bus_set_POST(struct acpi_video_bus *video, unsigned long option)
union
acpi_object
arg0
=
{
ACPI_TYPE_INTEGER
};
struct
acpi_object_list
args
=
{
1
,
&
arg0
};
ACPI_FUNCTION_TRACE
(
"acpi_video_bus_set_POST"
);
arg0
.
integer
.
value
=
option
;
...
...
@@ -425,7 +417,7 @@ acpi_video_bus_set_POST(struct acpi_video_bus *video, unsigned long option)
if
(
ACPI_SUCCESS
(
status
))
status
=
tmp
?
(
-
EINVAL
)
:
(
AE_OK
);
return
_VALUE
(
status
)
;
return
status
;
}
static
int
...
...
@@ -433,11 +425,10 @@ acpi_video_bus_get_POST(struct acpi_video_bus *video, unsigned long *id)
{
int
status
;
ACPI_FUNCTION_TRACE
(
"acpi_video_bus_get_POST"
);
status
=
acpi_evaluate_integer
(
video
->
handle
,
"_GPD"
,
NULL
,
id
);
return
_VALUE
(
status
)
;
return
status
;
}
static
int
...
...
@@ -445,12 +436,11 @@ acpi_video_bus_POST_options(struct acpi_video_bus *video,
unsigned
long
*
options
)
{
int
status
;
ACPI_FUNCTION_TRACE
(
"acpi_video_bus_POST_options"
);
status
=
acpi_evaluate_integer
(
video
->
handle
,
"_VPO"
,
NULL
,
options
);
*
options
&=
3
;
return
_VALUE
(
status
)
;
return
status
;
}
/*
...
...
@@ -481,7 +471,6 @@ acpi_video_bus_DOS(struct acpi_video_bus *video, int bios_flag, int lcd_flag)
union
acpi_object
arg0
=
{
ACPI_TYPE_INTEGER
};
struct
acpi_object_list
args
=
{
1
,
&
arg0
};
ACPI_FUNCTION_TRACE
(
"acpi_video_bus_DOS"
);
if
(
bios_flag
<
0
||
bios_flag
>
3
||
lcd_flag
<
0
||
lcd_flag
>
1
)
{
status
=
-
1
;
...
...
@@ -492,7 +481,7 @@ acpi_video_bus_DOS(struct acpi_video_bus *video, int bios_flag, int lcd_flag)
acpi_evaluate_object
(
video
->
handle
,
"_DOS"
,
&
args
,
NULL
);
Failed:
return
_VALUE
(
status
)
;
return
status
;
}
/*
...
...
@@ -514,7 +503,6 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device)
union
acpi_object
*
obj
=
NULL
;
struct
acpi_video_device_brightness
*
br
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_video_device_find_cap"
);
memset
(
&
device
->
cap
,
0
,
4
);
...
...
@@ -582,7 +570,7 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device)
kfree
(
obj
);
return
_VOID
;
return
;
}
/*
...
...
@@ -629,10 +617,9 @@ static int acpi_video_bus_check(struct acpi_video_bus *video)
{
acpi_status
status
=
-
ENOENT
;
ACPI_FUNCTION_TRACE
(
"acpi_video_bus_check"
);
if
(
!
video
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
/* Since there is no HID, CID and so on for VGA driver, we have
* to check well known required nodes.
...
...
@@ -656,7 +643,7 @@ static int acpi_video_bus_check(struct acpi_video_bus *video)
status
=
0
;
}
return
_VALUE
(
status
)
;
return
status
;
}
/* --------------------------------------------------------------------------
...
...
@@ -672,7 +659,6 @@ static int acpi_video_device_info_seq_show(struct seq_file *seq, void *offset)
struct
acpi_video_device
*
dev
=
(
struct
acpi_video_device
*
)
seq
->
private
;
ACPI_FUNCTION_TRACE
(
"acpi_video_device_info_seq_show"
);
if
(
!
dev
)
goto
end
;
...
...
@@ -691,7 +677,7 @@ static int acpi_video_device_info_seq_show(struct seq_file *seq, void *offset)
seq_printf
(
seq
,
"known by bios: %s
\n
"
,
dev
->
flags
.
bios
?
"yes"
:
"no"
);
end:
return
_VALUE
(
0
)
;
return
0
;
}
static
int
...
...
@@ -708,7 +694,6 @@ static int acpi_video_device_state_seq_show(struct seq_file *seq, void *offset)
(
struct
acpi_video_device
*
)
seq
->
private
;
unsigned
long
state
;
ACPI_FUNCTION_TRACE
(
"acpi_video_device_state_seq_show"
);
if
(
!
dev
)
goto
end
;
...
...
@@ -728,7 +713,7 @@ static int acpi_video_device_state_seq_show(struct seq_file *seq, void *offset)
seq_printf
(
seq
,
"<not supported>
\n
"
);
end:
return
_VALUE
(
0
)
;
return
0
;
}
static
int
...
...
@@ -749,13 +734,12 @@ acpi_video_device_write_state(struct file *file,
char
str
[
12
]
=
{
0
};
u32
state
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_video_device_write_state"
);
if
(
!
dev
||
count
+
1
>
sizeof
str
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
copy_from_user
(
str
,
buffer
,
count
))
return
_VALUE
(
-
EFAULT
)
;
return
-
EFAULT
;
str
[
count
]
=
0
;
state
=
simple_strtoul
(
str
,
NULL
,
0
);
...
...
@@ -764,9 +748,9 @@ acpi_video_device_write_state(struct file *file,
status
=
acpi_video_device_set_state
(
dev
,
state
);
if
(
status
)
return
_VALUE
(
-
EFAULT
)
;
return
-
EFAULT
;
return
_VALUE
(
count
)
;
return
count
;
}
static
int
...
...
@@ -776,11 +760,10 @@ acpi_video_device_brightness_seq_show(struct seq_file *seq, void *offset)
(
struct
acpi_video_device
*
)
seq
->
private
;
int
i
;
ACPI_FUNCTION_TRACE
(
"acpi_video_device_brightness_seq_show"
);
if
(
!
dev
||
!
dev
->
brightness
)
{
seq_printf
(
seq
,
"<not supported>
\n
"
);
return
_VALUE
(
0
)
;
return
0
;
}
seq_printf
(
seq
,
"levels: "
);
...
...
@@ -788,7 +771,7 @@ acpi_video_device_brightness_seq_show(struct seq_file *seq, void *offset)
seq_printf
(
seq
,
" %d"
,
dev
->
brightness
->
levels
[
i
]);
seq_printf
(
seq
,
"
\n
current: %d
\n
"
,
dev
->
brightness
->
curr
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
...
...
@@ -809,19 +792,18 @@ acpi_video_device_write_brightness(struct file *file,
unsigned
int
level
=
0
;
int
i
;
ACPI_FUNCTION_TRACE
(
"acpi_video_device_write_brightness"
);
if
(
!
dev
||
!
dev
->
brightness
||
count
+
1
>
sizeof
str
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
copy_from_user
(
str
,
buffer
,
count
))
return
_VALUE
(
-
EFAULT
)
;
return
-
EFAULT
;
str
[
count
]
=
0
;
level
=
simple_strtoul
(
str
,
NULL
,
0
);
if
(
level
>
100
)
return
_VALUE
(
-
EFAULT
)
;
return
-
EFAULT
;
/* validate though the list of available levels */
for
(
i
=
0
;
i
<
dev
->
brightness
->
count
;
i
++
)
...
...
@@ -832,7 +814,7 @@ acpi_video_device_write_brightness(struct file *file,
break
;
}
return
_VALUE
(
count
)
;
return
count
;
}
static
int
acpi_video_device_EDID_seq_show
(
struct
seq_file
*
seq
,
void
*
offset
)
...
...
@@ -843,7 +825,6 @@ static int acpi_video_device_EDID_seq_show(struct seq_file *seq, void *offset)
int
i
;
union
acpi_object
*
edid
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_video_device_EDID_seq_show"
);
if
(
!
dev
)
goto
out
;
...
...
@@ -868,7 +849,7 @@ static int acpi_video_device_EDID_seq_show(struct seq_file *seq, void *offset)
else
kfree
(
edid
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
...
...
@@ -883,27 +864,26 @@ static int acpi_video_device_add_fs(struct acpi_device *device)
struct
proc_dir_entry
*
entry
=
NULL
;
struct
acpi_video_device
*
vid_dev
;
ACPI_FUNCTION_TRACE
(
"acpi_video_device_add_fs"
);
if
(
!
device
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
vid_dev
=
(
struct
acpi_video_device
*
)
acpi_driver_data
(
device
);
if
(
!
vid_dev
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
if
(
!
acpi_device_dir
(
device
))
{
acpi_device_dir
(
device
)
=
proc_mkdir
(
acpi_device_bid
(
device
),
vid_dev
->
video
->
dir
);
if
(
!
acpi_device_dir
(
device
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
acpi_device_dir
(
device
)
->
owner
=
THIS_MODULE
;
}
/* 'info' [R] */
entry
=
create_proc_entry
(
"info"
,
S_IRUGO
,
acpi_device_dir
(
device
));
if
(
!
entry
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
else
{
entry
->
proc_fops
=
&
acpi_video_device_info_fops
;
entry
->
data
=
acpi_driver_data
(
device
);
...
...
@@ -915,7 +895,7 @@ static int acpi_video_device_add_fs(struct acpi_device *device)
create_proc_entry
(
"state"
,
S_IFREG
|
S_IRUGO
|
S_IWUSR
,
acpi_device_dir
(
device
));
if
(
!
entry
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
else
{
acpi_video_device_state_fops
.
write
=
acpi_video_device_write_state
;
entry
->
proc_fops
=
&
acpi_video_device_state_fops
;
...
...
@@ -928,7 +908,7 @@ static int acpi_video_device_add_fs(struct acpi_device *device)
create_proc_entry
(
"brightness"
,
S_IFREG
|
S_IRUGO
|
S_IWUSR
,
acpi_device_dir
(
device
));
if
(
!
entry
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
else
{
acpi_video_device_brightness_fops
.
write
=
acpi_video_device_write_brightness
;
entry
->
proc_fops
=
&
acpi_video_device_brightness_fops
;
...
...
@@ -939,24 +919,23 @@ static int acpi_video_device_add_fs(struct acpi_device *device)
/* 'EDID' [R] */
entry
=
create_proc_entry
(
"EDID"
,
S_IRUGO
,
acpi_device_dir
(
device
));
if
(
!
entry
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
else
{
entry
->
proc_fops
=
&
acpi_video_device_EDID_fops
;
entry
->
data
=
acpi_driver_data
(
device
);
entry
->
owner
=
THIS_MODULE
;
}
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_video_device_remove_fs
(
struct
acpi_device
*
device
)
{
struct
acpi_video_device
*
vid_dev
;
ACPI_FUNCTION_TRACE
(
"acpi_video_device_remove_fs"
);
vid_dev
=
(
struct
acpi_video_device
*
)
acpi_driver_data
(
device
);
if
(
!
vid_dev
||
!
vid_dev
->
video
||
!
vid_dev
->
video
->
dir
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
if
(
acpi_device_dir
(
device
))
{
remove_proc_entry
(
"info"
,
acpi_device_dir
(
device
));
...
...
@@ -967,7 +946,7 @@ static int acpi_video_device_remove_fs(struct acpi_device *device)
acpi_device_dir
(
device
)
=
NULL
;
}
return
_VALUE
(
0
)
;
return
0
;
}
/* video bus */
...
...
@@ -975,7 +954,6 @@ static int acpi_video_bus_info_seq_show(struct seq_file *seq, void *offset)
{
struct
acpi_video_bus
*
video
=
(
struct
acpi_video_bus
*
)
seq
->
private
;
ACPI_FUNCTION_TRACE
(
"acpi_video_bus_info_seq_show"
);
if
(
!
video
)
goto
end
;
...
...
@@ -988,7 +966,7 @@ static int acpi_video_bus_info_seq_show(struct seq_file *seq, void *offset)
video
->
flags
.
post
?
"yes"
:
"no"
);
end:
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_video_bus_info_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -1001,7 +979,6 @@ static int acpi_video_bus_ROM_seq_show(struct seq_file *seq, void *offset)
{
struct
acpi_video_bus
*
video
=
(
struct
acpi_video_bus
*
)
seq
->
private
;
ACPI_FUNCTION_TRACE
(
"acpi_video_bus_ROM_seq_show"
);
if
(
!
video
)
goto
end
;
...
...
@@ -1010,7 +987,7 @@ static int acpi_video_bus_ROM_seq_show(struct seq_file *seq, void *offset)
seq_printf
(
seq
,
"<TODO>
\n
"
);
end:
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_video_bus_ROM_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -1024,7 +1001,6 @@ static int acpi_video_bus_POST_info_seq_show(struct seq_file *seq, void *offset)
unsigned
long
options
;
int
status
;
ACPI_FUNCTION_TRACE
(
"acpi_video_bus_POST_info_seq_show"
);
if
(
!
video
)
goto
end
;
...
...
@@ -1047,7 +1023,7 @@ static int acpi_video_bus_POST_info_seq_show(struct seq_file *seq, void *offset)
}
else
seq_printf
(
seq
,
"<not supported>
\n
"
);
end:
return
_VALUE
(
0
)
;
return
0
;
}
static
int
...
...
@@ -1063,7 +1039,6 @@ static int acpi_video_bus_POST_seq_show(struct seq_file *seq, void *offset)
int
status
;
unsigned
long
id
;
ACPI_FUNCTION_TRACE
(
"acpi_video_bus_POST_seq_show"
);
if
(
!
video
)
goto
end
;
...
...
@@ -1076,18 +1051,17 @@ static int acpi_video_bus_POST_seq_show(struct seq_file *seq, void *offset)
seq_printf
(
seq
,
"device posted is <%s>
\n
"
,
device_decode
[
id
&
3
]);
end:
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_video_bus_DOS_seq_show
(
struct
seq_file
*
seq
,
void
*
offset
)
{
struct
acpi_video_bus
*
video
=
(
struct
acpi_video_bus
*
)
seq
->
private
;
ACPI_FUNCTION_TRACE
(
"acpi_video_bus_DOS_seq_show"
);
seq_printf
(
seq
,
"DOS setting: <%d>
\n
"
,
video
->
dos_setting
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_video_bus_POST_open_fs
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
@@ -1112,22 +1086,21 @@ acpi_video_bus_write_POST(struct file *file,
char
str
[
12
]
=
{
0
};
unsigned
long
opt
,
options
;
ACPI_FUNCTION_TRACE
(
"acpi_video_bus_write_POST"
);
if
(
!
video
||
count
+
1
>
sizeof
str
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
status
=
acpi_video_bus_POST_options
(
video
,
&
options
);
if
(
!
ACPI_SUCCESS
(
status
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
copy_from_user
(
str
,
buffer
,
count
))
return
_VALUE
(
-
EFAULT
)
;
return
-
EFAULT
;
str
[
count
]
=
0
;
opt
=
strtoul
(
str
,
NULL
,
0
);
if
(
opt
>
3
)
return
_VALUE
(
-
EFAULT
)
;
return
-
EFAULT
;
/* just in case an OEM 'forget' the motherboard... */
options
|=
1
;
...
...
@@ -1135,11 +1108,11 @@ acpi_video_bus_write_POST(struct file *file,
if
(
options
&
(
1ul
<<
opt
))
{
status
=
acpi_video_bus_set_POST
(
video
,
opt
);
if
(
!
ACPI_SUCCESS
(
status
))
return
_VALUE
(
-
EFAULT
)
;
return
-
EFAULT
;
}
return
_VALUE
(
count
)
;
return
count
;
}
static
ssize_t
...
...
@@ -1153,25 +1126,24 @@ acpi_video_bus_write_DOS(struct file *file,
char
str
[
12
]
=
{
0
};
unsigned
long
opt
;
ACPI_FUNCTION_TRACE
(
"acpi_video_bus_write_DOS"
);
if
(
!
video
||
count
+
1
>
sizeof
str
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
if
(
copy_from_user
(
str
,
buffer
,
count
))
return
_VALUE
(
-
EFAULT
)
;
return
-
EFAULT
;
str
[
count
]
=
0
;
opt
=
strtoul
(
str
,
NULL
,
0
);
if
(
opt
>
7
)
return
_VALUE
(
-
EFAULT
)
;
return
-
EFAULT
;
status
=
acpi_video_bus_DOS
(
video
,
opt
&
0x3
,
(
opt
&
0x4
)
>>
2
);
if
(
!
ACPI_SUCCESS
(
status
))
return
_VALUE
(
-
EFAULT
)
;
return
-
EFAULT
;
return
_VALUE
(
count
)
;
return
count
;
}
static
int
acpi_video_bus_add_fs
(
struct
acpi_device
*
device
)
...
...
@@ -1179,7 +1151,6 @@ static int acpi_video_bus_add_fs(struct acpi_device *device)
struct
proc_dir_entry
*
entry
=
NULL
;
struct
acpi_video_bus
*
video
;
ACPI_FUNCTION_TRACE
(
"acpi_video_bus_add_fs"
);
video
=
(
struct
acpi_video_bus
*
)
acpi_driver_data
(
device
);
...
...
@@ -1187,7 +1158,7 @@ static int acpi_video_bus_add_fs(struct acpi_device *device)
acpi_device_dir
(
device
)
=
proc_mkdir
(
acpi_device_bid
(
device
),
acpi_video_dir
);
if
(
!
acpi_device_dir
(
device
))
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
video
->
dir
=
acpi_device_dir
(
device
);
acpi_device_dir
(
device
)
->
owner
=
THIS_MODULE
;
}
...
...
@@ -1195,7 +1166,7 @@ static int acpi_video_bus_add_fs(struct acpi_device *device)
/* 'info' [R] */
entry
=
create_proc_entry
(
"info"
,
S_IRUGO
,
acpi_device_dir
(
device
));
if
(
!
entry
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
else
{
entry
->
proc_fops
=
&
acpi_video_bus_info_fops
;
entry
->
data
=
acpi_driver_data
(
device
);
...
...
@@ -1205,7 +1176,7 @@ static int acpi_video_bus_add_fs(struct acpi_device *device)
/* 'ROM' [R] */
entry
=
create_proc_entry
(
"ROM"
,
S_IRUGO
,
acpi_device_dir
(
device
));
if
(
!
entry
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
else
{
entry
->
proc_fops
=
&
acpi_video_bus_ROM_fops
;
entry
->
data
=
acpi_driver_data
(
device
);
...
...
@@ -1216,7 +1187,7 @@ static int acpi_video_bus_add_fs(struct acpi_device *device)
entry
=
create_proc_entry
(
"POST_info"
,
S_IRUGO
,
acpi_device_dir
(
device
));
if
(
!
entry
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
else
{
entry
->
proc_fops
=
&
acpi_video_bus_POST_info_fops
;
entry
->
data
=
acpi_driver_data
(
device
);
...
...
@@ -1228,7 +1199,7 @@ static int acpi_video_bus_add_fs(struct acpi_device *device)
create_proc_entry
(
"POST"
,
S_IFREG
|
S_IRUGO
|
S_IRUSR
,
acpi_device_dir
(
device
));
if
(
!
entry
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
else
{
acpi_video_bus_POST_fops
.
write
=
acpi_video_bus_write_POST
;
entry
->
proc_fops
=
&
acpi_video_bus_POST_fops
;
...
...
@@ -1241,7 +1212,7 @@ static int acpi_video_bus_add_fs(struct acpi_device *device)
create_proc_entry
(
"DOS"
,
S_IFREG
|
S_IRUGO
|
S_IRUSR
,
acpi_device_dir
(
device
));
if
(
!
entry
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
else
{
acpi_video_bus_DOS_fops
.
write
=
acpi_video_bus_write_DOS
;
entry
->
proc_fops
=
&
acpi_video_bus_DOS_fops
;
...
...
@@ -1249,14 +1220,13 @@ static int acpi_video_bus_add_fs(struct acpi_device *device)
entry
->
owner
=
THIS_MODULE
;
}
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_video_bus_remove_fs
(
struct
acpi_device
*
device
)
{
struct
acpi_video_bus
*
video
;
ACPI_FUNCTION_TRACE
(
"acpi_video_bus_remove_fs"
);
video
=
(
struct
acpi_video_bus
*
)
acpi_driver_data
(
device
);
...
...
@@ -1270,7 +1240,7 @@ static int acpi_video_bus_remove_fs(struct acpi_device *device)
acpi_device_dir
(
device
)
=
NULL
;
}
return
_VALUE
(
0
)
;
return
0
;
}
/* --------------------------------------------------------------------------
...
...
@@ -1287,10 +1257,9 @@ acpi_video_bus_get_one_device(struct acpi_device *device,
int
status
;
struct
acpi_video_device
*
data
;
ACPI_FUNCTION_TRACE
(
"acpi_video_bus_get_one_device"
);
if
(
!
device
||
!
video
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
status
=
acpi_evaluate_integer
(
device
->
handle
,
"_ADR"
,
NULL
,
&
device_id
);
...
...
@@ -1298,7 +1267,7 @@ acpi_video_bus_get_one_device(struct acpi_device *device,
data
=
kmalloc
(
sizeof
(
struct
acpi_video_device
),
GFP_KERNEL
);
if
(
!
data
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
memset
(
data
,
0
,
sizeof
(
struct
acpi_video_device
));
...
...
@@ -1349,10 +1318,10 @@ acpi_video_bus_get_one_device(struct acpi_device *device,
acpi_video_device_add_fs
(
device
);
return
_VALUE
(
0
)
;
return
0
;
}
return
_VALUE
(
-
ENOENT
)
;
return
-
ENOENT
;
}
/*
...
...
@@ -1395,7 +1364,6 @@ acpi_video_device_bind(struct acpi_video_bus *video,
struct
acpi_video_device
*
device
)
{
int
i
;
ACPI_FUNCTION_TRACE
(
"acpi_video_device_bind"
);
#define IDS_VAL(i) video->attached_array[i].value.int_val
#define IDS_BIND(i) video->attached_array[i].bind_info
...
...
@@ -1432,12 +1400,11 @@ static int acpi_video_device_enumerate(struct acpi_video_bus *video)
union
acpi_object
*
dod
=
NULL
;
union
acpi_object
*
obj
;
ACPI_FUNCTION_TRACE
(
"acpi_video_device_enumerate"
);
status
=
acpi_evaluate_object
(
video
->
handle
,
"_DOD"
,
NULL
,
&
buffer
);
if
(
!
ACPI_SUCCESS
(
status
))
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"Evaluating _DOD"
));
return
_VALUE
(
status
)
;
return
status
;
}
dod
=
(
union
acpi_object
*
)
buffer
.
pointer
;
...
...
@@ -1484,7 +1451,7 @@ static int acpi_video_device_enumerate(struct acpi_video_bus *video)
video
->
attached_count
=
count
;
out:
acpi_os_free
(
buffer
.
pointer
);
return
_VALUE
(
status
)
;
return
status
;
}
/*
...
...
@@ -1509,7 +1476,6 @@ static int acpi_video_switch_output(struct acpi_video_bus *video, int event)
unsigned
long
state
;
int
status
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_video_switch_output"
);
list_for_each_safe
(
node
,
next
,
&
video
->
video_device_list
)
{
dev
=
container_of
(
node
,
struct
acpi_video_device
,
entry
);
...
...
@@ -1540,7 +1506,7 @@ static int acpi_video_switch_output(struct acpi_video_bus *video, int event)
break
;
}
return
_VALUE
(
status
)
;
return
status
;
}
static
int
...
...
@@ -1567,7 +1533,6 @@ acpi_video_bus_get_devices(struct acpi_video_bus *video,
int
status
=
0
;
struct
list_head
*
node
,
*
next
;
ACPI_FUNCTION_TRACE
(
"acpi_video_get_devices"
);
acpi_video_device_enumerate
(
video
);
...
...
@@ -1585,7 +1550,7 @@ acpi_video_bus_get_devices(struct acpi_video_bus *video,
}
}
return
_VALUE
(
status
)
;
return
status
;
}
static
int
acpi_video_bus_put_one_device
(
struct
acpi_video_device
*
device
)
...
...
@@ -1593,10 +1558,9 @@ static int acpi_video_bus_put_one_device(struct acpi_video_device *device)
acpi_status
status
;
struct
acpi_video_bus
*
video
;
ACPI_FUNCTION_TRACE
(
"acpi_video_bus_put_one_device"
);
if
(
!
device
||
!
device
->
video
)
return
_VALUE
(
-
ENOENT
)
;
return
-
ENOENT
;
video
=
device
->
video
;
...
...
@@ -1609,7 +1573,7 @@ static int acpi_video_bus_put_one_device(struct acpi_video_device *device)
ACPI_DEVICE_NOTIFY
,
acpi_video_device_notify
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
acpi_video_bus_put_devices
(
struct
acpi_video_bus
*
video
)
...
...
@@ -1617,7 +1581,6 @@ static int acpi_video_bus_put_devices(struct acpi_video_bus *video)
int
status
;
struct
list_head
*
node
,
*
next
;
ACPI_FUNCTION_TRACE
(
"acpi_video_bus_put_devices"
);
list_for_each_safe
(
node
,
next
,
&
video
->
video_device_list
)
{
struct
acpi_video_device
*
data
=
...
...
@@ -1636,7 +1599,7 @@ static int acpi_video_bus_put_devices(struct acpi_video_bus *video)
kfree
(
data
);
}
return
_VALUE
(
0
)
;
return
0
;
}
/* acpi_video interface */
...
...
@@ -1656,14 +1619,13 @@ static void acpi_video_bus_notify(acpi_handle handle, u32 event, void *data)
struct
acpi_video_bus
*
video
=
(
struct
acpi_video_bus
*
)
data
;
struct
acpi_device
*
device
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_video_bus_notify"
);
printk
(
"video bus notify
\n
"
);
if
(
!
video
)
return
_VOID
;
return
;
if
(
acpi_bus_get_device
(
handle
,
&
device
))
return
_VOID
;
return
;
switch
(
event
)
{
case
ACPI_VIDEO_NOTIFY_SWITCH
:
/* User request that a switch occur,
...
...
@@ -1692,7 +1654,7 @@ static void acpi_video_bus_notify(acpi_handle handle, u32 event, void *data)
break
;
}
return
_VOID
;
return
;
}
static
void
acpi_video_device_notify
(
acpi_handle
handle
,
u32
event
,
void
*
data
)
...
...
@@ -1701,14 +1663,13 @@ static void acpi_video_device_notify(acpi_handle handle, u32 event, void *data)
(
struct
acpi_video_device
*
)
data
;
struct
acpi_device
*
device
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_video_device_notify"
);
printk
(
"video device notify
\n
"
);
if
(
!
video_device
)
return
_VOID
;
return
;
if
(
acpi_bus_get_device
(
handle
,
&
device
))
return
_VOID
;
return
;
switch
(
event
)
{
case
ACPI_VIDEO_NOTIFY_SWITCH
:
/* change in status (cycle output device) */
...
...
@@ -1728,7 +1689,7 @@ static void acpi_video_device_notify(acpi_handle handle, u32 event, void *data)
"Unsupported event [0x%x]
\n
"
,
event
));
break
;
}
return
_VOID
;
return
;
}
static
int
acpi_video_bus_add
(
struct
acpi_device
*
device
)
...
...
@@ -1737,14 +1698,13 @@ static int acpi_video_bus_add(struct acpi_device *device)
acpi_status
status
=
0
;
struct
acpi_video_bus
*
video
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_video_bus_add"
);
if
(
!
device
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
video
=
kmalloc
(
sizeof
(
struct
acpi_video_bus
),
GFP_KERNEL
);
if
(
!
video
)
return
_VALUE
(
-
ENOMEM
)
;
return
-
ENOMEM
;
memset
(
video
,
0
,
sizeof
(
struct
acpi_video_bus
));
video
->
handle
=
device
->
handle
;
...
...
@@ -1791,7 +1751,7 @@ static int acpi_video_bus_add(struct acpi_device *device)
if
(
result
)
kfree
(
video
);
return
_VALUE
(
result
)
;
return
result
;
}
static
int
acpi_video_bus_remove
(
struct
acpi_device
*
device
,
int
type
)
...
...
@@ -1799,10 +1759,9 @@ static int acpi_video_bus_remove(struct acpi_device *device, int type)
acpi_status
status
=
0
;
struct
acpi_video_bus
*
video
=
NULL
;
ACPI_FUNCTION_TRACE
(
"acpi_video_bus_remove"
);
if
(
!
device
||
!
acpi_driver_data
(
device
))
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
video
=
(
struct
acpi_video_bus
*
)
acpi_driver_data
(
device
);
...
...
@@ -1818,7 +1777,7 @@ static int acpi_video_bus_remove(struct acpi_device *device, int type)
kfree
(
video
->
attached_array
);
kfree
(
video
);
return
_VALUE
(
0
)
;
return
0
;
}
static
int
...
...
@@ -1828,10 +1787,9 @@ acpi_video_bus_match(struct acpi_device *device, struct acpi_driver *driver)
acpi_handle
h_dummy2
;
acpi_handle
h_dummy3
;
ACPI_FUNCTION_TRACE
(
"acpi_video_bus_match"
);
if
(
!
device
||
!
driver
)
return
_VALUE
(
-
EINVAL
)
;
return
-
EINVAL
;
/* Since there is no HID, CID for ACPI Video drivers, we have
* to check well known required nodes for each feature we support.
...
...
@@ -1840,26 +1798,25 @@ acpi_video_bus_match(struct acpi_device *device, struct acpi_driver *driver)
/* Does this device able to support video switching ? */
if
(
ACPI_SUCCESS
(
acpi_get_handle
(
device
->
handle
,
"_DOD"
,
&
h_dummy1
))
&&
ACPI_SUCCESS
(
acpi_get_handle
(
device
->
handle
,
"_DOS"
,
&
h_dummy2
)))
return
_VALUE
(
0
)
;
return
0
;
/* Does this device able to retrieve a video ROM ? */
if
(
ACPI_SUCCESS
(
acpi_get_handle
(
device
->
handle
,
"_ROM"
,
&
h_dummy1
)))
return
_VALUE
(
0
)
;
return
0
;
/* Does this device able to configure which video head to be POSTed ? */
if
(
ACPI_SUCCESS
(
acpi_get_handle
(
device
->
handle
,
"_VPO"
,
&
h_dummy1
))
&&
ACPI_SUCCESS
(
acpi_get_handle
(
device
->
handle
,
"_GPD"
,
&
h_dummy2
))
&&
ACPI_SUCCESS
(
acpi_get_handle
(
device
->
handle
,
"_SPD"
,
&
h_dummy3
)))
return
_VALUE
(
0
)
;
return
0
;
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
static
int
__init
acpi_video_init
(
void
)
{
int
result
=
0
;
ACPI_FUNCTION_TRACE
(
"acpi_video_init"
);
/*
acpi_dbg_level = 0xFFFFFFFF;
...
...
@@ -1868,27 +1825,26 @@ static int __init acpi_video_init(void)
acpi_video_dir
=
proc_mkdir
(
ACPI_VIDEO_CLASS
,
acpi_root_dir
);
if
(
!
acpi_video_dir
)
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
acpi_video_dir
->
owner
=
THIS_MODULE
;
result
=
acpi_bus_register_driver
(
&
acpi_video_bus
);
if
(
result
<
0
)
{
remove_proc_entry
(
ACPI_VIDEO_CLASS
,
acpi_root_dir
);
return
_VALUE
(
-
ENODEV
)
;
return
-
ENODEV
;
}
return
_VALUE
(
0
)
;
return
0
;
}
static
void
__exit
acpi_video_exit
(
void
)
{
ACPI_FUNCTION_TRACE
(
"acpi_video_exit"
);
acpi_bus_unregister_driver
(
&
acpi_video_bus
);
remove_proc_entry
(
ACPI_VIDEO_CLASS
,
acpi_root_dir
);
return
_VOID
;
return
;
}
module_init
(
acpi_video_init
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment