forked from Ivasoft/openwrt
kernel: update phy drivers for 4.9
add backport patches for older kernels Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
@@ -70,12 +70,16 @@ struct psb6970_priv {
|
||||
|
||||
static u16 psb6970_mii_read(struct phy_device *phydev, int reg)
|
||||
{
|
||||
return phydev->bus->read(phydev->bus, PHYADDR(reg));
|
||||
struct mii_bus *bus = phydev->mdio.bus;
|
||||
|
||||
return bus->read(bus, PHYADDR(reg));
|
||||
}
|
||||
|
||||
static void psb6970_mii_write(struct phy_device *phydev, int reg, u16 val)
|
||||
{
|
||||
phydev->bus->write(phydev->bus, PHYADDR(reg), val);
|
||||
struct mii_bus *bus = phydev->mdio.bus;
|
||||
|
||||
bus->write(bus, PHYADDR(reg), val);
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -312,11 +316,11 @@ static int psb6970_config_init(struct phy_device *pdev)
|
||||
|
||||
priv->phy = pdev;
|
||||
|
||||
if (pdev->addr == 0)
|
||||
if (pdev->mdio.addr == 0)
|
||||
printk(KERN_INFO "%s: psb6970 switch driver attached.\n",
|
||||
pdev->attached_dev->name);
|
||||
|
||||
if (pdev->addr != 0) {
|
||||
if (pdev->mdio.addr != 0) {
|
||||
kfree(priv);
|
||||
return 0;
|
||||
}
|
||||
@@ -384,14 +388,14 @@ static void psb6970_remove(struct phy_device *pdev)
|
||||
if (!priv)
|
||||
return;
|
||||
|
||||
if (pdev->addr == 0)
|
||||
if (pdev->mdio.addr == 0)
|
||||
unregister_switch(&priv->dev);
|
||||
kfree(priv);
|
||||
}
|
||||
|
||||
static int psb6970_fixup(struct phy_device *dev)
|
||||
{
|
||||
struct mii_bus *bus = dev->bus;
|
||||
struct mii_bus *bus = dev->mdio.bus;
|
||||
u16 reg;
|
||||
|
||||
/* look for the switch on the bus */
|
||||
@@ -415,13 +419,12 @@ static struct phy_driver psb6970_driver = {
|
||||
.config_init = &psb6970_config_init,
|
||||
.config_aneg = &psb6970_config_aneg,
|
||||
.read_status = &psb6970_read_status,
|
||||
.driver = {.owner = THIS_MODULE},
|
||||
};
|
||||
|
||||
int __init psb6970_init(void)
|
||||
{
|
||||
phy_register_fixup_for_id(PHY_ANY_ID, psb6970_fixup);
|
||||
return phy_driver_register(&psb6970_driver);
|
||||
return phy_driver_register(&psb6970_driver, THIS_MODULE);
|
||||
}
|
||||
|
||||
module_init(psb6970_init);
|
||||
|
||||
Reference in New Issue
Block a user