diff options
| author | Ben Simms <[email protected]> | 2023-07-13 19:29:09 +0100 |
|---|---|---|
| committer | Ben Simms <[email protected]> | 2023-07-13 19:29:09 +0100 |
| commit | 460cdc9e0f51979e27dbd0a8faaad2738760cdf3 (patch) | |
| tree | ca8357463187d6c31d20957e908617e498bf41a5 | |
| parent | d979841f17721c344142d36bc56f79bea50a158f (diff) | |
Check intrstatus before signalling suspended
| -rw-r--r-- | embassy-rp/src/usb.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/embassy-rp/src/usb.rs b/embassy-rp/src/usb.rs index b3f3bd927..4ab881f6e 100644 --- a/embassy-rp/src/usb.rs +++ b/embassy-rp/src/usb.rs | |||
| @@ -361,6 +361,7 @@ impl<'d, T: Instance> driver::Bus for Bus<'d, T> { | |||
| 361 | 361 | ||
| 362 | let regs = T::regs(); | 362 | let regs = T::regs(); |
| 363 | let siestatus = regs.sie_status().read(); | 363 | let siestatus = regs.sie_status().read(); |
| 364 | let intrstatus = regs.intr().read(); | ||
| 364 | 365 | ||
| 365 | if siestatus.resume() { | 366 | if siestatus.resume() { |
| 366 | regs.sie_status().write(|w| w.set_resume(true)); | 367 | regs.sie_status().write(|w| w.set_resume(true)); |
| @@ -389,7 +390,7 @@ impl<'d, T: Instance> driver::Bus for Bus<'d, T> { | |||
| 389 | return Poll::Ready(Event::Reset); | 390 | return Poll::Ready(Event::Reset); |
| 390 | } | 391 | } |
| 391 | 392 | ||
| 392 | if siestatus.suspended() { | 393 | if siestatus.suspended() && intrstatus.dev_suspend() { |
| 393 | regs.sie_status().write(|w| w.set_suspended(true)); | 394 | regs.sie_status().write(|w| w.set_suspended(true)); |
| 394 | return Poll::Ready(Event::Suspend); | 395 | return Poll::Ready(Event::Suspend); |
| 395 | } | 396 | } |
