diff options
author | Lan Tianyu <tianyu.lan@intel.com> | 2012-09-05 13:44:33 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-09-10 13:02:02 -0700 |
commit | d557542421da643358201664903e67fd01dfca1a (patch) | |
tree | d52248ce52d1f5c5f7223c5700f727f1a1a721f4 /drivers/usb/core/hub.c | |
parent | ff823c79a5c33194c2e5594f7c4686ea3547910c (diff) | |
download | linux-d557542421da643358201664903e67fd01dfca1a.tar.gz linux-d557542421da643358201664903e67fd01dfca1a.tar.bz2 linux-d557542421da643358201664903e67fd01dfca1a.zip |
usb/acpi: Bind ACPI node to USB port, not usb_device.
In the ACPI DSDT table, only usb root hub and usb ports are ACPI device
nodes. Originally, we bound the usb port's ACPI node to the usb device
attached to the port. However, we want to access those ACPI port
methods when the port is empty, and there's no usb_device associated
with that port.
Now that the usb port is a real device, we can bind the port's ACPI node
to struct usb_port instead.
Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/core/hub.c')
-rw-r--r-- | drivers/usb/core/hub.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index cdbade148995..3341b55f495c 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -5077,3 +5077,21 @@ struct usb_device *usb_hub_find_child(struct usb_device *hdev, return hub->ports[port1 - 1]->child; } EXPORT_SYMBOL_GPL(usb_hub_find_child); + +#ifdef CONFIG_ACPI +/** + * usb_get_hub_port_acpi_handle - Get the usb port's acpi handle + * @hdev: USB device belonging to the usb hub + * @port1: port num of the port + * + * Return port's acpi handle if successful, NULL if params are + * invaild. + */ +acpi_handle usb_get_hub_port_acpi_handle(struct usb_device *hdev, + int port1) +{ + struct usb_hub *hub = hdev_to_hub(hdev); + + return DEVICE_ACPI_HANDLE(&hub->ports[port1 - 1]->dev); +} +#endif |