mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-16 16:17:34 +07:00
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>
This commit is contained in:
parent
00eb2243b9
commit
04b7d41d80
@ -2123,14 +2123,14 @@ static int tg3_phy_init(struct tg3 *tp)
|
||||
case PHY_INTERFACE_MODE_RGMII:
|
||||
if (!(tp->phy_flags & TG3_PHYFLG_10_100_ONLY)) {
|
||||
phy_set_max_speed(phydev, SPEED_1000);
|
||||
phydev->supported &= (SUPPORTED_Pause |
|
||||
phydev->supported |= (SUPPORTED_Pause |
|
||||
SUPPORTED_Asym_Pause);
|
||||
break;
|
||||
}
|
||||
/* fallthru */
|
||||
case PHY_INTERFACE_MODE_MII:
|
||||
phy_set_max_speed(phydev, SPEED_100);
|
||||
phydev->supported &= (SUPPORTED_Pause |
|
||||
phydev->supported |= (SUPPORTED_Pause |
|
||||
SUPPORTED_Asym_Pause);
|
||||
break;
|
||||
default:
|
||||
|
@ -10,8 +10,6 @@
|
||||
|
||||
#define HCLGE_PHY_SUPPORTED_FEATURES (SUPPORTED_Autoneg | \
|
||||
SUPPORTED_TP | \
|
||||
SUPPORTED_Pause | \
|
||||
SUPPORTED_Asym_Pause | \
|
||||
PHY_10BT_FEATURES | \
|
||||
PHY_100BT_FEATURES | \
|
||||
PHY_1000BT_FEATURES)
|
||||
@ -213,6 +211,8 @@ int hclge_mac_connect_phy(struct hclge_dev *hdev)
|
||||
}
|
||||
|
||||
phydev->supported &= HCLGE_PHY_SUPPORTED_FEATURES;
|
||||
phydev->supported |= SUPPORTED_Pause | SUPPORTED_Asym_Pause;
|
||||
|
||||
phydev->advertising = phydev->supported;
|
||||
|
||||
return 0;
|
||||
|
@ -360,7 +360,7 @@ static int mtk_phy_connect(struct net_device *dev)
|
||||
SUPPORTED_Pause | SUPPORTED_Asym_Pause;
|
||||
|
||||
phy_set_max_speed(dev->phydev, SPEED_1000);
|
||||
dev->phydev->supported &= SUPPORTED_Pause | SUPPORTED_Asym_Pause;
|
||||
dev->phydev->supported |= SUPPORTED_Pause | SUPPORTED_Asym_Pause;
|
||||
dev->phydev->advertising = dev->phydev->supported |
|
||||
ADVERTISED_Autoneg;
|
||||
phy_start_aneg(dev->phydev);
|
||||
|
@ -1051,7 +1051,7 @@ static int smsc911x_mii_probe(struct net_device *dev)
|
||||
phy_set_max_speed(phydev, SPEED_100);
|
||||
|
||||
/* mask with MAC supported features */
|
||||
phydev->supported &= (SUPPORTED_Pause | SUPPORTED_Asym_Pause);
|
||||
phydev->supported |= (SUPPORTED_Pause | SUPPORTED_Asym_Pause);
|
||||
phydev->advertising = phydev->supported;
|
||||
|
||||
pdata->last_duplex = -1;
|
||||
|
@ -1138,7 +1138,7 @@ static int smsc9420_mii_probe(struct net_device *dev)
|
||||
phy_set_max_speed(phydev, SPEED_100);
|
||||
|
||||
/* mask with MAC supported features */
|
||||
phydev->supported &= (SUPPORTED_Pause | SUPPORTED_Asym_Pause);
|
||||
phydev->supported |= (SUPPORTED_Pause | SUPPORTED_Asym_Pause);
|
||||
phydev->advertising = phydev->supported;
|
||||
|
||||
phy_attached_info(phydev);
|
||||
|
Loading…
Reference in New Issue
Block a user