Skip to content

Commit c6b2424

Browse files
fujitaNipaLocal
authored andcommitted
net: phy: qt2025: Wait until PHY becomes ready
Wait until a PHY becomes ready in the probe callback by using read_poll_timeout function. Reviewed-by: Andrew Lunn <[email protected]> Reviewed-by: Alice Ryhl <[email protected]> Reviewed-by: Gary Guo <[email protected]> Signed-off-by: FUJITA Tomonori <[email protected]> Signed-off-by: NipaLocal <nipa@local>
1 parent adfa082 commit c6b2424

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

drivers/net/phy/qt2025.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,15 @@
1212
use kernel::c_str;
1313
use kernel::error::code;
1414
use kernel::firmware::Firmware;
15+
use kernel::io::poll::read_poll_timeout;
1516
use kernel::net::phy::{
1617
self,
1718
reg::{Mmd, C45},
1819
Driver,
1920
};
2021
use kernel::prelude::*;
2122
use kernel::sizes::{SZ_16K, SZ_8K};
23+
use kernel::time::Delta;
2224

2325
kernel::module_phy_driver! {
2426
drivers: [PhyQT2025],
@@ -93,7 +95,13 @@ impl Driver for PhyQT2025 {
9395
// The micro-controller will start running from SRAM.
9496
dev.write(C45::new(Mmd::PCS, 0xe854), 0x0040)?;
9597

96-
// TODO: sleep here until the hw becomes ready.
98+
read_poll_timeout(
99+
|| dev.read(C45::new(Mmd::PCS, 0xd7fd)),
100+
|val| *val != 0x00 && *val != 0x10,
101+
Delta::from_millis(50),
102+
Delta::from_secs(3),
103+
)?;
104+
97105
Ok(())
98106
}
99107

0 commit comments

Comments
 (0)