]> git.baikalelectronics.ru Git - kernel.git/commit
net/mlx5: Fix a bug of using ptp channel index as pin index
authorEran Ben Elisha <eranbe@mellanox.com>
Wed, 8 Jul 2020 15:53:19 +0000 (18:53 +0300)
committerSaeed Mahameed <saeedm@mellanox.com>
Tue, 28 Jul 2020 19:55:40 +0000 (12:55 -0700)
commitc4cef7dd7906f14042945ad76a14554d183cbe97
treec1a2f654208e474ee42419e5610de88199f84f7d
parent52d3add085063ecaf3ce42975fcb4c7289d4b77a
net/mlx5: Fix a bug of using ptp channel index as pin index

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: 3ed75c997623 ("ptp: Avoid deadlocks in the programmable pin code.")
Fixes: 4c61226fbab1 ("net/mlx5e: Implement 1PPS support")
Signed-off-by: Eran Ben Elisha <eranbe@mellanox.com>
Reviewed-by: Ariel Levkovich <lariel@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c