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)
