diff options
| author | Dario Nieuwenhuis <[email protected]> | 2023-07-14 18:52:53 +0000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-07-14 18:52:53 +0000 |
| commit | 7b36fe049dbb2b7c816a80d2238c2169bbc716d0 (patch) | |
| tree | a2cc6d7f5b1f538ffd2f73c47b368e941c1eee2d | |
| parent | 4b3fda4f96cee03d15ee5c339ea3073ca928239d (diff) | |
| parent | 460cdc9e0f51979e27dbd0a8faaad2738760cdf3 (diff) | |
Merge pull request #1649 from simmsb/master
rp: 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 | } |
