mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-09-04 18:30:18 +00:00
DM USB: xHCI: remove the waiting 5 seconds wa for s3
This workaround will delay the UOS resuming for 5 seconds, this behavior is not right and should be replaced by dynamic style. Tracked-On: #1893 Signed-off-by: Xiaoguang Wu <xiaoguang.wu@intel.com> Reviewed-by: Liang Yang <liang3.yang@intel.com> Acked-by: Yu Wang <yu1.wang@intel.com>
This commit is contained in:
@@ -66,8 +66,6 @@
|
|||||||
#include "vmcfg.h"
|
#include "vmcfg.h"
|
||||||
#include "tpm.h"
|
#include "tpm.h"
|
||||||
#include "virtio.h"
|
#include "virtio.h"
|
||||||
#include "usb.h"
|
|
||||||
#include "xhci.h"
|
|
||||||
|
|
||||||
#define GUEST_NIO_PORT 0x488 /* guest upcalls via i/o port */
|
#define GUEST_NIO_PORT 0x488 /* guest upcalls via i/o port */
|
||||||
|
|
||||||
@@ -648,7 +646,6 @@ vm_suspend_resume(struct vmctx *ctx)
|
|||||||
|
|
||||||
vm_stop_watchdog(ctx);
|
vm_stop_watchdog(ctx);
|
||||||
wait_for_resume(ctx);
|
wait_for_resume(ctx);
|
||||||
wait_for_xhci_resume();
|
|
||||||
|
|
||||||
pm_backto_wakeup(ctx);
|
pm_backto_wakeup(ctx);
|
||||||
vm_reset_watchdog(ctx);
|
vm_reset_watchdog(ctx);
|
||||||
|
@@ -486,24 +486,6 @@ static struct pci_xhci_option_elem xhci_option_table[] = {
|
|||||||
{"cap", pci_xhci_parse_extcap}
|
{"cap", pci_xhci_parse_extcap}
|
||||||
};
|
};
|
||||||
|
|
||||||
void
|
|
||||||
wait_for_xhci_resume()
|
|
||||||
{
|
|
||||||
/* The reason of waiting for resuming is USB virtualization
|
|
||||||
* needs do TWO PASS SEQUENTIAL enumerations: one for SOS and
|
|
||||||
* the other for UOS after SOS USB resuming work is completely
|
|
||||||
* done. So, theoretically, virtual USB resuming MUST use more
|
|
||||||
* time than its native counterpart.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* FIXME: will substitute it by dynamic way. The thought is
|
|
||||||
* waiting time is calculated by the number of USB devices
|
|
||||||
* attached. More devices, more waiting time, no device no
|
|
||||||
* waiting.
|
|
||||||
*/
|
|
||||||
sleep(5);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
pci_xhci_get_free_vport(struct pci_xhci_vdev *xdev,
|
pci_xhci_get_free_vport(struct pci_xhci_vdev *xdev,
|
||||||
struct usb_native_devinfo *di)
|
struct usb_native_devinfo *di)
|
||||||
|
@@ -377,6 +377,4 @@ struct xhci_event_ring_seg {
|
|||||||
volatile uint32_t dwEvrsReserved;
|
volatile uint32_t dwEvrsReserved;
|
||||||
};
|
};
|
||||||
|
|
||||||
void wait_for_xhci_resume();
|
|
||||||
|
|
||||||
#endif /* _XHCI_H_ */
|
#endif /* _XHCI_H_ */
|
||||||
|
Reference in New Issue
Block a user