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@milecki.pl>
This commit is contained in:
parent
26bc05eda9
commit
b008357960
@ -277,11 +277,11 @@ static int b53_phy_probe(struct phy_device *phydev)
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
/* allow the generic phy driver to take over */
|
/* 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;
|
return -ENODEV;
|
||||||
|
|
||||||
dev.current_page = 0xff;
|
dev.current_page = 0xff;
|
||||||
dev.priv = phydev->bus;
|
dev.priv = phydev->mdio.bus;
|
||||||
dev.ops = &b53_mdio_ops;
|
dev.ops = &b53_mdio_ops;
|
||||||
dev.pdata = NULL;
|
dev.pdata = NULL;
|
||||||
mutex_init(&dev.reg_mutex);
|
mutex_init(&dev.reg_mutex);
|
||||||
@ -305,7 +305,7 @@ static int b53_phy_config_init(struct phy_device *phydev)
|
|||||||
struct b53_device *dev;
|
struct b53_device *dev;
|
||||||
int ret;
|
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)
|
if (!dev)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
@ -372,9 +372,6 @@ static struct phy_driver b53_phy_driver_id1 = {
|
|||||||
.config_aneg = b53_phy_config_aneg,
|
.config_aneg = b53_phy_config_aneg,
|
||||||
.config_init = b53_phy_config_init,
|
.config_init = b53_phy_config_init,
|
||||||
.read_status = b53_phy_read_status,
|
.read_status = b53_phy_read_status,
|
||||||
.driver = {
|
|
||||||
.owner = THIS_MODULE,
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* BCM53125, BCM53128 */
|
/* BCM53125, BCM53128 */
|
||||||
@ -388,9 +385,6 @@ static struct phy_driver b53_phy_driver_id2 = {
|
|||||||
.config_aneg = b53_phy_config_aneg,
|
.config_aneg = b53_phy_config_aneg,
|
||||||
.config_init = b53_phy_config_init,
|
.config_init = b53_phy_config_init,
|
||||||
.read_status = b53_phy_read_status,
|
.read_status = b53_phy_read_status,
|
||||||
.driver = {
|
|
||||||
.owner = THIS_MODULE,
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* BCM5365 */
|
/* BCM5365 */
|
||||||
@ -404,24 +398,21 @@ static struct phy_driver b53_phy_driver_id3 = {
|
|||||||
.config_aneg = b53_phy_config_aneg,
|
.config_aneg = b53_phy_config_aneg,
|
||||||
.config_init = b53_phy_config_init,
|
.config_init = b53_phy_config_init,
|
||||||
.read_status = b53_phy_read_status,
|
.read_status = b53_phy_read_status,
|
||||||
.driver = {
|
|
||||||
.owner = THIS_MODULE,
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
int __init b53_phy_driver_register(void)
|
int __init b53_phy_driver_register(void)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = phy_driver_register(&b53_phy_driver_id1);
|
ret = phy_driver_register(&b53_phy_driver_id1, THIS_MODULE);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
ret = phy_driver_register(&b53_phy_driver_id2);
|
ret = phy_driver_register(&b53_phy_driver_id2, THIS_MODULE);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err1;
|
goto err1;
|
||||||
|
|
||||||
ret = phy_driver_register(&b53_phy_driver_id3);
|
ret = phy_driver_register(&b53_phy_driver_id3, THIS_MODULE);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -28,10 +28,10 @@
|
|||||||
|
|
||||||
static int b53_phy_fixup(struct phy_device *dev)
|
static int b53_phy_fixup(struct phy_device *dev)
|
||||||
{
|
{
|
||||||
|
struct mii_bus *bus = dev->mdio.bus;
|
||||||
u32 phy_id;
|
u32 phy_id;
|
||||||
struct mii_bus *bus = dev->bus;
|
|
||||||
|
|
||||||
if (dev->addr != B53_PSEUDO_PHY)
|
if (dev->mdio.addr != B53_PSEUDO_PHY)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* read the first port's id */
|
/* read the first port's id */
|
||||||
|
@ -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 */
|
Loading…
Reference in New Issue
Block a user