|
@@ -3504,6 +3504,10 @@ int xhci_address_device(struct usb_hcd *hcd, struct usb_device *udev)
|
|
|
/* Otherwise, update the control endpoint ring enqueue pointer. */
|
|
|
else
|
|
|
xhci_copy_ep0_dequeue_into_input_ctx(xhci, udev);
|
|
|
+ ctrl_ctx = xhci_get_input_control_ctx(xhci, virt_dev->in_ctx);
|
|
|
+ ctrl_ctx->add_flags = cpu_to_le32(SLOT_FLAG | EP0_FLAG);
|
|
|
+ ctrl_ctx->drop_flags = 0;
|
|
|
+
|
|
|
xhci_dbg(xhci, "Slot ID %d Input Context:\n", udev->slot_id);
|
|
|
xhci_dbg_ctx(xhci, virt_dev->in_ctx, 2);
|
|
|
|
|
@@ -3585,7 +3589,6 @@ int xhci_address_device(struct usb_hcd *hcd, struct usb_device *udev)
|
|
|
virt_dev->address = (le32_to_cpu(slot_ctx->dev_state) & DEV_ADDR_MASK)
|
|
|
+ 1;
|
|
|
/* Zero the input context control for later use */
|
|
|
- ctrl_ctx = xhci_get_input_control_ctx(xhci, virt_dev->in_ctx);
|
|
|
ctrl_ctx->add_flags = 0;
|
|
|
ctrl_ctx->drop_flags = 0;
|
|
|
|