On Wed, Jun 17, 2020 at 09:54:40AM +0800, liulongfang wrote: > On 2020/6/8 11:46, Longfang Liu Wrote: > > A Synopsys USB2.0 core used in Huawei Kunpeng920 SoC has a bug which > > might cause the host controller not issuing ping. > > > > Bug description: > > After indicating an Interrupt on Async Advance, the software uses the > > doorbell mechanism to delete the Next Link queue head of the last > > executed queue head. At this time, the host controller still references > > the removed queue head(the queue head is NULL). NULL reference causes > > the host controller to lose the USB device. > > > > Solution: > > After deleting the Next Link queue head, when has_synopsys_hc_bug set > > to 1,the software can write one of the valid queue head addresses to > > the ASYNCLISTADDR register to allow the host controller to get > > the valid queue head. in order to solve that problem, this patch set > > the flag for Huawei Kunpeng920 > > > > There are detailed instructions and solutions in this patch: > > commit 2f7ac6c19997 ("USB: ehci: add workaround for Synopsys HC bug") > > > > Signed-off-by: Longfang Liu <liulongfang@xxxxxxxxxx> > > --- > > > > Changes in v3: > > - updated comment message > > > > Changes in v2: > > - Added comment message > > > > drivers/usb/host/ehci-pci.c | 7 +++++++ > > 1 file changed, 7 insertions(+) > > > > diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c > > index 1a48ab1..7ff2cbd 100644 > > --- a/drivers/usb/host/ehci-pci.c > > +++ b/drivers/usb/host/ehci-pci.c > > @@ -216,6 +216,13 @@ static int ehci_pci_setup(struct usb_hcd *hcd) > > ehci_info(ehci, "applying MosChip frame-index workaround\n"); > > ehci->frame_index_bug = 1; > > break; > > + case PCI_VENDOR_ID_HUAWEI: > > + /* Synopsys HC bug */ > > + if (pdev->device == 0xa239) { > > + ehci_info(ehci, "applying Synopsys HC workaround\n"); > > + ehci->has_synopsys_hc_bug = 1; > > + } > > + break; > > } > > > > /* optional debug port, normally in the first BAR */ > > Hi ALL, > > I'd appreciate any comments on this patch > from USB related people. Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>