]> git.baikalelectronics.ru Git - kernel.git/commit
net: aquantia: synchronized flow control between mac/phy
authorIgor Russkikh <Igor.Russkikh@aquantia.com>
Fri, 9 Nov 2018 11:53:56 +0000 (11:53 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 9 Nov 2018 23:38:10 +0000 (15:38 -0800)
commitcba7f907853b67347f1a4efb8f40f8cd2d1e24d3
tree3d822a239bb044f81212b126de34aa1824b27aeb
parent8a596f77d79b75fb59989fe709132e3621ea5f66
net: aquantia: synchronized flow control between mac/phy

Flow control statuses were not synchronized between blocks,
that caused packets/link drop on some corner cases, when
MAC sent PFC although Phy was not expecting these to come.

Driver should readout the negotiated FC from phy and
configure RX block accordigly.

This is done on each link change event with information from FW.

Fixes: 317cd2c4f9ae ("net: aquantia: Implement rx/tx flow control ethtools callback")
Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
drivers/net/ethernet/aquantia/atlantic/aq_hw.h
drivers/net/ethernet/aquantia/atlantic/aq_nic.c
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils_fw2x.c