898 free_irq(hcd->irq, hcd);
899 hcd->irq = -1;
900
901 if (quirk_zfmicro(ohci))
902 del_timer(&ohci->unlink_watchdog);
903 if (quirk_amdiso(ohci))
904 amd_iso_dev_put();
905
906 remove_debug_files (ohci);
907 ohci_mem_cleanup (ohci);
908 if (ohci->hcca) {
909 dma_free_coherent (hcd->self.controller,
910 sizeof *ohci->hcca,
911 ohci->hcca, ohci->hcca_dma);
912 ohci->hcca = NULL;
913 ohci->hcca_dma = 0;
914 }
915}
916
917
918
919#if defined(CONFIG_PM) || defined(CONFIG_PCI)
920
921
922static int ohci_restart (struct ohci_hcd *ohci)
923{
924 int temp;
925 int i;
926 struct urb_priv *priv;
927
928 spin_lock_irq(&ohci->lock);
929 disable (ohci);
930
931
932 if (!list_empty (&ohci->pending))
933 ohci_dbg(ohci, "abort schedule...\n");
934 list_for_each_entry (priv, &ohci->pending, pending) {
935 struct urb *urb = priv->td[0]->urb;
936 struct ed *ed = priv->ed;
937
938 switch (ed->state) {