The macOS AppleUSBCDC driver never sends the CDC
SET_CONTROL_LINE_STATE request for this gadget, which made the U-Boot
console input-only: __acm_tx() bailed out before queueing any data.

Drop the DTR check so the console also works on hosts that never
assert DTR.

Signed-off-by: Qing Li <[email protected]>
---
 drivers/usb/gadget/f_acm.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/gadget/f_acm.c b/drivers/usb/gadget/f_acm.c
index b6c11d97a62..cf16ca83c12 100644
--- a/drivers/usb/gadget/f_acm.c
+++ b/drivers/usb/gadget/f_acm.c
@@ -493,9 +493,12 @@ static void __acm_tx(struct f_acm *f_acm)
        do {
                dm_usb_gadget_handle_interrupts(f_acm->udc);
 
-               if (!(f_acm->handshake_bits & ACM_CTRL_DTR))
-                       break;
-
+               /*
+                * Local crux bring-up patch: do not gate TX on the host
+                * having sent CDC SET_CONTROL_LINE_STATE (DTR).  The macOS
+                * AppleUSBCDC driver never delivers that request for this
+                * gadget, which made the console input-only.
+                */
                if (!f_acm->tx_on)
                        continue;
 
-- 
2.50.1 (Apple Git-155)

Reply via email to