• Yannick Vignon's avatar
    net: stmmac: fix taprio schedule configuration · b76889ff
    Yannick Vignon authored
    When configuring a 802.1Qbv schedule through the tc taprio qdisc on an NXP
    i.MX8MPlus device, the effective cycle time differed from the requested one
    by N*96ns, with N number of entries in the Qbv Gate Control List. This is
    because the driver was adding a 96ns margin to each interval of the GCL,
    apparently to account for the IPG. The problem was observed on NXP
    i.MX8MPlus devices but likely affected all devices relying on the same
    configuration callback (dwmac 4.00, 4.10, 5.10 variants).
    
    Fix the issue by removing the margins, and simply setup the MAC with the
    provided cycle time value. This is the behavior expected by the user-space
    API, as altering the Qbv schedule timings would break standards conformance.
    This is also the behavior of several other Ethernet MAC implementations
    supporting taprio, including the dwxgmac variant of stmmac.
    
    Fixes: 504723af ("net: stmmac: Add basic EST support for GMAC5+")
    Signed-off-by: default avatarYannick Vignon <yannick.vignon@nxp.com>
    Link: https://lore.kernel.org/r/20210113131557.24651-1-yannick.vignon@oss.nxp.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    b76889ff
dwmac5.c 17 KB