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]]
|
[[package]]
|
||||||
name = "lesavka_client"
|
name = "lesavka_client"
|
||||||
version = "0.14.40"
|
version = "0.14.41"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-stream",
|
"async-stream",
|
||||||
@ -1676,7 +1676,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lesavka_common"
|
name = "lesavka_common"
|
||||||
version = "0.14.40"
|
version = "0.14.41"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"base64",
|
"base64",
|
||||||
@ -1688,7 +1688,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lesavka_server"
|
name = "lesavka_server"
|
||||||
version = "0.14.40"
|
version = "0.14.41"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"base64",
|
"base64",
|
||||||
|
|||||||
@ -4,7 +4,7 @@ path = "src/main.rs"
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "lesavka_client"
|
name = "lesavka_client"
|
||||||
version = "0.14.40"
|
version = "0.14.41"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "lesavka_common"
|
name = "lesavka_common"
|
||||||
version = "0.14.40"
|
version = "0.14.41"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
build = "build.rs"
|
build = "build.rs"
|
||||||
|
|
||||||
|
|||||||
@ -514,14 +514,12 @@ EOF
|
|||||||
|
|
||||||
# ── 4. Video‑Control interface ─────────────────────────────────────
|
# ── 4. Video‑Control interface ─────────────────────────────────────
|
||||||
mkdir -p "$F/control/header/h"
|
mkdir -p "$F/control/header/h"
|
||||||
set +e
|
# The kernel UVC gadget docs require direct symlinks at control/class/fs and
|
||||||
for s in fs hs ss; do
|
# control/class/ss. High-speed control descriptors are not exposed here.
|
||||||
mkdir -p "$F/control/class/$s" 2>/dev/null || continue
|
pushd "$F/control" >/dev/null
|
||||||
pushd "$F/control/class/$s" >/dev/null
|
ln -s header/h class/fs 2>/dev/null || true
|
||||||
ln -s ../../header/h h 2>/dev/null || true
|
ln -s header/h class/ss 2>/dev/null || true
|
||||||
popd >/dev/null
|
popd >/dev/null
|
||||||
done
|
|
||||||
set -e
|
|
||||||
|
|
||||||
if [[ -n $UVC_DISABLE_IRQ ]]; then
|
if [[ -n $UVC_DISABLE_IRQ ]]; then
|
||||||
echo 0 >"$F/control/enable_interrupt_ep" 2>/dev/null || true
|
echo 0 >"$F/control/enable_interrupt_ep" 2>/dev/null || true
|
||||||
|
|||||||
@ -10,7 +10,7 @@ bench = false
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "lesavka_server"
|
name = "lesavka_server"
|
||||||
version = "0.14.40"
|
version = "0.14.41"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
autobins = false
|
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