Intel xhci: Limit number of active endpoints to 64.
[deliverable/linux.git] / drivers / usb / host / xhci-ring.c
index 56f6c584c651a0f5763f459c49d98cc261ba593e..cc1485bfed385dc7df6b51a7de70500e453776ef 100644 (file)
@@ -1081,8 +1081,13 @@ static void handle_cmd_completion(struct xhci_hcd *xhci,
                complete(&xhci->addr_dev);
                break;
        case TRB_TYPE(TRB_DISABLE_SLOT):
-               if (xhci->devs[slot_id])
+               if (xhci->devs[slot_id]) {
+                       if (xhci->quirks & XHCI_EP_LIMIT_QUIRK)
+                               /* Delete default control endpoint resources */
+                               xhci_free_device_endpoint_resources(xhci,
+                                               xhci->devs[slot_id], true);
                        xhci_free_virt_device(xhci, slot_id);
+               }
                break;
        case TRB_TYPE(TRB_CONFIG_EP):
                virt_dev = xhci->devs[slot_id];
This page took 0.034348 seconds and 5 git commands to generate.