From b008357960dd39f9e5f4c14841ba4407951c47b1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Mon, 6 Feb 2017 11:28:54 +0100 Subject: [PATCH] kernel: port b53 to use kernel 4.5+ API MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit For backward 4.4 compatibility I added patch reverting my changes. Signed-off-by: Rafał Miłecki --- .../files/drivers/net/phy/b53/b53_mdio.c | 21 ++--- .../files/drivers/net/phy/b53/b53_phy_fixup.c | 4 +- .../740-phy-b53-fix-compilation.patch | 88 +++++++++++++++++++ 3 files changed, 96 insertions(+), 17 deletions(-) create mode 100644 target/linux/generic/patches-4.4/740-phy-b53-fix-compilation.patch 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 185c95ffa7..75bb4d941c 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 72d1373d7f..e2f8a39ab6 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 0000000000..3eab516ed2 --- /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 */ -- 2.25.1