• Eran Ben Elisha's avatar
    net/mlx5: Fix a bug of using ptp channel index as pin index · 88c8cf92
    Eran Ben Elisha authored
    On PTP mlx5_ptp_enable(on=0) flow, driver mistakenly used channel index
    as pin index.
    
    After ptp patch marked in fixes tag was introduced, driver can freely
    call ptp_find_pin() as part of the .enable() callback.
    
    Fix driver mlx5_ptp_enable(on=0) flow to always use ptp_find_pin(). With
    that, Driver will use the correct pin index in mlx5_ptp_enable(on=0) flow.
    
    In addition, when initializing the pins, always set channel to zero. As
    all pins can be attached to all channels, let ptp_set_pinfunc() to move
    them between the channels.
    
    For stable branches, this fix to be applied only on kernels that includes
    both patches in fixes tag. Otherwise, mlx5_ptp_enable(on=0) will be stuck
    on pincfg_mux.
    
    Fixes: 62582a7e ("ptp: Avoid deadlocks in the programmable pin code.")
    Fixes: ee7f1220 ("net/mlx5e: Implement 1PPS support")
    Signed-off-by: default avatarEran Ben Elisha <eranbe@mellanox.com>
    Reviewed-by: default avatarAriel Levkovich <lariel@mellanox.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
    88c8cf92
clock.c 18.1 KB