Merge pull request #4012 from adom-inc/rp2350-adc-fix

rp/adc: fix potential race condition
This commit is contained in:
Dario Nieuwenhuis 2025-03-27 13:36:46 +00:00 committed by GitHub
commit d097ccc68c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -205,11 +205,13 @@ impl<'d> Adc<'d, Async> {
fn wait_for_ready() -> impl Future<Output = ()> {
let r = Self::regs();
r.inte().write(|w| w.set_fifo(true));
compiler_fence(Ordering::SeqCst);
poll_fn(move |cx| {
WAKER.register(cx.waker());
r.inte().write(|w| w.set_fifo(true));
compiler_fence(Ordering::SeqCst);
if r.cs().read().ready() {
return Poll::Ready(());
}