[source] kernel: port b53 to use kernel 4.5+ API

LEDE Commits lede-commits at lists.infradead.org
Mon Feb 6 02:30:26 PST 2017


rmilecki pushed a commit to source.git, branch master:
https://git.lede-project.org/b008357960dd39f9e5f4c14841ba4407951c47b1

commit b008357960dd39f9e5f4c14841ba4407951c47b1
Author: Rafał Miłecki <rafal at milecki.pl>
AuthorDate: Mon Feb 6 11:28:54 2017 +0100

    kernel: port b53 to use kernel 4.5+ API
    
    For backward 4.4 compatibility I added patch reverting my changes.
    
    Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
---
 .../generic/files/drivers/net/phy/b53/b53_mdio.c   | 21 ++----
 .../files/drivers/net/phy/b53/b53_phy_fixup.c      |  4 +-
 .../patches-4.4/740-phy-b53-fix-compilation.patch  | 88 ++++++++++++++++++++++
 3 files changed, 96 insertions(+), 17 deletions(-)

diff --git a/target/linux/generic/files/drivers/net/phy/b53/b53_mdio.c b/target/linux/generic/files/drivers/net/phy/b53/b53_mdio.c
index 185c95f..75bb4d9 100644
--- a/target/linux/generic/files/drivers/net/phy/b53/b53_mdio.c
+++ b/target/linux/generic/files/drivers/net/phy/b53/b53_mdio.c
@@ -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;
 
diff --git a/target/linux/generic/files/drivers/net/phy/b53/b53_phy_fixup.c b/target/linux/generic/files/drivers/net/phy/b53/b53_phy_fixup.c
index 72d1373..e2f8a39 100644
--- a/target/linux/generic/files/drivers/net/phy/b53/b53_phy_fixup.c
+++ b/target/linux/generic/files/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->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
index 0000000..3eab516
--- /dev/null
+++ b/target/linux/generic/patches-4.4/740-phy-b53-fix-compilation.patch
@@ -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 */



More information about the lede-commits mailing list