audk/MdeModulePkg
Laszlo Ersek c3d5d800d7 MdeModulePkg/EhciDxe: fix host controller reset condition in BindingStart
Commit 09943f5ecc ("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 09943f5ecc 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: 09943f5ecc
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>
2018-09-05 14:00:12 +02:00
..
Application MdeModulePkg UiApp: Remove a redundant function and a variable 2018-08-21 16:29:11 +08:00
Bus MdeModulePkg/EhciDxe: fix host controller reset condition in BindingStart 2018-09-05 14:00:12 +02:00
Core MdeModulePkg PeiCore: Fix VS2012 build failure 2018-09-05 13:17:10 +08:00
Include MdeModulePkg/Network: Add 32bit subnet mask support for IP4 PXE boot. 2018-09-03 08:36:55 +08:00
Library MdeModulePkg/Network: Add 32bit subnet mask support for IP4 PXE boot. 2018-09-03 08:36:55 +08:00
Logo MdeModulePkg: Clean up source files 2018-06-28 11:19:45 +08:00
Universal MdeModulePkg/Setup: Fix incorrect size used in AllocateCopyPool 2018-09-04 09:14:46 +08:00
MdeModulePkg.dec MdeModulePkg/MdeModulePkg.dec: add new settings for PCDs 2018-08-30 07:22:29 +08:00
MdeModulePkg.dsc MdeModulePkg: Remove DxeSmmPerformanceLib 2018-08-06 13:58:54 +08:00
MdeModulePkg.uni MdeModulePkg/Variable/RuntimeDxe: introduce PcdMaxVolatileVariableSize 2018-03-30 21:17:07 +02:00
MdeModulePkgExtra.uni MdeModulePkg: Clean up source files 2018-06-28 11:19:45 +08:00