On Fri, 28 Feb 2014, Dan Williams wrote: > Once usb-acpi has set the port's connect type the usb_device's > ->removable attribute can be set in the standard location > set_usb_port_removable(). > > This also changes behavior in the case where the firmware says that the > port connect type is unknown. In that case just use the default setting > determined from the hub descriptor. > > Suggested-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> > Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx> Good clean-up. > @@ -155,36 +156,15 @@ static struct acpi_device *usb_acpi_find_companion(struct device *dev) > */ > if (is_usb_device(dev)) { > udev = to_usb_device(dev); > - port1 = udev->portnum; > - if (udev->parent) { > - struct usb_hub *hub; > - > - hub = usb_hub_to_struct_hub(udev->parent); > - /* > - * According usb port's connect type to set usb device's > - * removability. > - */ > - switch (hub->ports[port1 - 1]->connect_type) { > - case USB_PORT_CONNECT_TYPE_HOT_PLUG: > - udev->removable = USB_DEVICE_REMOVABLE; > - break; > - case USB_PORT_CONNECT_TYPE_HARD_WIRED: > - udev->removable = USB_DEVICE_FIXED; > - break; > - default: > - udev->removable = USB_DEVICE_REMOVABLE_UNKNOWN; > - break; > - } > - > + if (udev->parent) > return NULL; > - } > > /* root hub's parent is the usb hcd. */ > - return acpi_find_child_device(ACPI_COMPANION(dev->parent), > - port1, false); > + port1 = udev->portnum; > + adev = ACPI_COMPANION(dev->parent); > + return acpi_find_child_device(adev, port1, false); Does this entirely make sense? As far as I can see, port1 is never going to be anything other than 0. After all, root hubs don't have upstream ports. I don't know what ACPI expects to see here. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html