From 1a52d11d38ddb3cb511a55d01ce4b497322eb1ed Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Thu, 2 Feb 2017 14:36:50 +0100 Subject: kernel: update phy drivers for 4.9 add backport patches for older kernels Signed-off-by: Felix Fietkau --- .../linux/generic/files/drivers/net/phy/ip17xx.c | 69 ++++++---------------- 1 file changed, 18 insertions(+), 51 deletions(-) (limited to 'target/linux/generic/files/drivers/net/phy/ip17xx.c') diff --git a/target/linux/generic/files/drivers/net/phy/ip17xx.c b/target/linux/generic/files/drivers/net/phy/ip17xx.c index a4fe53dc5b..9eedfd4d28 100644 --- a/target/linux/generic/files/drivers/net/phy/ip17xx.c +++ b/target/linux/generic/files/drivers/net/phy/ip17xx.c @@ -1273,7 +1273,7 @@ static int ip17xx_probe(struct phy_device *pdev) int err; /* We only attach to PHY 0, but use all available PHYs */ - if (pdev->addr != 0) + if (pdev->mdio.addr != 0) return -ENODEV; state = kzalloc(sizeof(*state), GFP_KERNEL); @@ -1283,7 +1283,7 @@ static int ip17xx_probe(struct phy_device *pdev) dev = &state->dev; pdev->priv = state; - state->mii_bus = pdev->bus; + state->mii_bus = pdev->mdio.bus; err = get_model(state); if (err < 0) @@ -1295,7 +1295,7 @@ static int ip17xx_probe(struct phy_device *pdev) dev->name = state->regs->NAME; dev->ops = &ip17xx_ops; - pr_info("IP17xx: Found %s at %s\n", dev->name, dev_name(&pdev->dev)); + pr_info("IP17xx: Found %s at %s\n", dev->name, dev_name(&pdev->mdio.dev)); return 0; error: @@ -1353,58 +1353,25 @@ static int ip17xx_read_status(struct phy_device *pdev) return 0; } -static struct phy_driver ip17xx_driver = { - .name = "IC+ IP17xx", - .phy_id = 0x02430c00, - .phy_id_mask = 0x0ffffc00, - .features = PHY_BASIC_FEATURES, - .probe = ip17xx_probe, - .remove = ip17xx_remove, - .config_init = ip17xx_config_init, - .config_aneg = ip17xx_config_aneg, - .aneg_done = ip17xx_aneg_done, - .update_link = ip17xx_update_link, - .read_status = ip17xx_read_status, - .driver = { .owner = THIS_MODULE }, -}; - -static struct phy_driver ip175a_driver = { - .name = "IC+ IP175A", - .phy_id = 0x02430c50, - .phy_id_mask = 0x0ffffff0, - .features = PHY_BASIC_FEATURES, - .probe = ip17xx_probe, - .remove = ip17xx_remove, - .config_init = ip17xx_config_init, - .config_aneg = ip17xx_config_aneg, - .aneg_done = ip17xx_aneg_done, - .update_link = ip17xx_update_link, - .read_status = ip17xx_read_status, - .driver = { .owner = THIS_MODULE }, +static struct phy_driver ip17xx_driver[] = { + { + .name = "IC+ IP17xx", + .phy_id = 0x02430c00, + .phy_id_mask = 0x0ffffc00, + .features = PHY_BASIC_FEATURES, + .probe = ip17xx_probe, + .remove = ip17xx_remove, + .config_init = ip17xx_config_init, + .config_aneg = ip17xx_config_aneg, + .aneg_done = ip17xx_aneg_done, + .update_link = ip17xx_update_link, + .read_status = ip17xx_read_status, + } }; - -int __init ip17xx_init(void) -{ - int ret; - - ret = phy_driver_register(&ip175a_driver); - if (ret < 0) - return ret; - - return phy_driver_register(&ip17xx_driver); -} - -void __exit ip17xx_exit(void) -{ - phy_driver_unregister(&ip17xx_driver); - phy_driver_unregister(&ip175a_driver); -} +module_phy_driver(ip17xx_driver); MODULE_AUTHOR("Patrick Horn "); MODULE_AUTHOR("Felix Fietkau "); MODULE_AUTHOR("Martin Mares "); MODULE_LICENSE("GPL"); - -module_init(ip17xx_init); -module_exit(ip17xx_exit); -- cgit v1.2.3