diff --git a/repos/os/src/drivers/platform/spec/rpi/mbox.h b/repos/os/src/drivers/platform/spec/rpi/mbox.h index 7b7c534b5d..71911c41d4 100644 --- a/repos/os/src/drivers/platform/spec/rpi/mbox.h +++ b/repos/os/src/drivers/platform/spec/rpi/mbox.h @@ -99,7 +99,9 @@ class Mbox : Genode::Attached_mmio while (!read()) read(); - if (!wait_for(0, _delayer, 500, 1)) { + try { wait_for(Attempts(500), Microseconds(1), _delayer, + Status::Wr_full::Equal(0)); } + catch (Polling_timeout) { Genode::error("Mbox: timeout waiting for ready-to-write"); return; } @@ -110,7 +112,9 @@ class Mbox : Genode::Attached_mmio Write::Cache_policy::set(value, MESSAGE::cache_policy()); write(value); - if (!wait_for(0, _delayer, 500, 1)) { + try { wait_for(Attempts(500), Microseconds(1), _delayer, + Status::Rd_empty::Equal(0)); } + catch (Polling_timeout) { Genode::error("Mbox: timeout waiting for response"); return; }