jerpelea opened a new pull request, #19670:
URL: https://github.com/apache/nuttx/pull/19670

   ## Summary
   
   The USB device controller drivers invoke CLASS_DISCONNECT() on every USB bus 
reset, and a bus reset is the first step of normal host enumeration.  Every 
other class driver (cdcacm, usbmsc, rndis) re-asserts DEV_CONNECT() at the end 
of its disconnect() handler so that the device remains attached; cdcecm and 
cdcncm did not, so on controllers that soft-disconnect around bus reset (e.g. 
rp2040, which drops the pull-up in its bus-reset handler) a standalone CDC-ECM 
or CDC-NCM device is left soft-disconnected by the first bus reset and never 
enumerates on the host.
   
   Mirror the cdcacm behavior and perform the soft connect in the disconnect() 
methods, unless part of a composite device (composite.c already re-connects in 
its own disconnect handler).
   
   Fixes the standalone CDC-ECM case of issue #15880.
   
   Validated on raspberrypi-pico (RP2040): with this change a standalone 
CONFIG_NET_CDCECM device that previously never appeared on the host enumerates 
via cdc_ether and pings with 0% loss.  cdcncm has the identical defect and 
receives the identical fix.
   
   ## Impact
   
   RELEASE
   
   ## Testing
   
   CI


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to