drivers/net/phy/ax88796b_rust.rs
Source file repositories/reference/linux-study-clean/drivers/net/phy/ax88796b_rust.rs
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/phy/ax88796b_rust.rs- Extension
.rs- Size
- 3937 bytes
- Lines
- 134
- 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.
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
struct PhyAX88772Astruct PhyAX88772Cstruct PhyAX88796Bfunction Ok
Annotated Snippet
fn link_change_notify(dev: &mut phy::Device) {
// Reset PHY, otherwise MII_LPA will provide outdated information.
// This issue is reproducible only with some link partner PHYs.
if dev.state() == phy::DeviceState::NoLink {
let _ = dev.init_hw();
let _ = dev.start_aneg();
}
}
}
struct PhyAX88772C;
#[vtable]
impl Driver for PhyAX88772C {
const FLAGS: u32 = phy::flags::IS_INTERNAL;
const NAME: &'static CStr = c"Asix Electronics AX88772C";
const PHY_DEVICE_ID: DeviceId = DeviceId::new_with_exact_mask(0x003b1881);
fn suspend(dev: &mut phy::Device) -> Result {
dev.genphy_suspend()
}
fn resume(dev: &mut phy::Device) -> Result {
dev.genphy_resume()
}
fn soft_reset(dev: &mut phy::Device) -> Result {
asix_soft_reset(dev)
}
}
struct PhyAX88796B;
#[vtable]
impl Driver for PhyAX88796B {
const NAME: &'static CStr = c"Asix Electronics AX88796B";
const PHY_DEVICE_ID: DeviceId = DeviceId::new_with_model_mask(0x003b1841);
fn soft_reset(dev: &mut phy::Device) -> Result {
asix_soft_reset(dev)
}
}
Annotation
- Detected declarations: `struct PhyAX88772A`, `struct PhyAX88772C`, `struct PhyAX88796B`, `function Ok`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.