On 2021/4/9 16:31, Longfang Liu wrote: > Kunpeng920's EHCI controller does not have SBRN register. > Reading the SBRN register when the controller driver is > initialized will get 0. > > When rebooting the EHCI driver, ehci_shutdown() will be called. > if the sbrn flag is 0, ehci_shutdown() will return directly. > The sbrn flag being 0 will cause the EHCI interrupt signal to > not be turned off after reboot. this interrupt that is not closed > will cause an exception to the device sharing the interrupt. > > Therefore, the EHCI controller of Kunpeng920 needs to skip > the read operation of the SBRN register. > > Signed-off-by: Longfang Liu <liulongfang@xxxxxxxxxx> > --- > > Changes in v4: > - Modify the code implementation. > > Changes in v3: > - Fix some code style issues. > - Update struct name. > > Changes in v2: > - Fix some code style issues. > - Update function name. > > drivers/usb/host/ehci-pci.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c > index 3c3820a..237a346 100644 > --- a/drivers/usb/host/ehci-pci.c > +++ b/drivers/usb/host/ehci-pci.c > @@ -291,6 +291,9 @@ static int ehci_pci_setup(struct usb_hcd *hcd) > if (pdev->vendor == PCI_VENDOR_ID_STMICRO > && pdev->device == PCI_DEVICE_ID_STMICRO_USB_HOST) > ; /* ConneXT has no sbrn register */ > + else if (pdev->vendor == PCI_VENDOR_ID_HUAWEI > + && pdev->device == 0xa239) Sorry. There is a problem with the format, I need to resend Thanks. Longfang. > + ; /* HUAWEI Kunpeng920 USB EHCI has no sbrn register */ > else > pci_read_config_byte(pdev, 0x60, &ehci->sbrn); > >