phy: Add an mdio_device structure
Not all devices attached to an MDIO bus are phys. So add an mdio_device structure to represent the generic parts of an mdio device, and place this structure into the phy_device. Signed-off-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
e7f4dc3536
commit
e5a03bfd87
@@ -1295,7 +1295,7 @@ int dtsec_init(struct fman_mac *dtsec)
|
||||
|
||||
err = init(dtsec->regs, dtsec_drv_param, dtsec->phy_if,
|
||||
dtsec->max_speed, (u8 *)eth_addr, dtsec->exceptions,
|
||||
dtsec->tbiphy->addr);
|
||||
dtsec->tbiphy->mdio.addr);
|
||||
if (err) {
|
||||
free_init_resources(dtsec);
|
||||
pr_err("DTSEC version doesn't support this i/f mode\n");
|
||||
@@ -1434,11 +1434,11 @@ struct fman_mac *dtsec_config(struct fman_mac_params *params)
|
||||
dtsec->tbiphy = of_phy_find_device(params->internal_phy_node);
|
||||
if (!dtsec->tbiphy) {
|
||||
pr_err("of_phy_find_device (TBI PHY) failed\n");
|
||||
put_device(&dtsec->tbiphy->dev);
|
||||
put_device(&dtsec->tbiphy->mdio.dev);
|
||||
goto err_dtsec_drv_param;
|
||||
}
|
||||
|
||||
put_device(&dtsec->tbiphy->dev);
|
||||
put_device(&dtsec->tbiphy->mdio.dev);
|
||||
|
||||
/* Save FMan revision */
|
||||
fman_get_revision(dtsec->fm, &dtsec->fm_rev_info);
|
||||
|
@@ -1054,15 +1054,15 @@ int memac_init(struct fman_mac *memac)
|
||||
* register address space and access each one of 4
|
||||
* ports inside QSGMII.
|
||||
*/
|
||||
phy_addr = memac->pcsphy->addr;
|
||||
phy_addr = memac->pcsphy->mdio.addr;
|
||||
qsmgii_phy_addr = (u8)((phy_addr << 2) | i);
|
||||
memac->pcsphy->addr = qsmgii_phy_addr;
|
||||
memac->pcsphy->mdio.addr = qsmgii_phy_addr;
|
||||
if (memac->basex_if)
|
||||
setup_sgmii_internal_phy_base_x(memac);
|
||||
else
|
||||
setup_sgmii_internal_phy(memac, fixed_link);
|
||||
|
||||
memac->pcsphy->addr = phy_addr;
|
||||
memac->pcsphy->mdio.addr = phy_addr;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -254,7 +254,7 @@ static void restart(struct net_device *dev)
|
||||
int r;
|
||||
u32 addrhi, addrlo;
|
||||
|
||||
struct mii_bus* mii = fep->phydev->bus;
|
||||
struct mii_bus *mii = fep->phydev->mdio.bus;
|
||||
struct fec_info* fec_inf = mii->priv;
|
||||
|
||||
r = whack_reset(fep->fec.fecp);
|
||||
|
@@ -1834,7 +1834,7 @@ static void gfar_configure_serdes(struct net_device *dev)
|
||||
* several seconds for it to come back.
|
||||
*/
|
||||
if (phy_read(tbiphy, MII_BMSR) & BMSR_LSTATUS) {
|
||||
put_device(&tbiphy->dev);
|
||||
put_device(&tbiphy->mdio.dev);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1849,7 +1849,7 @@ static void gfar_configure_serdes(struct net_device *dev)
|
||||
BMCR_ANENABLE | BMCR_ANRESTART | BMCR_FULLDPLX |
|
||||
BMCR_SPEED1000);
|
||||
|
||||
put_device(&tbiphy->dev);
|
||||
put_device(&tbiphy->mdio.dev);
|
||||
}
|
||||
|
||||
static int __gfar_is_rx_idle(struct gfar_private *priv)
|
||||
|
@@ -1385,7 +1385,7 @@ static int adjust_enet_interface(struct ucc_geth_private *ugeth)
|
||||
value &= ~0x1000; /* Turn off autonegotiation */
|
||||
phy_write(tbiphy, ENET_TBI_MII_CR, value);
|
||||
|
||||
put_device(&tbiphy->dev);
|
||||
put_device(&tbiphy->mdio.dev);
|
||||
}
|
||||
|
||||
init_check_frame_length_mode(ug_info->lengthCheckRx, &ug_regs->maccfg2);
|
||||
@@ -1705,7 +1705,7 @@ static void uec_configure_serdes(struct net_device *dev)
|
||||
* several seconds for it to come back.
|
||||
*/
|
||||
if (phy_read(tbiphy, ENET_TBI_MII_SR) & TBISR_LSTATUS) {
|
||||
put_device(&tbiphy->dev);
|
||||
put_device(&tbiphy->mdio.dev);
|
||||
return;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user