[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2ce48ce6-da46-cb1a-a288-5d9f27e35637@gmail.com>
Date: Mon, 3 Sep 2018 10:33:37 -0700
From: Florian Fainelli <f.fainelli@...il.com>
To: Andrew Lunn <andrew@...n.ch>, David Miller <davem@...emloft.net>,
michael.chan@...adcom.com
Cc: netdev <netdev@...r.kernel.org>, maxime.chevallier@...tlin.com
Subject: Re: [PATCH net-next 06/12] net: ethernet: Fix up drivers masking
pause support
On 9/2/2018 10:06 AM, Andrew Lunn wrote:
> 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@...n.ch>
Reviewed-by: Florian Fainelli <f.fainelli@...il.com>
Adding Michael for tg3.c
> ---
> drivers/net/ethernet/broadcom/tg3.c | 4 ++--
> drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c | 4 ++--
> drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2 +-
> drivers/net/ethernet/smsc/smsc911x.c | 2 +-
> drivers/net/ethernet/smsc/smsc9420.c | 2 +-
> 5 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
> index cdc32724c9d9..eab00239a47a 100644
> --- a/drivers/net/ethernet/broadcom/tg3.c
> +++ b/drivers/net/ethernet/broadcom/tg3.c
> @@ -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:
> diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c
> index 398971a062f4..05b15d254e32 100644
> --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c
> +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c
> @@ -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;
> diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
> index e93b5375504b..db231bda7c2a 100644
> --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
> +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
> @@ -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);
> diff --git a/drivers/net/ethernet/smsc/smsc911x.c b/drivers/net/ethernet/smsc/smsc911x.c
> index f84dbd0beb8e..3e34bf53f055 100644
> --- a/drivers/net/ethernet/smsc/smsc911x.c
> +++ b/drivers/net/ethernet/smsc/smsc911x.c
> @@ -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;
> diff --git a/drivers/net/ethernet/smsc/smsc9420.c b/drivers/net/ethernet/smsc/smsc9420.c
> index 795f60d92611..326177384544 100644
> --- a/drivers/net/ethernet/smsc/smsc9420.c
> +++ b/drivers/net/ethernet/smsc/smsc9420.c
> @@ -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);
>
--
Florian
Powered by blists - more mailing lists