Hi Alan, > The only reason I can think of why it might hang is if some clock got > turned off. But I don't know of any clock which would have that > effect, or which would get turned off before we reach this point. > > I also don't understand why the ehci_readl() would freeze when the > preceding ehci_writel() succeeded. Can you try putting a copy of the > ehci_readl() line just before the ehci_writel(), to see if it will work > there? Done: printk(KERN_INFO "ehci_halt: about to readl prematurely\n"); temp = ehci_readl(ehci, &ehci->regs->command); printk(KERN_INFO "ehci_halt: premature readl returned %x\n", temp); /* disable any irqs left enabled by previous code */ ehci_writel(ehci, 0, &ehci->regs->intr_enable); printk(KERN_INFO "ehci_halt: after first ehci_writel\n"); It works there. Result: premature readl returned 10000 thanks and cheers, Roland -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html