diff options
Diffstat (limited to 'drivers/net/ethernet/broadcom/tg3.c')
-rw-r--r-- | drivers/net/ethernet/broadcom/tg3.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c index ff3c48a5e959..2497cc4ca89d 100644 --- a/drivers/net/ethernet/broadcom/tg3.c +++ b/drivers/net/ethernet/broadcom/tg3.c | |||
@@ -1706,18 +1706,12 @@ static u8 tg3_resolve_flowctrl_1000X(u16 lcladv, u16 rmtadv) | |||
1706 | { | 1706 | { |
1707 | u8 cap = 0; | 1707 | u8 cap = 0; |
1708 | 1708 | ||
1709 | if (lcladv & ADVERTISE_1000XPAUSE) { | 1709 | if (lcladv & rmtadv & ADVERTISE_1000XPAUSE) { |
1710 | if (lcladv & ADVERTISE_1000XPSE_ASYM) { | 1710 | cap = FLOW_CTRL_TX | FLOW_CTRL_RX; |
1711 | if (rmtadv & LPA_1000XPAUSE) | 1711 | } else if (lcladv & rmtadv & ADVERTISE_1000XPSE_ASYM) { |
1712 | cap = FLOW_CTRL_TX | FLOW_CTRL_RX; | 1712 | if (lcladv & ADVERTISE_1000XPAUSE) |
1713 | else if (rmtadv & LPA_1000XPAUSE_ASYM) | 1713 | cap = FLOW_CTRL_RX; |
1714 | cap = FLOW_CTRL_RX; | 1714 | if (rmtadv & ADVERTISE_1000XPAUSE) |
1715 | } else { | ||
1716 | if (rmtadv & LPA_1000XPAUSE) | ||
1717 | cap = FLOW_CTRL_TX | FLOW_CTRL_RX; | ||
1718 | } | ||
1719 | } else if (lcladv & ADVERTISE_1000XPSE_ASYM) { | ||
1720 | if ((rmtadv & LPA_1000XPAUSE) && (rmtadv & LPA_1000XPAUSE_ASYM)) | ||
1721 | cap = FLOW_CTRL_TX; | 1715 | cap = FLOW_CTRL_TX; |
1722 | } | 1716 | } |
1723 | 1717 | ||