Files
RedBear-OS/drivers/usb/xhcid/Cargo.toml
T
Red Bear OS 9fc1947d53 xhcid: converge xHCI quirks to canonical redox-driver-sys path
Replace xhcid's self-contained 294-line xhci/quirks.rs (7-flag bitflags
type + ~30-entry quirk table) with a thin re-export shim that delegates
to redox-driver-sys::quirks, which now carries all 51 Linux 7.1 quirk
flags and the full ~85-entry canonical controller table.

Changes:
- Cargo.toml: add redox-driver-sys path dependency
- xhci/quirks.rs: replace table with pub use XhciControllerQuirkFlags
  as XhciQuirks + delegating lookup_quirks(vendor, device, revision,
  hci_version)
- main.rs: read real HCIVERSION from MMIO offset 0x04 via
  cap.hci_ver.read() instead of hardcoded 0x100 — matches Linux 7.1
  xhci_gen_setup() at xhci.c:5455. Two table entries depend on the
  value: AMD_0x96_HOST (xhci-pci.c:308) and >= 0x120 spec rule
  (xhci-pci.c:511).
- main.rs: resolve quirks BEFORE get_int_method() so BROKEN_MSI skips
  MSI/MSI-X probing entirely (matching Linux xhci_try_enable_msi at
  xhci-pci.c:143-209). Previously the quirk only overrode the method
  label while irq_file still held the MSI handle — a mismatch causing
  silent interrupt-delivery failures on BROKEN_MSI controllers.
- get_int_method (both cfg variants): accept quirks parameter
2026-07-18 21:52:05 +09:00

43 lines
989 B
TOML

[package]
name = "xhcid"
description = "xHCI controller driver"
version = "0.1.0"
edition = "2018"
[[bin]]
name = "xhcid"
path = "src/main.rs"
[lib]
name = "xhcid_interface"
path = "src/lib.rs"
[dependencies]
bitflags.workspace = true
chashmap = "2.2.2"
crossbeam-channel = "0.4"
futures = "0.3"
plain.workspace = true
lazy_static = "1.4"
log.workspace = true
redox_event.workspace = true
redox-scheme.workspace = true
scheme-utils = { path = "../../../scheme-utils" }
redox_syscall.workspace = true
serde.workspace = true
serde_json.workspace = true
smallvec = { workspace = true, features = ["serde"] }
thiserror.workspace = true
toml.workspace = true
common = { path = "../../common" }
daemon = { path = "../../../daemon" }
pcid = { path = "../../pcid" }
libredox.workspace = true
regex = "1.10.6"
usb-core = { path = "../../../../../recipes/drivers/usb-core/source" }
redox-driver-sys = { path = "../../../../../recipes/drivers/redox-driver-sys/source" }
[lints]
workspace = true