usb_hub: split powered state and request to prevent glitches #21
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The power state of the USB Hub ports may be changed by the
tacd
or by some other program, e.g.uhubctl
.We do not (yet) have an interface to be notified of changes to the port, so we use periodic polling instead.
Up until now we've just accepted that a
topic.set()
triggered by the periodic polling triggers a write to the port with the state it just read.This does however result in glitches when a new value is set e.g. via the API while the polling task is reading the current state, resulting in the state being reset to the previous state.
This issue is triggered by the scripts used to stress the TAC during an EMI test.
Related Pull Requests
screens/usb.rs
that would otherwise introduce conflicts. Which is why it should be merged first.