the datasheet for the chip is here

http://www.smsc.com/media/Downloads_Public/Data_Sheets/9514.pdf

reading this paper I noticed that power management is shared between  USB and ETH. I think that when you move your mouse ETH is waken up because USB is waken up. the datasheet says

"Many customers use a single poly fuse to power all their devices. For the ganged situation, all power
control pins must be tied together"

I think you need to check the schematics for your board and analyze how PM is implemented. I had problems with TI's implementation of ETH support on other boards. It always was a low priority for some reason. Maybe because Linux kernel is being updated too often and ETH is not that required.

as a conclusion I would look into PM implementation differences in working and non-working kernels including PLL and power domain configurations


On Wed, Jul 4, 2012 at 11:45 PM, Émeric Vigier <emeric.vigier@savoirfairelinux.com> wrote:
----- Mail original -----
> De: "Jassi Brar" <jaswinder.singh@linaro.org>
> À: "Émeric Vigier" <emeric.vigier@savoirfairelinux.com>
> Cc: "Vikram Pandita" <vikram.pandita@ti.com>, "linaro-android" <linaro-android@lists.linaro.org>,
> pandaboard@googlegroups.com, omapandroid-discussion@gforge.ti.com
> Envoyé: Mercredi 4 Juillet 2012 11:22:29
> Objet: Re: [Omapandroid-discussion] smsc95xx: download ok, upload hangs
>
> On 4 July 2012 18:51, Émeric Vigier
> <emeric.vigier@savoirfairelinux.com> wrote:
> >
> > Disabling CONFIG_CPU_IDLE does not improve anything, TX remains
> > stuck.
> > Interrupt 109 ehci_usb:usb1 occurs, I logged usb_hcd_irq
> > successfully, but only on when RX i on-going. When it occurs, my
> > TX gets resumed for some time.
> > When I move my mouse, dozen of 109 interrupts occurs, then TX gets
> > resumed for a longer period. And eventually got stuck again.
> >
> > I made a usbmon trace yesterday. I am not a USB expert, but if
> > someone in the room finds something (not) obvious (to me), that
> > would make my day (week actually...).
> > http://pastebin.com/v9GXn5Z7
> >
> Perhaps someone could relieve me of my naivety, but I think unlike
> mouse/keyboard input and ethernet RX, the TX isn't triggered by any
> interrupt, so WFI not moving on is only natural ?

You may be right, I only see interrupts in usbmon traces when I moved my USB mouse.
The fact that mouse activity resumes TX activity would then not be related to interrupts, but something else.
Argh... I hate making assumptions, because I know it is the worst way to debug a problem.


I booted linaro kernel built with panda_defconfig, and my current android images. Android zygote did not start, but I could test eth0 from command line anyway.
Not surprisingly, TX worked fine, achieving ~10MBps (compared to 20KBps when TX gets stuck).

The panda_defconfig from linaro and mine has only CONFIG_DYNAMIC_DEBUG difference. Then my bug must come from the sources:
$ git diff kernel_linaro/drivers/usb kernel/drivers/usb > linaro-11.09_android-omap-panda-3.0_kernel-drivers-usb.diff
http://pastebin.com/Cdas1SMc

There is a huge part concerning PM_RUNTIME in drivers/usb/host/ehci-omap.c that looks suspect...
I will try without related patches.

$ git diff kernel_linaro/drivers/net/usb kernel/drivers/net/usb
only contains diffs on cdc_ncm.c, asix.c. Not interesting...

$ git diff kernel_linaro/drivers/net kernel/drivers/net
has huge differences... But I prefer to ignore them for now.

git diff kernel_linaro/arch/arm/mach-omap2 kernel/arch/arm/mach-omap2
has huge differences as well... The omap44xx_usbhs_ehci_hwmod is not present in linaro kernel for instance.


Regards,
Emeric

_______________________________________________
Omapandroid-discussion mailing list
Omapandroid-discussion@gforge.ti.com
https://gforge.ti.com/mailman/listinfo/omapandroid-discussion