Message ID | 20210917081943.13865-1-m.szyprowski@samsung.com |
---|---|
State | Accepted |
Commit | 33166054c72716e46d492a0588f00900a9684a97 |
Headers | show |
Series | arm: rpi: perform XHCI firmware upload only once | expand |
On Fri, 2021-09-17 at 10:19 +0200, Marek Szyprowski wrote: > XHCI firmware upload must be performed only once after initializing the > PCI bridge. This fixes USB stack initialization after calling "usb stop; > usb start" on Raspberry Pi 4B. > > Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> > --- Reviewed-by: Nicolas Saenz Julienne <nsaenz@kernel.org> Regards, Nicolas
On 17/09/2021 10:19, Marek Szyprowski wrote: > XHCI firmware upload must be performed only once after initializing the > PCI bridge. This fixes USB stack initialization after calling "usb stop; > usb start" on Raspberry Pi 4B. > > Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Looks good to me. I'll wait a bit more to see if Nicolas can do a review as well before queuing it. Regards, Matthias > --- > arch/arm/mach-bcm283x/msg.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/arch/arm/mach-bcm283x/msg.c b/arch/arm/mach-bcm283x/msg.c > index 347aece3cd..345f7fe2b7 100644 > --- a/arch/arm/mach-bcm283x/msg.c > +++ b/arch/arm/mach-bcm283x/msg.c > @@ -170,6 +170,12 @@ int bcm2711_notify_vl805_reset(void) > ALLOC_CACHE_ALIGN_BUFFER(struct msg_notify_vl805_reset, > msg_notify_vl805_reset, 1); > int ret; > + static int done = false; > + > + if (done) > + return 0; > + > + done = true; > > BCM2835_MBOX_INIT_HDR(msg_notify_vl805_reset); > BCM2835_MBOX_INIT_TAG(&msg_notify_vl805_reset->dev_addr, >
On 17/09/2021 10:42, Matthias Brugger wrote: > > > On 17/09/2021 10:19, Marek Szyprowski wrote: >> XHCI firmware upload must be performed only once after initializing the >> PCI bridge. This fixes USB stack initialization after calling "usb stop; >> usb start" on Raspberry Pi 4B. >> >> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> > > Looks good to me. I'll wait a bit more to see if Nicolas can do a review as well > before queuing it. > There was a race condition, I'll queque it now :) > Regards, > Matthias > >> --- >> arch/arm/mach-bcm283x/msg.c | 6 ++++++ >> 1 file changed, 6 insertions(+) >> >> diff --git a/arch/arm/mach-bcm283x/msg.c b/arch/arm/mach-bcm283x/msg.c >> index 347aece3cd..345f7fe2b7 100644 >> --- a/arch/arm/mach-bcm283x/msg.c >> +++ b/arch/arm/mach-bcm283x/msg.c >> @@ -170,6 +170,12 @@ int bcm2711_notify_vl805_reset(void) >> ALLOC_CACHE_ALIGN_BUFFER(struct msg_notify_vl805_reset, >> msg_notify_vl805_reset, 1); >> int ret; >> + static int done = false; >> + >> + if (done) >> + return 0; >> + >> + done = true; >> BCM2835_MBOX_INIT_HDR(msg_notify_vl805_reset); >> BCM2835_MBOX_INIT_TAG(&msg_notify_vl805_reset->dev_addr, >>
diff --git a/arch/arm/mach-bcm283x/msg.c b/arch/arm/mach-bcm283x/msg.c index 347aece3cd..345f7fe2b7 100644 --- a/arch/arm/mach-bcm283x/msg.c +++ b/arch/arm/mach-bcm283x/msg.c @@ -170,6 +170,12 @@ int bcm2711_notify_vl805_reset(void) ALLOC_CACHE_ALIGN_BUFFER(struct msg_notify_vl805_reset, msg_notify_vl805_reset, 1); int ret; + static int done = false; + + if (done) + return 0; + + done = true; BCM2835_MBOX_INIT_HDR(msg_notify_vl805_reset); BCM2835_MBOX_INIT_TAG(&msg_notify_vl805_reset->dev_addr,
XHCI firmware upload must be performed only once after initializing the PCI bridge. This fixes USB stack initialization after calling "usb stop; usb start" on Raspberry Pi 4B. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> --- arch/arm/mach-bcm283x/msg.c | 6 ++++++ 1 file changed, 6 insertions(+) -- 2.17.1