• Vladimir Oltean's avatar
    net: mscc: ocelot: don't keep PTP configuration of all ports in single structure · 45d0fcb5
    Vladimir Oltean authored
    In a future change, the driver will need to determine whether PTP RX
    timestamping is enabled on a port (including whether traps were set up
    on that port in particular) and that is currently not possible.
    
    The driver supports different RX filters (L2, L4) and kinds of TX
    timestamping (one-step, two-step) on its ports, but it saves all
    configuration in a single struct hwtstamp_config that is global to the
    switch. So, the latest timestamping configuration on one port
    (including a request to disable timestamping) affects what gets reported
    for all ports, even though the configuration itself is still individual
    to each port.
    
    The port timestamping configurations are only coupled because of the
    common structure, so replace the hwtstamp_config with a mask of trapped
    protocols saved per port. We also have the ptp_cmd to distinguish
    between one-step and two-step PTP timestamping, so with those 2 bits of
    information we can fully reconstruct a descriptive struct
    hwtstamp_config for each port, during the SIOCGHWTSTAMP ioctl.
    
    Fixes: 4e3b0468 ("net: mscc: PTP Hardware Clock (PHC) support")
    Fixes: 96ca08c0 ("net: mscc: ocelot: set up traps for PTP packets")
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
    45d0fcb5
ocelot.h 36 KB