coreboot-kgpe-d16/payloads/libpayload/drivers/usb
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
..
TODO Since some people disapprove of white space cleanups mixed in regular commits 2010-04-27 06:56:47 +00:00
ehci.c EHCI driver missing bus_address assignment. 2011-07-14 03:43:05 +02:00
ehci.h Add an EHCI driver to libpayload's USB stack. 2010-09-25 17:01:13 +00:00
ehci_private.h Add an EHCI driver to libpayload's USB stack. 2010-09-25 17:01:13 +00:00
ehci_rh.c port_enable and port_reset must change atomically. 2011-07-17 10:22:23 +02:00
ohci.c Add support for OHCI controllers and prelimiary support for xHCI (USB3) controllers. 2010-08-13 09:18:58 +00:00
ohci.h Add support for OHCI controllers and prelimiary support for xHCI (USB3) controllers. 2010-08-13 09:18:58 +00:00
ohci_private.h Add support for OHCI controllers and prelimiary support for xHCI (USB3) controllers. 2010-08-13 09:18:58 +00:00
ohci_rh.c Add support for OHCI controllers and prelimiary support for xHCI (USB3) controllers. 2010-08-13 09:18:58 +00:00
quirks.c Since some people disapprove of white space cleanups mixed in regular commits 2010-04-27 06:56:47 +00:00
uhci.c Reduce warnings/errors in libpayload when using picky compiler options 2011-06-30 20:41:23 +02:00
uhci.h Avoid using the name "pid_t", which is used on unixoid systems. 2010-06-07 13:58:17 +00:00
uhci_private.h Avoid using the name "pid_t", which is used on unixoid systems. 2010-06-07 13:58:17 +00:00
uhci_rh.c Avoid using the name "pid_t", which is used on unixoid systems. 2010-06-07 13:58:17 +00:00
usb.c Since some people disapprove of white space cleanups mixed in regular commits 2010-04-27 06:56:47 +00:00
usb_dev.c Fix the USB code to find the headers after they were moved. 2008-09-11 17:29:00 +00:00
usbhid.c Reduce warnings/errors in libpayload when using picky compiler options 2011-06-30 20:41:23 +02:00
usbhub.c USB updates from our internal tree 2010-03-25 22:17:36 +00:00
usbinit.c Print a warning when an unknow USB controller type is detected. 2011-07-14 08:00:30 +02:00
usbmsc.c Since some people disapprove of white space cleanups mixed in regular commits 2010-04-27 06:56:47 +00:00
xhci.c Add support for OHCI controllers and prelimiary support for xHCI (USB3) controllers. 2010-08-13 09:18:58 +00:00
xhci.h Add support for OHCI controllers and prelimiary support for xHCI (USB3) controllers. 2010-08-13 09:18:58 +00:00
xhci_private.h Add support for OHCI controllers and prelimiary support for xHCI (USB3) controllers. 2010-08-13 09:18:58 +00:00
xhci_rh.c Add support for OHCI controllers and prelimiary support for xHCI (USB3) controllers. 2010-08-13 09:18:58 +00:00