• Robert Hancock's avatar
    net: phy: micrel: Move KSZ9477 errata fixes to PHY driver · 26dd2974
    Robert Hancock authored
    The ksz9477 DSA switch driver is currently updating some MMD registers
    on the internal port PHYs to address some chip errata. However, these
    errata are really a property of the PHY itself, not the switch they are
    part of, so this is kind of a layering violation. It makes more sense for
    these writes to be done inside the driver which binds to the PHY and not
    the driver for the containing device.
    
    This also addresses some issues where the ordering of when these writes
    are done may have been incorrect, causing the link to erratically fail to
    come up at the proper speed or at all. Doing this in the PHY driver
    during config_init ensures that they happen before anything else tries to
    change the state of the PHY on the port.
    
    The new code also ensures that autonegotiation is disabled during the
    register writes and re-enabled afterwards, as indicated by the latest
    version of the errata documentation from Microchip.
    Signed-off-by: default avatarRobert Hancock <robert.hancock@calian.com>
    Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Reviewed-by: default avatarFlorian Fainelli <florian.fainelli@broadcom.com>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    26dd2974
micrel.c 132 KB