drivers/net/phy/mscc/mscc_macsec.c
Source file repositories/reference/linux-study-clean/drivers/net/phy/mscc/mscc_macsec.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/phy/mscc/mscc_macsec.c- Extension
.c- Size
- 30339 bytes
- Lines
- 1012
- 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.
- Allocates kernel memory; connect allocation flags and lifetime to context constraints.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/phy.hdt-bindings/net/mscc-phy-vsc8531.hcrypto/aes.hnet/macsec.hmscc.hmscc_mac.hmscc_macsec.hmscc_fc_buffer.h
Detected Declarations
function Copyrightfunction vsc8584_macsec_phy_writefunction vsc8584_macsec_classificationfunction vsc8584_macsec_flow_default_actionfunction vsc8584_macsec_integrity_checksfunction vsc8584_macsec_block_initfunction vsc8584_macsec_mac_initfunction __vsc8584_macsec_initfunction vsc8584_macsec_flowfunction vsc8584_macsec_flow_enablefunction vsc8584_macsec_flow_disablefunction vsc8584_macsec_flow_context_idfunction vsc8584_macsec_derive_keyfunction vsc8584_macsec_transformationfunction vsc8584_macsec_free_flowfunction vsc8584_macsec_add_flowfunction vsc8584_macsec_default_flowsfunction vsc8584_macsec_del_flowfunction __vsc8584_macsec_add_rxsafunction __vsc8584_macsec_add_txsafunction vsc8584_macsec_dev_openfunction vsc8584_macsec_dev_stopfunction vsc8584_macsec_add_secyfunction vsc8584_macsec_del_secyfunction vsc8584_macsec_upd_secyfunction vsc8584_macsec_add_rxscfunction vsc8584_macsec_upd_rxscfunction vsc8584_macsec_del_rxscfunction list_for_each_entry_safefunction vsc8584_macsec_add_rxsafunction vsc8584_macsec_upd_rxsafunction vsc8584_macsec_del_rxsafunction vsc8584_macsec_add_txsafunction vsc8584_macsec_upd_txsafunction vsc8584_macsec_del_txsafunction vsc8584_macsec_initfunction vsc8584_handle_macsec_interruptfunction vsc8584_config_macsec_intr
Annotated Snippet
if (val == 0xffffffff) {
vsc8584_macsec_flow_disable(phydev, flow);
macsec_pn_wrapped(priv->secy, flow->tx_sa);
return;
}
}
}
void vsc8584_config_macsec_intr(struct phy_device *phydev)
{
phy_write(phydev, MSCC_EXT_PAGE_ACCESS, MSCC_PHY_PAGE_EXTENDED_2);
phy_write(phydev, MSCC_PHY_EXTENDED_INT, MSCC_PHY_EXTENDED_INT_MS_EGR);
phy_write(phydev, MSCC_EXT_PAGE_ACCESS, MSCC_PHY_PAGE_STANDARD);
vsc8584_macsec_phy_write(phydev, MACSEC_EGR, MSCC_MS_AIC_CTRL, 0xf);
vsc8584_macsec_phy_write(phydev, MACSEC_EGR, MSCC_MS_INTR_CTRL_STATUS,
MSCC_MS_INTR_CTRL_STATUS_INTR_ENABLE(MACSEC_INTR_CTRL_STATUS_ROLLOVER));
}
Annotation
- Immediate include surface: `linux/phy.h`, `dt-bindings/net/mscc-phy-vsc8531.h`, `crypto/aes.h`, `net/macsec.h`, `mscc.h`, `mscc_mac.h`, `mscc_macsec.h`, `mscc_fc_buffer.h`.
- Detected declarations: `function Copyright`, `function vsc8584_macsec_phy_write`, `function vsc8584_macsec_classification`, `function vsc8584_macsec_flow_default_action`, `function vsc8584_macsec_integrity_checks`, `function vsc8584_macsec_block_init`, `function vsc8584_macsec_mac_init`, `function __vsc8584_macsec_init`, `function vsc8584_macsec_flow`, `function vsc8584_macsec_flow_enable`.
- 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.