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:
 
 
 #define HCLGE_PHY_SUPPORTED_FEATURES   (SUPPORTED_Autoneg | \
                                         SUPPORTED_TP | \
-                                        SUPPORTED_Pause | \
-                                        SUPPORTED_Asym_Pause | \
                                         PHY_10BT_FEATURES | \
                                         PHY_100BT_FEATURES | \
                                         PHY_1000BT_FEATURES)
        }
 
        phydev->supported &= HCLGE_PHY_SUPPORTED_FEATURES;
+       phydev->supported |= SUPPORTED_Pause | SUPPORTED_Asym_Pause;
+
        phydev->advertising = phydev->supported;
 
        return 0;
 
                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);
 
        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;
 
        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);