opengnsys_ipxe/src
Michael Brown 8344803c93 [efi] Disconnect controllers before uninstalling EFI_USB_IO_PROTOCOL
The call to UninstallMultipleProtocolInterfaces() will implicitly
disconnect any relevant controllers, and there is no specified
requirement to explicitly call DisconnectController() prior to
callling UninstallMultipleProtocolInterfaces().

However, some UEFI implementations (observed with the USB keyboard
driver on a Microsoft Surface Go) will fail to implicitly disconnect
the controller and will consequently fail to uninstall the protocols.

The net effect is that unplugging and replugging a USB keyboard may
leave the keyboard in a non-functional state.

Work around these broken UEFI implementations by including an
unnecessary call to DisconnectController() before the call to
UninstallMultipleProtocolInterfaces().

Signed-off-by: Michael Brown <mcb30@ipxe.org>
2020-09-29 21:21:04 +01:00
..
arch [pci] Update drivers to use pci_ioremap() 2020-09-25 14:17:07 +01:00
bin Rename .cvsignore files to .gitignore 2007-06-09 22:57:00 +01:00
config [efi] Avoid setting direction flag on EFI platforms 2020-07-07 14:08:05 +01:00
core [libc] Fix memcmp() to return proper values 2020-07-21 15:29:18 +01:00
crypto [deflate] Fix typo in comment describing length codes 2020-07-21 15:59:04 +01:00
doc [build] Rename gPXE to iPXE 2010-04-19 23:43:39 +01:00
drivers [usb] Show debug message on device removal 2020-09-29 14:39:54 +01:00
hci [cmdline] Add "--timeout" parameter to "ifconf" command 2020-07-22 12:44:51 +01:00
image [efi] Work around UEFI specification bug in LoadImage 2020-06-04 22:40:35 +01:00
include [efi] Use address offset as reported by EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL 2020-09-25 14:20:18 +01:00
interface [efi] Disconnect controllers before uninstalling EFI_USB_IO_PROTOCOL 2020-09-29 21:21:04 +01:00
libgcc [libgcc] Change __divmoddi4 from int64 [unknown] to int64_t 2020-07-21 14:33:32 +01:00
net [wpa] Fix erroneous debug message in wpa_derive_ptk 2020-07-21 15:34:39 +01:00
scripts [efi] Centralise architecture-independent EFI Makefile and linker script 2016-03-12 21:47:13 +00:00
tests [libc] Fix memcmp() to return proper values 2020-07-21 15:29:18 +01:00
usr [cmdline] Add "--timeout" parameter to "ifconf" command 2020-07-22 12:44:51 +01:00
util [build] Fix default target in sdsk image 2020-07-21 14:29:12 +01:00
.gitignore [build] Add support for local configuration files 2010-03-26 19:07:22 +00:00
Makefile [bnxt] Add driver support for Broadcom NetXtreme-E Adapters 2020-05-06 15:41:45 +01:00
Makefile.efi [efi] Enable stack protection where possible 2020-06-24 16:23:21 +01:00
Makefile.housekeeping [build] Fix a GNUism that FreeBSD's sed(1) cannot deal with 2020-07-21 15:51:19 +01:00
doxygen.cfg [build] Remove PACKED macro 2010-05-29 23:49:47 +01:00