diff --git a/server/src/bin/lesavka-uvc.rs b/server/src/bin/lesavka-uvc.rs index 5258e6d..0605f0f 100644 --- a/server/src/bin/lesavka-uvc.rs +++ b/server/src/bin/lesavka-uvc.rs @@ -384,9 +384,6 @@ 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={}", @@ -525,7 +522,8 @@ fn handle_data( ); } } - // No extra response required; ep0 data stage completion ends the control transfer. + // ACK the OUT transfer after we've processed the payload. + let _ = send_response(fd, uvc_send_response, &[]); } }