aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2022-03-07 00:24:13 +0100
committerDario Nieuwenhuis <[email protected]>2022-03-07 00:32:31 +0100
commit88d9599a63a89a1ba2c107671945e034e16a3f30 (patch)
tree3b88926f318570f770816bacfe1d4e36365c1018
parent24b6478a7ced1e98165e4776894c439e86507763 (diff)
common/usb/serial: add some trace logging.
-rw-r--r--embassy-hal-common/src/usb/usb_serial.rs30
1 files changed, 25 insertions, 5 deletions
diff --git a/embassy-hal-common/src/usb/usb_serial.rs b/embassy-hal-common/src/usb/usb_serial.rs
index 2592d05a6..20a1840b2 100644
--- a/embassy-hal-common/src/usb/usb_serial.rs
+++ b/embassy-hal-common/src/usb/usb_serial.rs
@@ -167,6 +167,7 @@ impl<'bus, 'a, B: UsbBus> AsyncWrite for UsbSerial<'bus, 'a, B> {
167 167
168 let write_buf = this.write_buf.push_buf(); 168 let write_buf = this.write_buf.push_buf();
169 if write_buf.is_empty() { 169 if write_buf.is_empty() {
170 trace!("buf full, registering waker");
170 this.write_waker.register(cx.waker()); 171 this.write_waker.register(cx.waker());
171 return Poll::Pending; 172 return Poll::Pending;
172 } 173 }
@@ -244,10 +245,18 @@ impl<'bus, 'a, B: UsbBus> UsbSerial<'bus, 'a, B> {
244 }; 245 };
245 246
246 if !buf.is_empty() { 247 if !buf.is_empty() {
248 trace!("writing packet len {}", buf.len());
247 let count = match self.inner.write_packet(buf) { 249 let count = match self.inner.write_packet(buf) {
248 Ok(c) => c, 250 Ok(c) => {
249 Err(UsbError::WouldBlock) => 0, 251 trace!("write packet: OK {}", c);
252 c
253 }
254 Err(UsbError::WouldBlock) => {
255 trace!("write packet: WouldBlock");
256 0
257 }
250 Err(_) => { 258 Err(_) => {
259 trace!("write packet: error");
251 self.write_error = true; 260 self.write_error = true;
252 return; 261 return;
253 } 262 }
@@ -260,11 +269,20 @@ impl<'bus, 'a, B: UsbBus> UsbSerial<'bus, 'a, B> {
260 } 269 }
261 self.write_buf.pop(count); 270 self.write_buf.pop(count);
262 } else if full_size_packets > 0 { 271 } else if full_size_packets > 0 {
263 if let Err(e) = self.inner.write_packet(&[]) { 272 trace!("writing empty packet");
264 if !matches!(e, UsbError::WouldBlock) { 273 match self.inner.write_packet(&[]) {
274 Ok(_) => {
275 trace!("write empty packet: OK");
276 }
277 Err(UsbError::WouldBlock) => {
278 trace!("write empty packet: WouldBlock");
279 return;
280 }
281 Err(_) => {
282 trace!("write empty packet: Error");
265 self.write_error = true; 283 self.write_error = true;
284 return;
266 } 285 }
267 return;
268 } 286 }
269 self.write_state = WriteState::Idle; 287 self.write_state = WriteState::Idle;
270 } 288 }
@@ -287,7 +305,9 @@ where
287 } 305 }
288 306
289 fn endpoint_in_complete(&mut self, addr: EndpointAddress) { 307 fn endpoint_in_complete(&mut self, addr: EndpointAddress) {
308 trace!("DONE endpoint_in_complete");
290 if addr == self.inner.write_ep_address() { 309 if addr == self.inner.write_ep_address() {
310 trace!("DONE writing packet, waking");
291 self.write_waker.wake(); 311 self.write_waker.wake();
292 312
293 self.flush_write(); 313 self.flush_write();