## What to build 将当前通过 active_dev_id 交换整套全局协议状态的模型改为真正的 per-device 所有权。 每个 SleDev 应拥有自己的 Controller Backend Adapter、DLI Host、连接、安全、链路 channel、PHY、事件序列与 workers。注册表只负责索引设备,不通过切换全局状态模拟多控制器。 ## Acceptance criteria - [ ] 两个控制器可以并行广播、扫描、建链或传输,互不切换全局 active state。 - [ ] 所有控制器事件按 source controller id 路由;非 active 设备事件不会被丢弃,也不会污染另一设备状态。 - [ ] per-fd affinity 只选择目标设备,不触发保存和恢复整套全局状态。 - [ ] RPA、DLI pending、事件序列、安全、channel 与 PHY actual state 均为 per-device。 - [ ] Controller Backend、Transport、RX parser 和 queue 都由对应 SleDev 拥有,不使用 USB 或 serdev 全局 ring。 - [ ] 热拔插只取消对应设备的事务与 workers,并向该设备订阅者报告终止。 - [ ] 并发测试覆盖双控制器、交错完成事件与单侧热拔插。 ## Blocked by - https://github.com/OpenSparklink/linux/issues/1 - https://github.com/OpenSparklink/linux/issues/3
What to build
将当前通过 active_dev_id 交换整套全局协议状态的模型改为真正的 per-device 所有权。
每个 SleDev 应拥有自己的 Controller Backend Adapter、DLI Host、连接、安全、链路 channel、PHY、事件序列与 workers。注册表只负责索引设备,不通过切换全局状态模拟多控制器。
Acceptance criteria
Blocked by