On 12/11/2012 04:34 PM, Alan Stern wrote:
On Mon, 10 Dec 2012, Timur wrote:
N7 is not using a vanilla kernel. It is one thing to apply modifications
to the given code base. It would be far more difficult (I think) to
replace the kernel as a whole. Maybe I should back port just as little
code as possible? Or maybe I should try to back port some full building
blocks? Where to make the cut? I also wonder how to make the system take
advantage of ehci_suspend() and ehci_resume(), both marked as
"__maybe_unused". Who is calling these methods?
Why are you concerned about those routines? The problem most likely
lies in your slave devices -- they don't recover properly from a sudden
power loss. You should try unplugging the slave, waiting a few
seconds, and then plugging it back in again.
Alan Stern
Thank you for your response. Yes, unplugging helps. But host and slave
should also function in a fixed installation setup, where cables are
hidden. I tried different slave devices and they are all "not accepting
address xx, error -71" after power was lost.
I think it is the host causing the issue, not working properly through
it's deep sleep cycle. Something is wrong or missing in N7's
tegra_ehci_resume() / tegra_ehci_suspend() methods. These methods exist
(found them!) and they are being called:
https://github.com/mehrvarz/android_kernel_grouper/blob/android-tegra3-grouper-3.1-jb-mr0/drivers/usb/host/ehci-tegra.c#L1246
Timur
--
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