cxgb3: Add 1G fiber support
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / net / cxgb3 / t3_hw.c
index 9d9c0bafb5c76dcd3654bd535b1e80960f66a470..4da5b09b9bc29221ec7a2eae370bb9b8832a398a 100644 (file)
@@ -407,6 +407,29 @@ int t3_phy_advertise(struct cphy *phy, unsigned int advert)
        return mdio_write(phy, 0, MII_ADVERTISE, val);
 }
 
+/**
+ *     t3_phy_advertise_fiber - set fiber PHY advertisement register
+ *     @phy: the PHY to operate on
+ *     @advert: bitmap of capabilities the PHY should advertise
+ *
+ *     Sets a fiber PHY's advertisement register to advertise the
+ *     requested capabilities.
+ */
+int t3_phy_advertise_fiber(struct cphy *phy, unsigned int advert)
+{
+       unsigned int val = 0;
+
+       if (advert & ADVERTISED_1000baseT_Half)
+               val |= ADVERTISE_1000XHALF;
+       if (advert & ADVERTISED_1000baseT_Full)
+               val |= ADVERTISE_1000XFULL;
+       if (advert & ADVERTISED_Pause)
+               val |= ADVERTISE_1000XPAUSE;
+       if (advert & ADVERTISED_Asym_Pause)
+               val |= ADVERTISE_1000XPSE_ASYM;
+       return mdio_write(phy, 0, MII_ADVERTISE, val);
+}
+
 /**
  *     t3_set_phy_speed_duplex - force PHY speed and duplex
  *     @phy: the PHY to operate on