From 32e48bd044957af51f5dbee153d06215abe6d436 Mon Sep 17 00:00:00 2001 From: rdon Date: Mon, 22 Jun 2026 09:48:58 +0900 Subject: [PATCH] machine/rp2: clear USB buffer status before endpoint handlers --- src/machine/machine_rp2040_usb.go | 2 +- src/machine/machine_rp2350_usb.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/machine/machine_rp2040_usb.go b/src/machine/machine_rp2040_usb.go index 538cb0176f..efa6440428 100644 --- a/src/machine/machine_rp2040_usb.go +++ b/src/machine/machine_rp2040_usb.go @@ -90,6 +90,7 @@ func handleUSBIRQ(intr interrupt.Interrupt) { } s2 := rp.USBCTRL_REGS.BUFF_STATUS.Get() + rp.USBCTRL_REGS.BUFF_STATUS.Set(s2) // OUT (PC -> rp2040) for i := 0; i < 16; i++ { @@ -110,7 +111,6 @@ func handleUSBIRQ(intr interrupt.Interrupt) { } } - rp.USBCTRL_REGS.BUFF_STATUS.Set(s2) } // Bus is reset diff --git a/src/machine/machine_rp2350_usb.go b/src/machine/machine_rp2350_usb.go index c98327bf13..ca565738a5 100644 --- a/src/machine/machine_rp2350_usb.go +++ b/src/machine/machine_rp2350_usb.go @@ -93,6 +93,7 @@ func handleUSBIRQ(intr interrupt.Interrupt) { } s2 := rp.USB.BUFF_STATUS.Get() + rp.USB.BUFF_STATUS.Set(s2) // OUT (PC -> rp2350) for i := 0; i < 16; i++ { @@ -113,7 +114,6 @@ func handleUSBIRQ(intr interrupt.Interrupt) { } } - rp.USB.BUFF_STATUS.Set(s2) } // Bus is reset