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

Fix SPD priority inversion #612

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from
Draft

Fix SPD priority inversion #612

wants to merge 4 commits into from

Conversation

cbiffle
Copy link
Collaborator

@cbiffle cbiffle commented Jun 16, 2022

This finishes implementing the design outlined in #599, which should in turn fix #545 and #562.

This lets the crate provide a default impl, removing some boilerplate
from clients, and also will allow I2cControl impls to have _state,_
which is critical for using one to implement an IPC server in the spd
proxy.
This will provide a channel for feeding EEPROM data into the cache,
incrementally, per the design laid out in #599.
The sequencer task now reads the EEPROMs once it's confident they're
available, and pushes the info into the SPD proxy before starting the
host. This eliminates the last blocking I2C transfer from the SPD proxy,
which should improve its liveness. It also eliminates the priority
inversion between SPD (high) and `i2c_driver` (lower).

Fixes #599.
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.

SPD proxy needs to implement a subset of TSA2004 temp sensor
1 participant