commit | c3d5d800d775095e0bbd0ac8862df234cdd4332d | [log] [tgz] |
---|---|---|
author | Laszlo Ersek <lersek@redhat.com> | Fri Aug 31 15:26:30 2018 +0200 |
committer | Laszlo Ersek <lersek@redhat.com> | Wed Sep 05 14:00:12 2018 +0200 |
tree | cd15ec8e18482971ceaf471802d061d32a81a4a1 | |
parent | 8a204b2aca5a137651ba0665d4ea012d6241fb15 [diff] |
MdeModulePkg/EhciDxe: fix host controller reset condition in BindingStart Commit 09943f5ecc0f ("MdeModulePkg: Skip to manage usb debug port in EDKII EHCI driver if it's used by usb debug port driver", 2012-04-28) made the host controller reset in EhcDriverBindingStart() conditional. The intent was to avoid the reset when - one of the USB ports on the host controller was a Debug Port, AND - the Debug Port was in use. This translates to the following positive condition: reset the controller only if: - no USB port on the host controller is a Debug Port, OR - the Debug Port is not in use. Commit 09943f5ecc0f failed to implement the first subcondition, and thus the result is too strict now (for resetting the host controller). Relax it to the correct condition. This issue was found by Steven Shi on QEMU. QEMU's EHCI device model does not have a Debug Port. In repeated disconnect / connect cycles, the controller is never reset in EhcDriverBindingStart(), therefore the devices on the controller are never re-enumerated after a disconnect. Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Star Zeng <star.zeng@intel.com> Cc: Steven Shi <steven.shi@intel.com> Reported-by: Steven Shi <steven.shi@intel.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1129 Fixes: 09943f5ecc0fbc0c98c511c82703a0ba3b2b5819 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Star Zeng <star.zeng@intel.com> Tested-by: Steven Shi <steven.shi@intel.com>
A modern, feature-rich, cross-platform firmware development environment for the UEFI and PI specifications from www.uefi.org.
Contributions to the EDK II open source project are covered by the TianoCore Contribution Agreement 1.1
The majority of the content in the EDK II open source project uses a BSD 2-Clause License. The EDK II open source project contains the following components that are covered by additional licenses:
The EDK II Project is composed of packages. The maintainers for each package are listed in Maintainers.txt.