• Vladimir Oltean's avatar
    net: mscc: ocelot: add MAC Merge layer support for VSC9959 · 6505b680
    Vladimir Oltean authored
    Felix (VSC9959) has a DEV_GMII:MM_CONFIG block composed of 2 registers
    (ENABLE_CONFIG and VERIF_CONFIG). Because the MAC Merge statistics and
    pMAC statistics are already in the Ocelot switch lib even if just Felix
    supports them, I'm adding support for the whole MAC Merge layer in the
    common Ocelot library too.
    
    There is an interrupt (shared with the PTP interrupt) which signals
    changes to the MM verification state. This is done because the
    preemptible traffic classes should be committed to hardware only once
    the verification procedure has declared the link partner of being
    capable of receiving preemptible frames.
    
    We implement ethtool getters and setters for the MAC Merge layer state.
    The "TX enabled" and "verify status" are taken from the IRQ handler,
    using a mutex to ensure serialized access.
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6505b680
felix_vsc9959.c 79.3 KB