fix(sync): build valid uvc control descriptors
This commit is contained in:
parent
1462f736f4
commit
60a6cd1629
6
Cargo.lock
generated
6
Cargo.lock
generated
@ -1642,7 +1642,7 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
|
||||
|
||||
[[package]]
|
||||
name = "lesavka_client"
|
||||
version = "0.14.40"
|
||||
version = "0.14.41"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-stream",
|
||||
@ -1676,7 +1676,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "lesavka_common"
|
||||
version = "0.14.40"
|
||||
version = "0.14.41"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64",
|
||||
@ -1688,7 +1688,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "lesavka_server"
|
||||
version = "0.14.40"
|
||||
version = "0.14.41"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64",
|
||||
|
||||
@ -4,7 +4,7 @@ path = "src/main.rs"
|
||||
|
||||
[package]
|
||||
name = "lesavka_client"
|
||||
version = "0.14.40"
|
||||
version = "0.14.41"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "lesavka_common"
|
||||
version = "0.14.40"
|
||||
version = "0.14.41"
|
||||
edition = "2024"
|
||||
build = "build.rs"
|
||||
|
||||
|
||||
@ -514,14 +514,12 @@ EOF
|
||||
|
||||
# ── 4. Video‑Control interface ─────────────────────────────────────
|
||||
mkdir -p "$F/control/header/h"
|
||||
set +e
|
||||
for s in fs hs ss; do
|
||||
mkdir -p "$F/control/class/$s" 2>/dev/null || continue
|
||||
pushd "$F/control/class/$s" >/dev/null
|
||||
ln -s ../../header/h h 2>/dev/null || true
|
||||
popd >/dev/null
|
||||
done
|
||||
set -e
|
||||
# The kernel UVC gadget docs require direct symlinks at control/class/fs and
|
||||
# control/class/ss. High-speed control descriptors are not exposed here.
|
||||
pushd "$F/control" >/dev/null
|
||||
ln -s header/h class/fs 2>/dev/null || true
|
||||
ln -s header/h class/ss 2>/dev/null || true
|
||||
popd >/dev/null
|
||||
|
||||
if [[ -n $UVC_DISABLE_IRQ ]]; then
|
||||
echo 0 >"$F/control/enable_interrupt_ep" 2>/dev/null || true
|
||||
|
||||
@ -10,7 +10,7 @@ bench = false
|
||||
|
||||
[package]
|
||||
name = "lesavka_server"
|
||||
version = "0.14.40"
|
||||
version = "0.14.41"
|
||||
edition = "2024"
|
||||
autobins = false
|
||||
|
||||
|
||||
@ -38,3 +38,21 @@ fn core_script_skips_soft_connect_for_dwc2() {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn core_script_uses_kernel_doc_control_header_links() {
|
||||
for expected in [
|
||||
"pushd \"$F/control\" >/dev/null",
|
||||
"ln -s header/h class/fs",
|
||||
"ln -s header/h class/ss",
|
||||
] {
|
||||
assert!(
|
||||
CORE_SCRIPT.contains(expected),
|
||||
"lesavka-core control-header guard missing: {expected}"
|
||||
);
|
||||
}
|
||||
assert!(
|
||||
!CORE_SCRIPT.contains("mkdir -p \"$F/control/class/$s\""),
|
||||
"lesavka-core should not build the UVC control class as nested directories"
|
||||
);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user