/* Make sure the controller is completely inactive, unable to generate interrupts or do DMA.  */
void uhci_reset_hc(struct pci_dev *pdev, unsigned long base)
/* Make sure the controller is completely inactive, unable to generate interrupts or do DMA.  */
void uhci_reset_hc(struct pci_dev *pdev, unsigned long base)
{
	pci_write_config_word(pdev, UHCI_USBLEGSUP, UHCI_USBLEGSUP_RWC);
	outw(UHCI_USBCMD_HCRESET, base + UHCI_USBCMD);
	mb();
	udelay(5);
	if (inw(base + UHCI_USBCMD) & UHCI_USBCMD_HCRESET)
		dev_warn(&pdev->dev, "HCRESET not completed yet!\n");
	outw(0, base + UHCI_USBINTR);
	outw(0, base + UHCI_USBCMD);
}