Fix one byte UART transmissions for lowrisc (maybe) #1817
Merged
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.
Pull Request Overview
This pull request attempts to fix #1736. The issue is that the lowrisc UART TX driver can call a callback directly after a request is made, but for Tock's concurrency model that callback must be issued in response to an interrupt being handled so that the original caller can complete before the callback executes.
This change forces a TX interrupt to always happen, and only issues the callback in the handle_interrupt call if all bytes have been transmitted.
Testing Strategy
This is where I need help. I don't have an open titan setup, so this PR needs to be tested.
TODO or Help Wanted
Help with someone checking if this is a valid fix.
Documentation Updated
/docs
, or no updates are required.Formatting
make formatall
.