From e99a3a1da42649bb9ad9a64508d14d6461be331d Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Mon, 28 Mar 2022 03:34:24 +0200 Subject: usb: simplify buffer handling for Control IN transfers. --- embassy-usb/src/lib.rs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'embassy-usb/src/lib.rs') diff --git a/embassy-usb/src/lib.rs b/embassy-usb/src/lib.rs index 8d2024026..9ac55db78 100644 --- a/embassy-usb/src/lib.rs +++ b/embassy-usb/src/lib.rs @@ -278,7 +278,6 @@ impl<'d, D: Driver<'d>> UsbDevice<'d, D> { _ => self.control.reject(), }, (RequestType::Class, Recipient::Interface) => { - let mut buf = [0; 128]; let handler = self .interfaces .iter_mut() @@ -286,10 +285,10 @@ impl<'d, D: Driver<'d>> UsbDevice<'d, D> { .map(|(_, h)| h); match handler { Some(handler) => { - let resp = handler.control_in(req, ControlIn::new(&mut buf)); - match resp.response { - OutResponse::Accepted => self.control.accept_in(resp.data).await, - OutResponse::Rejected => self.control.reject(), + let mut buf = [0; 128]; + match handler.control_in(req, &mut buf) { + InResponse::Accepted(len) => self.control.accept_in(&buf[..len]).await, + InResponse::Rejected => self.control.reject(), } } None => self.control.reject(), -- cgit