kernel: port b53 to use kernel 4.5+ API
authorRafał Miłecki <rafal@milecki.pl>
Mon, 6 Feb 2017 10:28:54 +0000 (11:28 +0100)
committerRafał Miłecki <rafal@milecki.pl>
Mon, 6 Feb 2017 10:28:54 +0000 (11:28 +0100)
For backward 4.4 compatibility I added patch reverting my changes.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
target/linux/generic/files/drivers/net/phy/b53/b53_mdio.c
target/linux/generic/files/drivers/net/phy/b53/b53_phy_fixup.c
target/linux/generic/patches-4.4/740-phy-b53-fix-compilation.patch [new file with mode: 0644]

index 185c95ffa73d315600ea85bea920039b9ede7b23..75bb4d941c42d435d7c41a6d3531a0b018aa010c 100644 (file)
@@ -277,11 +277,11 @@ static int b53_phy_probe(struct phy_device *phydev)
        int ret;
 
        /* allow the generic phy driver to take over */
-       if (phydev->addr != B53_PSEUDO_PHY && phydev->addr != 0)
+       if (phydev->mdio.addr != B53_PSEUDO_PHY && phydev->mdio.addr != 0)
                return -ENODEV;
 
        dev.current_page = 0xff;
-       dev.priv = phydev->bus;
+       dev.priv = phydev->mdio.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 phy_device *phydev)
        struct b53_device *dev;
        int ret;
 
-       dev = b53_switch_alloc(&phydev->dev, &b53_mdio_ops, phydev->bus);
+       dev = b53_switch_alloc(&phydev->mdio.dev, &b53_mdio_ops, phydev->mdio.bus);
        if (!dev)
                return -ENOMEM;
 
@@ -372,9 +372,6 @@ static struct phy_driver b53_phy_driver_id1 = {
        .config_aneg    = b53_phy_config_aneg,
        .config_init    = b53_phy_config_init,
        .read_status    = b53_phy_read_status,
-       .driver = {
-               .owner = THIS_MODULE,
-       },
 };
 
 /* BCM53125, BCM53128 */
@@ -388,9 +385,6 @@ static struct phy_driver b53_phy_driver_id2 = {
        .config_aneg    = b53_phy_config_aneg,
        .config_init    = b53_phy_config_init,
        .read_status    = b53_phy_read_status,
-       .driver = {
-               .owner = THIS_MODULE,
-       },
 };
 
 /* BCM5365 */
@@ -404,24 +398,21 @@ static struct phy_driver b53_phy_driver_id3 = {
        .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);
+       ret = phy_driver_register(&b53_phy_driver_id1, THIS_MODULE);
        if (ret)
                return ret;
 
-       ret = phy_driver_register(&b53_phy_driver_id2);
+       ret = phy_driver_register(&b53_phy_driver_id2, THIS_MODULE);
        if (ret)
                goto err1;
 
-       ret = phy_driver_register(&b53_phy_driver_id3);
+       ret = phy_driver_register(&b53_phy_driver_id3, THIS_MODULE);
        if (!ret)
                return 0;
 
index 72d1373d7f58ddf19856a7a656b346484318390c..e2f8a39ab658cf3433f662c3e021a8405b19364e 100644 (file)
 
 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->addr != B53_PSEUDO_PHY)
+       if (dev->mdio.addr != B53_PSEUDO_PHY)
                return 0;
 
        /* read the first port's id */
diff --git a/target/linux/generic/patches-4.4/740-phy-b53-fix-compilation.patch b/target/linux/generic/patches-4.4/740-phy-b53-fix-compilation.patch
new file mode 100644 (file)
index 0000000..3eab516
--- /dev/null
@@ -0,0 +1,88 @@
+--- 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 */