On Fri, Jun 28, 2024 at 8:33 PM Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > > While the wakeup_capable and wakeup_armed bitflags are defined in > linux/usb/gadget.h, it doesn't look like any of the UDC drivers > implement them. So it may not be possible to see whether the UDC > supports remote wakeup (but it appears that most of them do). Ack, another thing to the UDC clean-up laundry list :) Filed https://github.com/xairy/raw-gadget/issues/73. > Checking whether the device is suspended is subject to races. The > result would not be fully reliable. I see. I assume doing a wake-up-if-suspended procedure within a single ioctl would not be race free as well? But overall, I don't view the userspace <-> Raw Gadget <-> Gadget core <-> UDC driver <-> UDC approach to be very robust in general. My understanding is that you need to be very close to the hardware to implement decent USB emulation. So perhaps, we could just add the ioctl and document it as being racy. Thank you!