kernel: update 4.4 to 4.4.88
[openwrt/openwrt.git] / target / linux / generic / pending-4.4 / 002-phy_drivers_backport.patch
index 72e13dcf8b57dddb1a465edefbca3737929ffda5..5d83aa3bb1313f83df037bec4f0445db7d42ee82 100644 (file)
@@ -86,7 +86,7 @@
  
 --- a/drivers/net/phy/ar8216.c
 +++ b/drivers/net/phy/ar8216.c
-@@ -183,7 +183,7 @@ ar8xxx_phy_check_aneg(struct phy_device
+@@ -177,7 +177,7 @@ ar8xxx_phy_check_aneg(struct phy_device
        if (ret & BMCR_ANENABLE)
                return 0;
  
@@ -95,7 +95,7 @@
        ret |= BMCR_ANENABLE | BMCR_ANRESTART;
        return phy_write(phydev, MII_BMCR, ret);
  }
-@@ -2054,7 +2054,7 @@ ar8xxx_phy_config_init(struct phy_device
+@@ -2007,7 +2007,7 @@ ar8xxx_phy_config_init(struct phy_device
  
        priv->phy = phydev;
  
                if (chip_is_ar8316(priv)) {
                        /* switch device has been initialized, reinit */
                        priv->dev.ports = (AR8216_NUM_PORTS - 1);
-@@ -2102,7 +2102,7 @@ ar8xxx_check_link_states(struct ar8xxx_p
+@@ -2055,7 +2055,7 @@ ar8xxx_check_link_states(struct ar8xxx_p
                /* flush ARL entries for this port if it went down*/
                if (!link_new)
                        priv->chip->atu_flush_port(priv, i);
                         i, link_new ? "up" : "down");
        }
  
-@@ -2121,10 +2121,10 @@ ar8xxx_phy_read_status(struct phy_device
+@@ -2074,10 +2074,10 @@ ar8xxx_phy_read_status(struct phy_device
        if (phydev->state == PHY_CHANGELINK)
                ar8xxx_check_link_states(priv);
  
        phydev->link = !!link.link;
        if (!phydev->link)
                return 0;
-@@ -2154,7 +2154,7 @@ ar8xxx_phy_read_status(struct phy_device
+@@ -2107,7 +2107,7 @@ ar8xxx_phy_read_status(struct phy_device
  static int
  ar8xxx_phy_config_aneg(struct phy_device *phydev)
  {
                return 0;
  
        return genphy_config_aneg(phydev);
-@@ -2209,15 +2209,15 @@ ar8xxx_phy_probe(struct phy_device *phyd
+@@ -2162,15 +2162,15 @@ ar8xxx_phy_probe(struct phy_device *phyd
        int ret;
  
        /* skip PHYs at unused adresses */
                        goto found;
  
        priv = ar8xxx_create();
-@@ -2226,7 +2226,7 @@ ar8xxx_phy_probe(struct phy_device *phyd
+@@ -2179,7 +2179,7 @@ ar8xxx_phy_probe(struct phy_device *phyd
                goto unlock;
        }
  
  
        ret = ar8xxx_probe_switch(priv);
        if (ret)
-@@ -2247,7 +2247,7 @@ ar8xxx_phy_probe(struct phy_device *phyd
+@@ -2200,7 +2200,7 @@ ar8xxx_phy_probe(struct phy_device *phyd
  found:
        priv->use_count++;
  
                if (ar8xxx_has_gige(priv)) {
                        phydev->supported = SUPPORTED_1000baseT_Full;
                        phydev->advertising = ADVERTISED_1000baseT_Full;
-@@ -2335,21 +2335,33 @@ ar8xxx_phy_soft_reset(struct phy_device
+@@ -2288,21 +2288,33 @@ ar8xxx_phy_soft_reset(struct phy_device
        return 0;
  }
  
  module_init(psb6970_init);
 --- a/drivers/net/phy/rtl8306.c
 +++ b/drivers/net/phy/rtl8306.c
-@@ -872,7 +872,7 @@ rtl8306_config_init(struct phy_device *p
+@@ -876,7 +876,7 @@ rtl8306_config_init(struct phy_device *p
        int err;
  
        /* Only init the switch for the primary PHY */
                return 0;
  
        val.value.i = 1;
-@@ -882,7 +882,7 @@ rtl8306_config_init(struct phy_device *p
+@@ -886,7 +886,7 @@ rtl8306_config_init(struct phy_device *p
        priv->dev.ops = &rtl8306_ops;
        priv->do_cpu = 0;
        priv->page = -1;
  
        chipid = rtl_get(dev, RTL_REG_CHIPID);
        chipver = rtl_get(dev, RTL_REG_CHIPVER);
-@@ -928,13 +928,13 @@ rtl8306_fixup(struct phy_device *pdev)
+@@ -932,13 +932,13 @@ rtl8306_fixup(struct phy_device *pdev)
        u16 chipid;
  
        /* Attach to primary LAN port and WAN port */
        chipid = rtl_get(&priv.dev, RTL_REG_CHIPID);
        if (chipid == 0x5988)
                pdev->phy_id = RTL8306_MAGIC;
-@@ -952,14 +952,14 @@ rtl8306_probe(struct phy_device *pdev)
+@@ -956,14 +956,14 @@ rtl8306_probe(struct phy_device *pdev)
                 * share one rtl_priv instance between virtual phy
                 * devices on the same bus
                 */
  
  found:
        pdev->priv = priv;
-@@ -980,7 +980,7 @@ rtl8306_config_aneg(struct phy_device *p
+@@ -984,7 +984,7 @@ rtl8306_config_aneg(struct phy_device *p
        struct rtl_priv *priv = pdev->priv;
  
        /* Only for WAN */
                return 0;
  
        /* Restart autonegotiation */
-@@ -996,7 +996,7 @@ rtl8306_read_status(struct phy_device *p
+@@ -1000,7 +1000,7 @@ rtl8306_read_status(struct phy_device *p
        struct rtl_priv *priv = pdev->priv;
        struct switch_dev *dev = &priv->dev;
  
                /* WAN */
                pdev->speed = rtl_get(dev, RTL_PORT_REG(4, SPEED)) ? SPEED_100 : SPEED_10;
                pdev->duplex = rtl_get(dev, RTL_PORT_REG(4, DUPLEX)) ? DUPLEX_FULL : DUPLEX_HALF;
-@@ -1037,6 +1037,7 @@ static struct phy_driver rtl8306_driver
+@@ -1041,6 +1041,7 @@ static struct phy_driver rtl8306_driver
        .config_init    = &rtl8306_config_init,
        .config_aneg    = &rtl8306_config_aneg,
        .read_status    = &rtl8306_read_status,
  };
  
  
-@@ -1044,7 +1045,7 @@ static int __init
+@@ -1048,7 +1049,7 @@ static int __init
  rtl_init(void)
  {
        phy_register_fixup_for_id(PHY_ANY_ID, rtl8306_fixup);