On Sun, 23 Jun 2013, Manjunath Goudar wrote:
As a general rule, you should never change code that you don't understand. Do you _know_ that it will be safe to call ohci_setup() or ohci_restart() at this point?
From David Brownell comment I am understanding,instead of calling ohci_setup() or ohci_restart(),we can use directly below code.
ohci->hc_control &= OHCI_CTRL_RWC; ohci_writel (ohci, ohci->hc_control, &ohci->regs->control); ohci->rh_state = OHCI_RH_HALTED;
Of course you can use that code; that's exactly what ohci_usb_reset() does now.
the 3rd line code is written by you,I want to know what exactly it is doing. Is it required here?
Yes, it is required. ohci->rh_state stores the current state of the root hub. When the controller is reset, the root hub goes into the HALTED state; this line records that fact.
It might be a good idea to get in touch with the person who wrote that routine originally and ask why they used ohci_usb_reset().
yes I will.
Hi David,
As I understood ohci_usb_reset() is calling for to notice disconnect,reconnect, or wakeup without the 48 MHz clock active. After fix power management hanging(869aa98c) issue by Patrice Vilchez,I think ohci_usb_reset() is not required to call. what is your opinion about this.
Sadly, David Brownell died in 2011. I can tell you, though, that commit 869aa98c does not eliminate the need to call ohci_usb_reset().
Alan Stern