kernel: update kernel 4.4 to 4.4.71
[openwrt/openwrt.git] / target / linux / generic / patches-4.4 / 002-phy_drivers_backport.patch
index c97c759e7ee82ac1002c0ac5f7c7b3f6ca63edad..b752b4d6a4604ca143232eb63ac37cf59df5b409 100644 (file)
@@ -95,7 +95,7 @@
        ret |= BMCR_ANENABLE | BMCR_ANRESTART;
        return phy_write(phydev, MII_BMCR, ret);
  }
-@@ -1996,7 +1996,7 @@ ar8xxx_phy_config_init(struct phy_device
+@@ -1997,7 +1997,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);
-@@ -2044,7 +2044,7 @@ ar8xxx_check_link_states(struct ar8xxx_p
+@@ -2045,7 +2045,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");
        }
  
-@@ -2063,10 +2063,10 @@ ar8xxx_phy_read_status(struct phy_device
+@@ -2064,10 +2064,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;
-@@ -2096,7 +2096,7 @@ ar8xxx_phy_read_status(struct phy_device
+@@ -2097,7 +2097,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);
-@@ -2151,15 +2151,15 @@ ar8xxx_phy_probe(struct phy_device *phyd
+@@ -2152,15 +2152,15 @@ ar8xxx_phy_probe(struct phy_device *phyd
        int ret;
  
        /* skip PHYs at unused adresses */
                        goto found;
  
        priv = ar8xxx_create();
-@@ -2168,7 +2168,7 @@ ar8xxx_phy_probe(struct phy_device *phyd
+@@ -2169,7 +2169,7 @@ ar8xxx_phy_probe(struct phy_device *phyd
                goto unlock;
        }
  
  
        ret = ar8xxx_probe_switch(priv);
        if (ret)
-@@ -2189,7 +2189,7 @@ ar8xxx_phy_probe(struct phy_device *phyd
+@@ -2190,7 +2190,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;
-@@ -2277,21 +2277,33 @@ ar8xxx_phy_soft_reset(struct phy_device
+@@ -2278,21 +2278,33 @@ ar8xxx_phy_soft_reset(struct phy_device
        return 0;
  }
  
  MODULE_LICENSE("GPL");
 --- a/drivers/net/phy/ar8327.c
 +++ b/drivers/net/phy/ar8327.c
-@@ -619,11 +619,11 @@ ar8327_hw_init(struct ar8xxx_priv *priv)
+@@ -627,11 +627,11 @@ ar8327_hw_init(struct ar8xxx_priv *priv)
        if (!priv->chip_data)
                return -ENOMEM;
  
  }
  
  
-@@ -392,13 +388,12 @@ mvswitch_probe(struct phy_device *pdev)
+@@ -398,13 +394,12 @@ mvswitch_probe(struct phy_device *pdev)
  static int
  mvswitch_fixup(struct phy_device *dev)
  {
        if (reg != MV_IDENT_VALUE)
                return 0;
  
-@@ -418,13 +413,14 @@ static struct phy_driver mvswitch_driver
-       .config_init    = &mvswitch_config_init,
+@@ -425,13 +420,14 @@ static struct phy_driver mvswitch_driver
        .config_aneg    = &mvswitch_config_aneg,
+       .aneg_done      = &mvswitch_aneg_done,
        .read_status    = &mvswitch_read_status,
 +      .driver         = { .owner = THIS_MODULE,},
  };
  }
  
  static void __exit
+--- a/drivers/net/phy/b53/b53_mdio.c
++++ b/drivers/net/phy/b53/b53_mdio.c
+@@ -277,11 +277,11 @@ static int b53_phy_probe(struct phy_devi
+       int ret;
+       /* allow the generic phy driver to take over */
+-      if (phydev->mdio.addr != B53_PSEUDO_PHY && phydev->mdio.addr != 0)
++      if (phydev->addr != B53_PSEUDO_PHY && phydev->addr != 0)
+               return -ENODEV;
+       dev.current_page = 0xff;
+-      dev.priv = phydev->mdio.bus;
++      dev.priv = phydev->bus;
+       dev.ops = &b53_mdio_ops;
+       dev.pdata = NULL;
+       mutex_init(&dev.reg_mutex);
+@@ -305,7 +305,7 @@ static int b53_phy_config_init(struct ph
+       struct b53_device *dev;
+       int ret;
+-      dev = b53_switch_alloc(&phydev->mdio.dev, &b53_mdio_ops, phydev->mdio.bus);
++      dev = b53_switch_alloc(&phydev->dev, &b53_mdio_ops, phydev->bus);
+       if (!dev)
+               return -ENOMEM;
+@@ -372,6 +372,9 @@ static struct phy_driver b53_phy_driver_
+       .config_aneg    = b53_phy_config_aneg,
+       .config_init    = b53_phy_config_init,
+       .read_status    = b53_phy_read_status,
++      .driver = {
++              .owner = THIS_MODULE,
++      },
+ };
+ /* BCM53125, BCM53128 */
+@@ -385,6 +388,9 @@ static struct phy_driver b53_phy_driver_
+       .config_aneg    = b53_phy_config_aneg,
+       .config_init    = b53_phy_config_init,
+       .read_status    = b53_phy_read_status,
++      .driver = {
++              .owner = THIS_MODULE,
++      },
+ };
+ /* BCM5365 */
+@@ -398,21 +404,24 @@ static struct phy_driver b53_phy_driver_
+       .config_aneg    = b53_phy_config_aneg,
+       .config_init    = b53_phy_config_init,
+       .read_status    = b53_phy_read_status,
++      .driver = {
++              .owner = THIS_MODULE,
++      },
+ };
+ int __init b53_phy_driver_register(void)
+ {
+       int ret;
+-      ret = phy_driver_register(&b53_phy_driver_id1, THIS_MODULE);
++      ret = phy_driver_register(&b53_phy_driver_id1);
+       if (ret)
+               return ret;
+-      ret = phy_driver_register(&b53_phy_driver_id2, THIS_MODULE);
++      ret = phy_driver_register(&b53_phy_driver_id2);
+       if (ret)
+               goto err1;
+-      ret = phy_driver_register(&b53_phy_driver_id3, THIS_MODULE);
++      ret = phy_driver_register(&b53_phy_driver_id3);
+       if (!ret)
+               return 0;
+--- a/drivers/net/phy/b53/b53_phy_fixup.c
++++ b/drivers/net/phy/b53/b53_phy_fixup.c
+@@ -28,10 +28,10 @@
+ static int b53_phy_fixup(struct phy_device *dev)
+ {
+-      struct mii_bus *bus = dev->mdio.bus;
+       u32 phy_id;
++      struct mii_bus *bus = dev->bus;
+-      if (dev->mdio.addr != B53_PSEUDO_PHY)
++      if (dev->addr != B53_PSEUDO_PHY)
+               return 0;
+       /* read the first port's id */