/* Wait for all URBs to the endpoint to be completed, then delete the qset.  */
static void whc_endpoint_disable(struct usb_hcd *usb_hcd, struct usb_host_endpoint *ep)
/* Wait for all URBs to the endpoint to be completed, then delete the qset.  */
static void whc_endpoint_disable(struct usb_hcd *usb_hcd, struct usb_host_endpoint *ep)
{
	struct wusbhc *wusbhc = usb_hcd_to_wusbhc(usb_hcd);
	struct whc *whc = wusbhc_to_whc(wusbhc);
	struct whc_qset *qset;
	qset = ep->hcpriv;
	if (qset) {
		ep->hcpriv = NULL;
		if (usb_endpoint_xfer_bulk(&ep->desc)
		    || usb_endpoint_xfer_control(&ep->desc))
			asl_qset_delete(whc, qset);
		else
			pzl_qset_delete(whc, qset);
	}
}