diff --git a/src/crates.md b/src/crates.md index c950131..b7d68c7 100644 --- a/src/crates.md +++ b/src/crates.md @@ -2,17 +2,17 @@ | Crate | Layer | What it does | Docs | |------------------------------------------------------------------------|----------------------|---------------------------------------------------------------------------------------|------------------------------------------------------| -| [display-types](https://github.com/DracoWhitefire/display-types) | Shared types | Display capability vocabulary shared across the stack | [docs.rs](https://docs.rs/display-types) | -| [piaf](https://github.com/DracoWhitefire/piaf) | Parsing | EDID and DisplayID parser | [docs.rs](https://docs.rs/piaf) | -| [concordance](https://github.com/DracoWhitefire/concordance) | Negotiation | HDMI 2.1 mode negotiation with a full reasoning trace | [docs.rs](https://docs.rs/concordance) | -| [cartouche](https://github.com/DracoWhitefire/cartouche) | Signaling | InfoFrame encoding and decoding (AVI, Audio, HDR Static, HDMI Forum VSI, Dynamic HDR) | [docs.rs](https://docs.rs/cartouche) | -| [culvert](https://github.com/DracoWhitefire/culvert) | Signaling | Typed SCDC register access | [docs.rs](https://docs.rs/culvert) | -| [culvert-async](https://github.com/DracoWhitefire/culvert-async) | Signaling | Async companion to culvert | [docs.rs](https://docs.rs/culvert-async) | -| [plumbob](https://github.com/DracoWhitefire/plumbob) | Driver-adjacent | FRL link training state machine | [docs.rs](https://docs.rs/plumbob) | -| [plumbob-async](https://github.com/DracoWhitefire/plumbob-async) | Driver-adjacent | Async companion to plumbob | [docs.rs](https://docs.rs/plumbob-async) | -| [hdmi-hal](https://github.com/DracoWhitefire/hdmi-hal) | Hardware abstraction | `ScdcTransport` and `HdmiPhy` traits | [docs.rs](https://docs.rs/hdmi-hal) | -| [hdmi-hal-async](https://github.com/DracoWhitefire/hdmi-hal-async) | Hardware abstraction | Async companion to hdmi-hal | [docs.rs](https://docs.rs/hdmi-hal-async) | -| [hdmi-hal-i2c-dev](https://github.com/DracoWhitefire/hdmi-hal-i2c-dev) | Hardware abstraction | Linux userspace backend over `/dev/i2c-N`, for development and validation | [docs.rs](https://docs.rs/hdmi-hal-i2c-dev) | +| [display-types](https://github.com/ashlar-display/display-types) | Shared types | Display capability vocabulary shared across the stack | [docs.rs](https://docs.rs/display-types) | +| [piaf](https://github.com/ashlar-display/piaf) | Parsing | EDID and DisplayID parser | [docs.rs](https://docs.rs/piaf) | +| [concordance](https://github.com/ashlar-display/concordance) | Negotiation | HDMI 2.1 mode negotiation with a full reasoning trace | [docs.rs](https://docs.rs/concordance) | +| [cartouche](https://github.com/ashlar-display/cartouche) | Signaling | InfoFrame encoding and decoding (AVI, Audio, HDR Static, HDMI Forum VSI, Dynamic HDR) | [docs.rs](https://docs.rs/cartouche) | +| [culvert](https://github.com/ashlar-display/culvert) | Signaling | Typed SCDC register access | [docs.rs](https://docs.rs/culvert) | +| [culvert-async](https://github.com/ashlar-display/culvert-async) | Signaling | Async companion to culvert | [docs.rs](https://docs.rs/culvert-async) | +| [plumbob](https://github.com/ashlar-display/plumbob) | Driver-adjacent | FRL link training state machine | [docs.rs](https://docs.rs/plumbob) | +| [plumbob-async](https://github.com/ashlar-display/plumbob-async) | Driver-adjacent | Async companion to plumbob | [docs.rs](https://docs.rs/plumbob-async) | +| [hdmi-hal](https://github.com/ashlar-display/hdmi-hal) | Hardware abstraction | `ScdcTransport` and `HdmiPhy` traits | [docs.rs](https://docs.rs/hdmi-hal) | +| [hdmi-hal-async](https://github.com/ashlar-display/hdmi-hal-async) | Hardware abstraction | Async companion to hdmi-hal | [docs.rs](https://docs.rs/hdmi-hal-async) | +| [hdmi-hal-i2c-dev](https://github.com/ashlar-display/hdmi-hal-i2c-dev) | Hardware abstraction | Linux userspace backend over `/dev/i2c-N`, for development and validation | [docs.rs](https://docs.rs/hdmi-hal-i2c-dev) | | [ashlar](https://github.com/ashlar-display/ashlar) | — | Facade: one feature per crate above, re-exported under its own name | [docs.rs](https://docs.rs/ashlar) | Current versions are on [crates.io](https://crates.io/keywords/ashlar); each crate's diff --git a/src/stack.md b/src/stack.md index 436f4ec..e5b30b0 100644 --- a/src/stack.md +++ b/src/stack.md @@ -38,28 +38,28 @@ a reasoning trace explaining why. ## End-to-End Data Flow ```mermaid flowchart TD -A[Raw EDID bytes] --> B["piaf \nParse EDID / DisplayID"] +A[Raw EDID bytes] --> B["piaf
Parse EDID / DisplayID"] B --> C[piaf::DisplayCapabilities] -C --> C2["Integration Layer\nConvert to SinkCapabilities"] -C2 --> D["concordance \nNegotiation Layer"] +C --> C2["Integration Layer
Convert to SinkCapabilities"] +C2 --> D["concordance
Negotiation Layer"] - E["SourceCapabilities\ncaller-supplied"] --> D - F["CableCapabilities\ncaller-supplied"] --> D + E["SourceCapabilities
caller-supplied"] --> D + F["CableCapabilities
caller-supplied"] --> D D --> G[Iterator of NegotiatedConfig] - G --> H["Select Configuration\n(policy / caller)"] + G --> H["Select Configuration
(policy / caller)"] - H --> I["culvert \nSCDC register access"] - I --> I2["plumbob \nFRL state machine"] + H --> I["culvert
SCDC register access"] + I --> I2["plumbob
FRL state machine"] I2 --> J{Training Outcome} J -->|Success| K[Achieved FRL Rate] J -->|Fallback Required| D - K --> L["cartouche \nInfoFrame Encoding"] + K --> L["cartouche
InfoFrame Encoding"] H --> L L --> M[Encoded HDMI Packets] - H -.-> LV["cartouche-validate (planned)\nValidate against NegotiatedConfig"] + H -.-> LV["cartouche-validate (planned)
Validate against NegotiatedConfig"] L -.-> LV M --> N["DRM/KMS Integration (planned)"]