drivers/net/phy/qt2025.rs

Source file repositories/reference/linux-study-clean/drivers/net/phy/qt2025.rs

File Facts

System
Linux kernel
Corpus path
drivers/net/phy/qt2025.rs
Extension
.rs
Size
4053 bytes
Lines
111
Domain
Driver Families
Bucket
drivers/net
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

for (src_idx, val) in fw.data().iter().enumerate() {
            if src_idx == SZ_16K {
                // Start writing to the next register with no offset
                dst_offset = 0;
                dst_mmd = Mmd::PHYXS;
            }

            dev.write(C45::new(dst_mmd, 0x8000 + dst_offset), (*val).into())?;

            dst_offset += 1;
        }
        // The micro-controller will start running from SRAM.
        dev.write(C45::new(Mmd::PCS, 0xe854), 0x0040)?;

        read_poll_timeout(
            || dev.read(C45::new(Mmd::PCS, 0xd7fd)),
            |val| *val != 0x00 && *val != 0x10,
            Delta::from_millis(50),
            Delta::from_secs(3),
        )?;

        Ok(())
    }

    fn read_status(dev: &mut phy::Device) -> Result<u16> {
        dev.genphy_read_status::<C45>()
    }
}

Annotation

Implementation Notes