Yonglong Liu
bc3781edce
net: hns3: add Asym Pause support to fix autoneg problem
...
Local device and link partner config auto-negotiation on both,
local device config pause frame use as: rx on/tx off,
link partner config pause frame use as: rx off/tx on.
We except the result is:
Local device:
Autonegotiate: on
RX: on
TX: off
RX negotiated: on
TX negotiated: off
Link partner:
Autonegotiate: on
RX: off
TX: on
RX negotiated: off
TX negotiated: on
But actually, the result of Local device and link partner is both:
Autonegotiate: on
RX: off
TX: off
RX negotiated: off
TX negotiated: off
The root cause is that the supported flag is has only Pause,
reference to the function genphy_config_advert():
static int genphy_config_advert(struct phy_device *phydev)
{
...
linkmode_and(phydev->advertising, phydev->advertising,
phydev->supported);
...
}
The pause frame use of link partner is rx off/tx on, so its
advertising only set the bit Asym_Pause, and the supported is
only set the bit Pause, so the result of linkmode_and(), is
rx off/tx off.
This patch adds Asym_Pause to the supported flag to fix it.
Signed-off-by: Yonglong Liu <liuyonglong@huawei.com >
Signed-off-by: Peng Li <lipeng321@huawei.com >
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com >
Signed-off-by: David S. Miller <davem@davemloft.net >
2019-06-28 09:39:49 -07:00
..
2019-05-24 17:36:47 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-13 10:35:55 +02:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:26:41 -07:00
2019-06-20 15:06:24 +02:00
2019-06-13 17:34:56 -10:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:06 +02:00
2019-06-21 09:58:42 -07:00
2019-05-21 11:28:39 +02:00
2019-06-19 17:11:22 +02:00
2019-06-28 08:50:09 +08:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:26:35 -07:00
2019-06-17 22:28:29 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-13 17:34:56 -10:00
2019-05-24 17:27:11 +02:00
2019-06-19 17:09:55 +02:00
2019-05-21 10:50:46 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:07 +02:00
2019-06-05 17:37:17 +02:00
2019-05-30 11:29:53 -07:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:26:35 -07:00
2019-06-21 09:58:42 -07:00
2019-05-24 17:36:45 +02:00
2019-06-08 12:52:42 -07:00
2019-06-19 17:09:11 +02:00
2019-05-21 10:50:46 +02:00
2019-06-19 17:09:55 +02:00
2019-06-21 11:03:33 -07:00
2019-06-28 08:39:18 +08:00
2019-06-05 17:37:07 +02:00
2019-06-05 17:37:05 +02:00
2019-06-19 17:09:55 +02:00
2019-05-21 10:50:46 +02:00
2019-06-22 08:59:24 -04:00
2019-05-21 10:50:46 +02:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:06 +02:00
2019-06-21 10:20:19 -07:00
2019-06-22 08:59:24 -04:00
2019-06-21 09:58:42 -07:00
2019-05-21 10:50:46 +02:00
2019-06-22 14:08:47 -07:00
2019-06-05 17:37:17 +02:00
2019-06-21 09:58:42 -07:00
2019-06-07 11:00:14 -07:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:14 +02:00
2019-06-19 17:09:08 +02:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:17 +02:00
2019-06-28 08:48:21 +08:00
2019-06-22 08:59:24 -04:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-05-21 10:50:46 +02:00
2019-06-25 03:41:03 +08:00
2019-06-21 10:18:16 -07:00
2019-06-21 09:58:42 -07:00
2019-06-24 21:23:55 +08:00
2019-06-28 09:39:49 -07:00
2019-06-05 17:37:15 +02:00
2019-06-05 17:36:37 +02:00
2019-05-21 10:50:46 +02:00
2019-06-13 17:34:56 -10:00
2019-06-07 14:04:28 -06:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:16 +02:00
2019-06-19 17:09:55 +02:00
2019-06-08 12:52:42 -07:00
2019-06-19 17:09:55 +02:00
2019-06-27 21:06:39 -07:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:25:19 -07:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:04 +02:00
2019-05-24 17:36:45 +02:00
2019-05-30 11:26:39 -07:00
2019-06-15 13:43:06 -07:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:26:37 -07:00
2019-06-07 23:21:39 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-27 10:18:24 -07:00
2019-05-24 17:36:45 +02:00
2019-06-27 21:06:39 -07:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-04-25 22:23:06 +02:00
2019-05-21 10:50:46 +02:00
2019-06-21 09:58:42 -07:00
2019-06-10 18:07:39 +02:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:36:37 +02:00
2019-06-25 08:05:34 +03:00
2019-06-22 08:59:24 -04:00
2019-06-22 08:59:24 -04:00
2019-05-21 10:50:46 +02:00
2019-06-05 17:36:37 +02:00
2019-06-19 17:09:55 +02:00
2019-06-14 14:25:43 +03:00
2019-05-24 17:08:18 +02:00
2019-06-19 17:09:55 +02:00
2019-06-20 11:56:35 +02:00
2019-06-19 17:09:07 +02:00
2019-06-19 17:09:55 +02:00
2019-06-22 08:59:24 -04:00
2019-06-19 17:09:55 +02:00
2019-05-21 10:50:46 +02:00
2019-05-27 11:08:22 -04:00
2019-05-21 10:50:46 +02:00
2019-05-24 17:39:00 +02:00
2019-05-30 11:26:32 -07:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-05-21 10:50:46 +02:00
2019-04-25 21:33:37 +02:00
2019-04-25 21:33:37 +02:00