diff options
Diffstat (limited to 'drivers/usb/host/xhci.c')
-rw-r--r-- | drivers/usb/host/xhci.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index 7928af5c91cb..caccecb7368e 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c | |||
@@ -2287,15 +2287,15 @@ int xhci_address_device(struct usb_hcd *hcd, struct usb_device *udev) | |||
2287 | * address given back to us by the HC. | 2287 | * address given back to us by the HC. |
2288 | */ | 2288 | */ |
2289 | slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->out_ctx); | 2289 | slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->out_ctx); |
2290 | udev->devnum = (slot_ctx->dev_state & DEV_ADDR_MASK) + 1; | 2290 | /* Use kernel assigned address for devices; store xHC assigned |
2291 | * address locally. */ | ||
2292 | virt_dev->address = (slot_ctx->dev_state & DEV_ADDR_MASK) + 1; | ||
2291 | /* Zero the input context control for later use */ | 2293 | /* Zero the input context control for later use */ |
2292 | ctrl_ctx = xhci_get_input_control_ctx(xhci, virt_dev->in_ctx); | 2294 | ctrl_ctx = xhci_get_input_control_ctx(xhci, virt_dev->in_ctx); |
2293 | ctrl_ctx->add_flags = 0; | 2295 | ctrl_ctx->add_flags = 0; |
2294 | ctrl_ctx->drop_flags = 0; | 2296 | ctrl_ctx->drop_flags = 0; |
2295 | 2297 | ||
2296 | xhci_dbg(xhci, "Device address = %d\n", udev->devnum); | 2298 | xhci_dbg(xhci, "Internal device address = %d\n", virt_dev->address); |
2297 | /* XXX Meh, not sure if anyone else but choose_address uses this. */ | ||
2298 | set_bit(udev->devnum, udev->bus->devmap.devicemap); | ||
2299 | 2299 | ||
2300 | return 0; | 2300 | return 0; |
2301 | } | 2301 | } |