Message ID | 20220518150150.1.Ie8ea0e945a9c15066237014be219eed60066d493@changeid (mailing list archive) |
---|---|
State | Accepted |
Commit | 69a1c9a9b273271f2a2674bcc117336a9bb0a4b4 |
Headers | show |
Series | usb: Probe EHCI, OHCI controllers asynchronously | expand |
On Wed, May 18, 2022 at 03:02:51PM -0700, Brian Norris wrote: > From: Dmitry Torokhov <dtor@chromium.org> > > initcall_debug shows that OHCI controllers take ~60ms to probe on > Rockchip RK3399 systems: > > probe of fe3a0000.usb returned 1 after 58941 usecs > > A few of these can add up to waste non-trivial amounts of time at boot. > > These host controllers don't provide resources to other drivers, so > this shouldn't contribute to exposing race conditions. > > Chrome OS kernels have carried this patch on some systems for a while > without issues. Similar patches have been merged for a variety of (e)MMC > host controllers for similar reasons. > > Signed-off-by: Dmitry Torokhov <dtor@chromium.org> > [Brian: rewrote commit message, refreshed, but retained dtor's original > authorship ] > Signed-off-by: Brian Norris <briannorris@chromium.org> > --- Acked-by: Alan Stern <stern@rowland.harvard.edu> > drivers/usb/host/ehci-platform.c | 1 + > drivers/usb/host/ohci-platform.c | 1 + > 2 files changed, 2 insertions(+) > > diff --git a/drivers/usb/host/ehci-platform.c b/drivers/usb/host/ehci-platform.c > index 1115431a255d..f343967443e2 100644 > --- a/drivers/usb/host/ehci-platform.c > +++ b/drivers/usb/host/ehci-platform.c > @@ -518,6 +518,7 @@ static struct platform_driver ehci_platform_driver = { > .pm = pm_ptr(&ehci_platform_pm_ops), > .of_match_table = vt8500_ehci_ids, > .acpi_match_table = ACPI_PTR(ehci_acpi_match), > + .probe_type = PROBE_PREFER_ASYNCHRONOUS, > } > }; > > diff --git a/drivers/usb/host/ohci-platform.c b/drivers/usb/host/ohci-platform.c > index 4a8456f12a73..47dfbfe9e519 100644 > --- a/drivers/usb/host/ohci-platform.c > +++ b/drivers/usb/host/ohci-platform.c > @@ -334,6 +334,7 @@ static struct platform_driver ohci_platform_driver = { > .name = "ohci-platform", > .pm = &ohci_platform_pm_ops, > .of_match_table = ohci_platform_ids, > + .probe_type = PROBE_PREFER_ASYNCHRONOUS, > } > }; > > -- > 2.36.1.124.g0e6072fb45-goog >
Hi, On Wed, May 18, 2022 at 3:04 PM Brian Norris <briannorris@chromium.org> wrote: > > From: Dmitry Torokhov <dtor@chromium.org> > > initcall_debug shows that OHCI controllers take ~60ms to probe on > Rockchip RK3399 systems: > > probe of fe3a0000.usb returned 1 after 58941 usecs > > A few of these can add up to waste non-trivial amounts of time at boot. > > These host controllers don't provide resources to other drivers, so > this shouldn't contribute to exposing race conditions. > > Chrome OS kernels have carried this patch on some systems for a while > without issues. Similar patches have been merged for a variety of (e)MMC > host controllers for similar reasons. > > Signed-off-by: Dmitry Torokhov <dtor@chromium.org> > [Brian: rewrote commit message, refreshed, but retained dtor's original > authorship ] > Signed-off-by: Brian Norris <briannorris@chromium.org> > --- > > drivers/usb/host/ehci-platform.c | 1 + > drivers/usb/host/ohci-platform.c | 1 + > 2 files changed, 2 insertions(+) Reviewed-by: Douglas Anderson <dianders@chromium.org>
diff --git a/drivers/usb/host/ehci-platform.c b/drivers/usb/host/ehci-platform.c index 1115431a255d..f343967443e2 100644 --- a/drivers/usb/host/ehci-platform.c +++ b/drivers/usb/host/ehci-platform.c @@ -518,6 +518,7 @@ static struct platform_driver ehci_platform_driver = { .pm = pm_ptr(&ehci_platform_pm_ops), .of_match_table = vt8500_ehci_ids, .acpi_match_table = ACPI_PTR(ehci_acpi_match), + .probe_type = PROBE_PREFER_ASYNCHRONOUS, } }; diff --git a/drivers/usb/host/ohci-platform.c b/drivers/usb/host/ohci-platform.c index 4a8456f12a73..47dfbfe9e519 100644 --- a/drivers/usb/host/ohci-platform.c +++ b/drivers/usb/host/ohci-platform.c @@ -334,6 +334,7 @@ static struct platform_driver ohci_platform_driver = { .name = "ohci-platform", .pm = &ohci_platform_pm_ops, .of_match_table = ohci_platform_ids, + .probe_type = PROBE_PREFER_ASYNCHRONOUS, } };