development tree for U-Boot: Changes to 'andy'

git at git.openmoko.org git at git.openmoko.org
Fri Aug 1 08:57:43 CEST 2008


 board/neo1973/common/udc.c     |   14 ++++++++++++--
 board/neo1973/gta02/gta02.c    |    6 ++++++
 common/cmd_bootm.c             |    7 +++++++
 drivers/serial/usbtty.c        |   16 ++++++++++++++--
 drivers/usb/usbdcore.c         |    6 ++++++
 drivers/usb/usbdcore_s3c2410.c |    9 ++++++---
 6 files changed, 51 insertions(+), 7 deletions(-)

New commits:
commit 5ebb764a8bfb44786ba80e5102c85cbeaa7139c5
Author: Andy Green <andy at openmoko.com>
Date:   Fri Aug 1 07:47:19 2008 +0100

    fix-stop-sitting-printing-in-time-critical-context.patch
    
    Someone left us a big fat warning in USB device code
    
    	/* Don't ever put [serial] debugging in non-error codepaths here, it
    	 * will violate the tight timing constraints of this USB Device
    	 * controller (and lead to bus enumeration failures) */
    
    these "non-error codepaths" go all over the shop, this patch nukes some
    serial printf()s that can do what we must never do.
    
    Signed-off-by: Andy Green <andy at openmoko.com>

commit d872d1ffdbbaf93de0f9ee95debeb414cc6da90c
Author: Andy Green <andy at openmoko.com>
Date:   Fri Aug 1 07:47:19 2008 +0100

    fix-kill-endpoints-before-linux.patch
    
    This patch ties up udc closedown before starting Linux, and
    makes sure the endpoints are off in the hardware.
    
    Signed-off-by: Andy Green <andy at openmoko.com>

commit 00c27eb2887c07a9b6cdf095e7be016ab7e42d52
Author: Andy Green <andy at openmoko.com>
Date:   Fri Aug 1 07:47:06 2008 +0100

    fix-broken-usb-handed-to-linux.patch
    
    The USB callback for udc / enumeration notification is very time
    critical.  Recently, we started using this for PMU actions, which
    occur on the ridiculously slow I2C bus and block the USB stack for
    the duration.
    
    This caused a very bad behaviour in the USB Device hardware of
    spamming the USB bus at 6MHz for the entire session, even after
    Linux had booted, rendering the USB interface not operational.
    The chances were about 50:50 per boot you would have broken USB.
    
    This patch removes the I2C action from the time critical path
    and instead takes care to track it only if we are spinning
    waiting for enumeration because we have a bad battery level.
    The I2C transaction then takes place out of any time critical
    code.
    
    Enumeration is lost anyway as soon as we enter Linux where the
    device is enumerated fresh and the Linux pcf50633 driver will
    handle it.
    
    One of the results of Insane Spam Mode on USB is not being able
    to enumerate properly with host PC over USB.  And that leads
    directly to not being able to charge the device for the whole
    session.
    
    Signed-off-by: Andy Green <andy at openmoko.com>





More information about the commitlog mailing list