• Andrew Lunn's avatar
    net: dsa: mv88e6xxx: Poll when no interrupt defined · 294d711e
    Andrew Lunn authored
    Not all boards have the interrupt output from the switch connected to
    a GPIO line. In such cases, phylib has to poll the internal PHYs,
    rather than receive an interrupt when there is a change in the link
    state. phylib polls once per second, and per PHY reads around 4
    words. With a switch typically having 4 internal PHYs, this means 16
    MDIO transactions per second.
    
    Rather than performing this phylib level polling, have the driver poll
    the interrupt status register. If the status register indicates an
    interrupt condition processing of interrupts in the same way as if a
    GPIO was used.
    
    Polling 10 times a second places less load on the MDIO bus. But rather
    than taking on average 0.5s to detect a link change, it takes less
    than 0.05s. Additionally, other interrupts, such as the watchdog, ATU
    and VTU violations will be reported.
    Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    294d711e
chip.c 118 KB