]> Pileus Git - ~andy/linux/blobdiff - drivers/usb/core/usb-acpi.c
Merge branch 'for-3.9-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
[~andy/linux] / drivers / usb / core / usb-acpi.c
index 0ef7d42d8abe85e77f7fdac7778b7e1220e41c49..b6f4bad3f756eefb173097767ffde6970e06220e 100644 (file)
@@ -87,7 +87,7 @@ static int usb_acpi_check_port_connect_type(struct usb_device *hdev,
        acpi_status status;
        struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
        union acpi_object *upc;
-       struct acpi_pld pld;
+       struct acpi_pld_info *pld;
        int ret = 0;
 
        /*
@@ -111,16 +111,17 @@ static int usb_acpi_check_port_connect_type(struct usb_device *hdev,
        }
 
        if (upc->package.elements[0].integer.value)
-               if (pld.user_visible)
+               if (pld->user_visible)
                        usb_set_hub_port_connect_type(hdev, port1,
                                USB_PORT_CONNECT_TYPE_HOT_PLUG);
                else
                        usb_set_hub_port_connect_type(hdev, port1,
                                USB_PORT_CONNECT_TYPE_HARD_WIRED);
-       else if (!pld.user_visible)
+       else if (!pld->user_visible)
                usb_set_hub_port_connect_type(hdev, port1, USB_PORT_NOT_USED);
 
 out:
+       ACPI_FREE(pld);
        kfree(upc);
        return ret;
 }
@@ -209,9 +210,14 @@ static int usb_acpi_find_device(struct device *dev, acpi_handle *handle)
        return 0;
 }
 
+static bool usb_acpi_bus_match(struct device *dev)
+{
+       return is_usb_device(dev) || is_usb_port(dev);
+}
+
 static struct acpi_bus_type usb_acpi_bus = {
-       .bus = &usb_bus_type,
-       .find_bridge = usb_acpi_find_device,
+       .name = "USB",
+       .match = usb_acpi_bus_match,
        .find_device = usb_acpi_find_device,
 };