Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Turn off remote wakeup in USB configuration descriptor #4517

Merged
merged 1 commit into from
Mar 31, 2021

Conversation

dhalbert
Copy link
Collaborator

@dhalbert dhalbert commented Mar 31, 2021

We had the "Remote Wakeup" bit turned on in the USB configuration descriptor we send to the host. This is problematic for two reasons:

  1. We don't handle remote wakeup; we should be calling tud_remote_wakeup() at appropriate times, per @hathach.
  2. Some chips don't fully support USB suspend/resume, notably RP2040 and STM. TinyUSB has workarounds for some but not all of these. See fix enum walkaround forever check for SE0 when pull up is disabled hathach/tinyusb#700 for some discussion. It is on TinyUSB's agenda to work on this further.

Some MicroPython folks noted problems due to Remote Wakeup being on for the RP2040, and turned it off: micropython#7085. See also raspberrypi/pico-sdk#289. We should do the same.

@hathach remarked to me in a side conversation that this is less of a problem in CircuitPython because of constant USB activity due to MSC. However, the host can still go to sleep after a while, and if MSC is disabled (e.g. for an HID appliance), then it would be more of an issue.

This may solve #4164 and #4190.

@dhalbert dhalbert requested a review from tannewt March 31, 2021 14:02
@dhalbert dhalbert added this to the 6.2.0 milestone Mar 31, 2021
Copy link
Member

@tannewt tannewt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants