coreboot-kgpe-d16/payloads/libpayload/drivers
Steven A. Falco 4c514aedd8 port_enable and port_reset must change atomically.
I have observed two separate EHCI host bridges that do not tolerate
using C bit-fields to directly manipulate the portsc_t register.  The
reason for this is that the EHCI spec says that port_enable must go
to 0 at the time that port_reset goes to 1.  Naturally this cannot be
done using direct bit-field manipulation.  Instead, we use a temporary
variable, change the bit-fields there, then atomically write the new
value back to the hardware.

Signed-off-by: Steven A. Falco <sfalco@coincident.com>
Change-Id: If138faee43e0293efa203b86f7893fdf1e811269
Reviewed-on: http://review.coreboot.org/101
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
2011-07-17 10:22:23 +02:00
..
usb port_enable and port_reset must change atomically. 2011-07-17 10:22:23 +02:00
video libpayload: fix garbage on screen with Geode-LX VGA 2010-08-18 21:23:27 +00:00
Makefile.inc Use coreboot build system for libpayload, too. 2011-06-30 20:40:10 +02:00
hid.c make keyboard reset driver generic (not pc keyboard driver dependent) 2010-03-25 18:52:24 +00:00
keyboard.c Reduce warnings/errors in libpayload when using picky compiler options 2011-06-30 20:41:23 +02:00
nvram.c Since some people disapprove of white space cleanups mixed in regular commits 2010-04-27 06:56:47 +00:00
options.c libpayload: Add function to fix CMOS checksum. 2010-08-17 10:14:50 +00:00
pci.c [PATCH] libpayload: Fix the PCI search function 2008-10-20 16:52:06 +00:00
serial.c Reduce warnings/errors in libpayload when using picky compiler options 2011-06-30 20:41:23 +02:00
speaker.c Move curses/speaker.c to drivers/ as it's not curses-specific (trivial). 2008-04-15 17:24:08 +00:00