diff --git a/server/src/bin/lesavka-uvc.rs b/server/src/bin/lesavka-uvc.rs index 0605f0f..5258e6d 100644 --- a/server/src/bin/lesavka-uvc.rs +++ b/server/src/bin/lesavka-uvc.rs @@ -384,6 +384,9 @@ fn handle_setup( return; } *pending = Some(PendingRequest { interface, selector }); + let len = req.w_length as usize; + let payload = vec![0u8; len.min(UVC_DATA_SIZE)]; + let _ = send_response(fd, uvc_send_response, &payload); if debug { eprintln!( "[lesavka-uvc] SET_CUR queued len={} iface={} sel={}", @@ -522,8 +525,7 @@ fn handle_data( ); } } - // ACK the OUT transfer after we've processed the payload. - let _ = send_response(fd, uvc_send_response, &[]); + // No extra response required; ep0 data stage completion ends the control transfer. } }