--- zzzz-none-000/linux-4.4.271/drivers/usb/host/ehci-platform.c 2021-06-03 06:22:09.000000000 +0000 +++ hawkeye-5590-750/linux-4.4.271/drivers/usb/host/ehci-platform.c 2023-04-19 10:22:30.000000000 +0000 @@ -51,6 +51,14 @@ static const char hcd_name[] = "ehci-platform"; +static void ehci_platform_reset_notifier(struct usb_hcd *hcd) +{ + struct platform_device *pdev = to_platform_device(hcd->self.controller); + struct usb_ehci_pdata *pdata = pdev->dev.platform_data; + + pdata->reset_notifier(pdev); +} + static int ehci_platform_reset(struct usb_hcd *hcd) { struct platform_device *pdev = to_platform_device(hcd->self.controller); @@ -254,6 +262,15 @@ hcd->has_tt = 1; if (pdata->reset_on_resume) priv->reset_on_resume = true; + if (pdata->ignore_oc) + ehci->ignore_oc = 1; + if (pdata->qca_force_host_mode) + ehci->qca_force_host_mode = 1; + if (pdata->qca_force_16bit_ptw) + ehci->qca_force_16bit_ptw = 1; + + if (pdata->reset_notifier) + ehci->reset_notifier = ehci_platform_reset_notifier; #ifndef CONFIG_USB_EHCI_BIG_ENDIAN_MMIO if (ehci->big_endian_mmio) {