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
64e94e7e
Commit
64e94e7e
authored
Jan 29, 2013
by
Rafael J. Wysocki
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'acpi-scan' into acpi-cleanup
The following commits depend on the 'acpi-scan' material.
parents
2c0d4fe0
c511cc19
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
21 additions
and
27 deletions
+21
-27
drivers/acpi/dock.c
drivers/acpi/dock.c
+2
-6
drivers/acpi/scan.c
drivers/acpi/scan.c
+15
-13
drivers/pci/hotplug/acpiphp_glue.c
drivers/pci/hotplug/acpiphp_glue.c
+3
-7
include/acpi/acpi_bus.h
include/acpi/acpi_bus.h
+1
-1
No files found.
drivers/acpi/dock.c
View file @
64e94e7e
...
...
@@ -336,13 +336,9 @@ static struct acpi_device * dock_create_acpi_device(acpi_handle handle)
static
void
dock_remove_acpi_device
(
acpi_handle
handle
)
{
struct
acpi_device
*
device
;
int
ret
;
if
(
!
acpi_bus_get_device
(
handle
,
&
device
))
{
ret
=
acpi_bus_trim
(
device
);
if
(
ret
)
pr_debug
(
"error removing bus, %x
\n
"
,
-
ret
);
}
if
(
!
acpi_bus_get_device
(
handle
,
&
device
))
acpi_bus_trim
(
device
);
}
/**
...
...
drivers/acpi/scan.c
View file @
64e94e7e
...
...
@@ -52,6 +52,7 @@ static const struct acpi_device_id acpi_platform_device_ids[] = {
static
LIST_HEAD
(
acpi_device_list
);
static
LIST_HEAD
(
acpi_bus_id_list
);
static
DEFINE_MUTEX
(
acpi_scan_lock
);
DEFINE_MUTEX
(
acpi_device_lock
);
LIST_HEAD
(
acpi_wakeup_device_list
);
...
...
@@ -127,13 +128,8 @@ void acpi_bus_hot_remove_device(void *context)
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Hot-removing device %s...
\n
"
,
dev_name
(
&
device
->
dev
)));
if
(
acpi_bus_trim
(
device
))
{
printk
(
KERN_ERR
PREFIX
"Removing device failed
\n
"
);
goto
err_out
;
}
/* device has been freed */
acpi_bus_trim
(
device
);
/* Device node has been released. */
device
=
NULL
;
/* power off device */
...
...
@@ -1616,19 +1612,22 @@ static acpi_status acpi_bus_device_attach(acpi_handle handle, u32 lvl_not_used,
int
acpi_bus_scan
(
acpi_handle
handle
)
{
void
*
device
=
NULL
;
int
error
=
0
;
mutex_lock
(
&
acpi_scan_lock
);
if
(
ACPI_SUCCESS
(
acpi_bus_check_add
(
handle
,
0
,
NULL
,
&
device
)))
acpi_walk_namespace
(
ACPI_TYPE_ANY
,
handle
,
ACPI_UINT32_MAX
,
acpi_bus_check_add
,
NULL
,
NULL
,
&
device
);
if
(
!
device
)
return
-
ENODEV
;
if
(
ACPI_SUCCESS
(
acpi_bus_device_attach
(
handle
,
0
,
NULL
,
NULL
)))
error
=
-
ENODEV
;
else
if
(
ACPI_SUCCESS
(
acpi_bus_device_attach
(
handle
,
0
,
NULL
,
NULL
)))
acpi_walk_namespace
(
ACPI_TYPE_ANY
,
handle
,
ACPI_UINT32_MAX
,
acpi_bus_device_attach
,
NULL
,
NULL
,
NULL
);
return
0
;
mutex_unlock
(
&
acpi_scan_lock
);
return
error
;
}
EXPORT_SYMBOL
(
acpi_bus_scan
);
...
...
@@ -1655,8 +1654,10 @@ static acpi_status acpi_bus_remove(acpi_handle handle, u32 lvl_not_used,
return
AE_OK
;
}
int
acpi_bus_trim
(
struct
acpi_device
*
start
)
void
acpi_bus_trim
(
struct
acpi_device
*
start
)
{
mutex_lock
(
&
acpi_scan_lock
);
/*
* Execute acpi_bus_device_detach() as a post-order callback to detach
* all ACPI drivers from the device nodes being removed.
...
...
@@ -1671,7 +1672,8 @@ int acpi_bus_trim(struct acpi_device *start)
acpi_walk_namespace
(
ACPI_TYPE_ANY
,
start
->
handle
,
ACPI_UINT32_MAX
,
NULL
,
acpi_bus_remove
,
NULL
,
NULL
);
acpi_bus_remove
(
start
->
handle
,
0
,
NULL
,
NULL
);
return
0
;
mutex_unlock
(
&
acpi_scan_lock
);
}
EXPORT_SYMBOL_GPL
(
acpi_bus_trim
);
...
...
drivers/pci/hotplug/acpiphp_glue.c
View file @
64e94e7e
...
...
@@ -742,8 +742,7 @@ static int acpiphp_bus_add(struct acpiphp_func *func)
/* this shouldn't be in here, so remove
* the bus then re-add it...
*/
ret_val
=
acpi_bus_trim
(
device
);
dbg
(
"acpi_bus_trim return %x
\n
"
,
ret_val
);
acpi_bus_trim
(
device
);
}
ret_val
=
acpi_bus_scan
(
func
->
handle
);
...
...
@@ -772,11 +771,8 @@ static int acpiphp_bus_trim(acpi_handle handle)
return
retval
;
}
retval
=
acpi_bus_trim
(
device
);
if
(
retval
)
err
(
"cannot remove from acpi list
\n
"
);
return
retval
;
acpi_bus_trim
(
device
);
return
0
;
}
static
void
acpiphp_set_acpi_region
(
struct
acpiphp_slot
*
slot
)
...
...
include/acpi/acpi_bus.h
View file @
64e94e7e
...
...
@@ -386,7 +386,7 @@ int acpi_bus_register_driver(struct acpi_driver *driver);
void
acpi_bus_unregister_driver
(
struct
acpi_driver
*
driver
);
int
acpi_bus_scan
(
acpi_handle
handle
);
void
acpi_bus_hot_remove_device
(
void
*
context
);
int
acpi_bus_trim
(
struct
acpi_device
*
start
);
void
acpi_bus_trim
(
struct
acpi_device
*
start
);
acpi_status
acpi_bus_get_ejd
(
acpi_handle
handle
,
acpi_handle
*
ejd
);
int
acpi_match_device_ids
(
struct
acpi_device
*
device
,
const
struct
acpi_device_id
*
ids
);
...
...
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