mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-02 12:25:31 +00:00
DM USB: xHCI: fix an xHCI issue to enable UOS s3 feature
Current DM design use two variables to do the indexing of xHCI Event Ring: er_enq_idx and er_events_cnt. They are members of the struct pci_xhci_rtsregs. In UOS, during the process of xHCI resuming, the xHCI driver will restore the ERSTBA (Event Ring Segment Table Base Address) register to be the value before suspending. And at this point, the old DM implementation will set both er_enq_idx and er_events_cnt to be zero, so the DM will access the Event Ring from the start position in the buffer. But at the same time the UOS xHCI driver still wants to access the old position in the Event Ring before suspending, which will result of unexpected errors. 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:
parent
b5a233da9f
commit
b746377f45
@ -2732,9 +2732,6 @@ pci_xhci_rtsregs_write(struct pci_xhci_vdev *xdev,
|
||||
rts->erst_p = XHCI_GADDR(xdev,
|
||||
xdev->rtsregs.erstba_p->qwEvrsTablePtr & ~0x3FUL);
|
||||
|
||||
rts->er_enq_idx = 0;
|
||||
rts->er_events_cnt = 0;
|
||||
|
||||
UPRINTF(LDBG, "wr erstba erst (%p) ptr 0x%lx, sz %u\r\n",
|
||||
rts->erstba_p,
|
||||
rts->erstba_p->qwEvrsTablePtr,
|
||||
|
Loading…
Reference in New Issue
Block a user