Re: [PATCH] arm: rpi: perform XHCI firmware upload only once

2021-09-17 Thread nicolas saenz julienne
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 
> ---

Reviewed-by: Nicolas Saenz Julienne 

Regards,
Nicolas



Re: [PATCH] arm: rpi: perform XHCI firmware upload only once

2021-09-17 Thread Matthias Brugger




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 


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(_notify_vl805_reset->dev_addr,





Re: [PATCH] arm: rpi: perform XHCI firmware upload only once

2021-09-17 Thread Matthias Brugger




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 


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(_notify_vl805_reset->dev_addr,