coreboot-kgpe-d16/payloads/libpayload/drivers/usb
Julius Werner 4498f6a6e5 libpayload: usbhub: Don't clear PSC unless it was set
The current USB hub code always clears the port status change after
checking it, regardless of whether it was set in the first place. Since
this check runs on every poll, it might create a race condition where
the port status changes right between the GET_PORT_STATUS and the
CLEAR_FEATURE(C_PORT_CONNECT), thus clearing the statrus change flag
before it was ever read. Let's add one extra if() to avoid that possible
headache.

Change-Id: Idd46c2199dc6c240bd9ef068fbe70cccc88bac42
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/168098
(cherry picked from commit f7f6f008f701ab3e4a4f785032d8024d676e11cb)
Signed-off-by: Isaac Christensen <isaac.christensen@se-eng.com>
Reviewed-on: http://review.coreboot.org/6617
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
2014-08-12 23:19:42 +02:00
..
ehci.c libpayload: ehci: Set explicit terminate bits in dummy_qh next pointers. 2014-08-12 22:06:55 +02:00
ehci.h libpayload: Use unsigned long for BARs in *hci_init() 2014-07-10 20:55:41 +02:00
ehci_private.h libpayload: Add USB support for non-PCI controllers 2013-11-25 23:31:52 +01:00
ehci_rh.c libpayload: Add USB support for non-PCI controllers 2013-11-25 23:31:52 +01:00
generic_hub.c libpayload: Add a generic driver for usb hubs 2013-06-13 22:17:42 +02:00
generic_hub.h libpayload: Add a generic driver for usb hubs 2013-06-13 22:17:42 +02:00
ohci.c libpayload: Make USB transfer functions return amount of bytes 2014-08-12 22:03:28 +02:00
ohci.h libpayload: Use unsigned long for BARs in *hci_init() 2014-07-10 20:55:41 +02:00
ohci_private.h libpayload: Add USB support for non-PCI controllers 2013-11-25 23:31:52 +01:00
ohci_rh.c libpayload: Rework connection state detection for OHCI 2012-11-24 08:46:34 +01:00
quirks.c libpayload: Turn the "debug" #define into the usb_debug static inline function. 2012-11-07 18:38:37 +01:00
TODO Since some people disapprove of white space cleanups mixed in regular commits 2010-04-27 06:56:47 +00:00
uhci.c libpayload: Make USB transfer functions return amount of bytes 2014-08-12 22:03:28 +02:00
uhci.h libpayload: Add USB support for non-PCI controllers 2013-11-25 23:31:52 +01:00
uhci_private.h libpayload: Remove bitfield use from UHCI data structures 2012-01-10 00:02:54 +01:00
uhci_rh.c libpayload: Turn the "debug" #define into the usb_debug static inline function. 2012-11-07 18:38:37 +01:00
usb.c libpayload: Make USB transfer functions return amount of bytes 2014-08-12 22:03:28 +02: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 libpayload: Change CONFIG_* to CONFIG_LP_* in the kconfig. 2014-08-05 18:44:08 +02:00
usbhub.c libpayload: usbhub: Don't clear PSC unless it was set 2014-08-12 23:19:42 +02:00
usbinit.c libpayload: Change CONFIG_* to CONFIG_LP_* in the kconfig. 2014-08-05 18:44:08 +02:00
usbmsc.c libpayload: Make USB transfer functions return amount of bytes 2014-08-12 22:03:28 +02:00
xhci.c libpayload: Make USB transfer functions return amount of bytes 2014-08-12 22:03:28 +02:00
xhci.h libpayload: Use unsigned long for BARs in *hci_init() 2014-07-10 20:55:41 +02:00
xhci_commands.c libpayload: Fill gaps in the xHCI driver 2013-06-13 22:21:20 +02:00
xhci_debug.c libpayload: Fill gaps in the xHCI driver 2013-06-13 22:21:20 +02:00
xhci_devconf.c libpayload: Fill gaps in the xHCI driver 2013-06-13 22:21:20 +02:00
xhci_events.c libpayload: Make USB transfer functions return amount of bytes 2014-08-12 22:03:28 +02:00
xhci_private.h libpayload: xhci: Use Event Data TRBs for transfer event generation 2014-08-11 18:26:00 +02:00
xhci_rh.c libpayload: Fill gaps in the xHCI driver 2013-06-13 22:21:20 +02:00