Skip to content

Commit 04b7d41

Browse files
lunndavem330
authored andcommitted
net: ethernet: Fix up drivers masking pause support
PHY drivers don't indicate they support pause. They expect MAC drivers to enable its support if the MAC has the needed hardware. Thus MAC drivers should not mask Pause support, but enable it. Change a few ANDs to ORs. Signed-off-by: Andrew Lunn <andrew@lunn.ch> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 00eb224 commit 04b7d41

File tree

5 files changed

+7
-7
lines changed

5 files changed

+7
-7
lines changed

drivers/net/ethernet/broadcom/tg3.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2123,14 +2123,14 @@ static int tg3_phy_init(struct tg3 *tp)
21232123
case PHY_INTERFACE_MODE_RGMII:
21242124
if (!(tp->phy_flags & TG3_PHYFLG_10_100_ONLY)) {
21252125
phy_set_max_speed(phydev, SPEED_1000);
2126-
phydev->supported &= (SUPPORTED_Pause |
2126+
phydev->supported |= (SUPPORTED_Pause |
21272127
SUPPORTED_Asym_Pause);
21282128
break;
21292129
}
21302130
/* fallthru */
21312131
case PHY_INTERFACE_MODE_MII:
21322132
phy_set_max_speed(phydev, SPEED_100);
2133-
phydev->supported &= (SUPPORTED_Pause |
2133+
phydev->supported |= (SUPPORTED_Pause |
21342134
SUPPORTED_Asym_Pause);
21352135
break;
21362136
default:

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010

1111
#define HCLGE_PHY_SUPPORTED_FEATURES (SUPPORTED_Autoneg | \
1212
SUPPORTED_TP | \
13-
SUPPORTED_Pause | \
14-
SUPPORTED_Asym_Pause | \
1513
PHY_10BT_FEATURES | \
1614
PHY_100BT_FEATURES | \
1715
PHY_1000BT_FEATURES)
@@ -213,6 +211,8 @@ int hclge_mac_connect_phy(struct hclge_dev *hdev)
213211
}
214212

215213
phydev->supported &= HCLGE_PHY_SUPPORTED_FEATURES;
214+
phydev->supported |= SUPPORTED_Pause | SUPPORTED_Asym_Pause;
215+
216216
phydev->advertising = phydev->supported;
217217

218218
return 0;

drivers/net/ethernet/mediatek/mtk_eth_soc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ static int mtk_phy_connect(struct net_device *dev)
360360
SUPPORTED_Pause | SUPPORTED_Asym_Pause;
361361

362362
phy_set_max_speed(dev->phydev, SPEED_1000);
363-
dev->phydev->supported &= SUPPORTED_Pause | SUPPORTED_Asym_Pause;
363+
dev->phydev->supported |= SUPPORTED_Pause | SUPPORTED_Asym_Pause;
364364
dev->phydev->advertising = dev->phydev->supported |
365365
ADVERTISED_Autoneg;
366366
phy_start_aneg(dev->phydev);

drivers/net/ethernet/smsc/smsc911x.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1051,7 +1051,7 @@ static int smsc911x_mii_probe(struct net_device *dev)
10511051
phy_set_max_speed(phydev, SPEED_100);
10521052

10531053
/* mask with MAC supported features */
1054-
phydev->supported &= (SUPPORTED_Pause | SUPPORTED_Asym_Pause);
1054+
phydev->supported |= (SUPPORTED_Pause | SUPPORTED_Asym_Pause);
10551055
phydev->advertising = phydev->supported;
10561056

10571057
pdata->last_duplex = -1;

drivers/net/ethernet/smsc/smsc9420.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1138,7 +1138,7 @@ static int smsc9420_mii_probe(struct net_device *dev)
11381138
phy_set_max_speed(phydev, SPEED_100);
11391139

11401140
/* mask with MAC supported features */
1141-
phydev->supported &= (SUPPORTED_Pause | SUPPORTED_Asym_Pause);
1141+
phydev->supported |= (SUPPORTED_Pause | SUPPORTED_Asym_Pause);
11421142
phydev->advertising = phydev->supported;
11431143

11441144
phy_attached_info(phydev);

0 commit comments

Comments
 (0)