Skip to content

Commit e5a03bf

Browse files
lunndavem330
authored andcommitted
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>
1 parent e7f4dc3 commit e5a03bf

35 files changed

+165
-151
lines changed

drivers/net/ethernet/agere/et131x.c

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1235,7 +1235,7 @@ static int et131x_mii_read(struct et131x_adapter *adapter, u8 reg, u16 *value)
12351235
if (!phydev)
12361236
return -EIO;
12371237

1238-
return et131x_phy_mii_read(adapter, phydev->addr, reg, value);
1238+
return et131x_phy_mii_read(adapter, phydev->mdio.addr, reg, value);
12391239
}
12401240

12411241
static int et131x_mii_write(struct et131x_adapter *adapter, u8 addr, u8 reg,
@@ -1462,7 +1462,7 @@ static void et1310_phy_power_switch(struct et131x_adapter *adapter, bool down)
14621462
data &= ~BMCR_PDOWN;
14631463
if (down)
14641464
data |= BMCR_PDOWN;
1465-
et131x_mii_write(adapter, phydev->addr, MII_BMCR, data);
1465+
et131x_mii_write(adapter, phydev->mdio.addr, MII_BMCR, data);
14661466
}
14671467

14681468
/* et131x_xcvr_init - Init the phy if we are setting it into force mode */
@@ -1490,7 +1490,7 @@ static void et131x_xcvr_init(struct et131x_adapter *adapter)
14901490
else
14911491
lcr2 |= (LED_VAL_LINKON << LED_TXRX_SHIFT);
14921492

1493-
et131x_mii_write(adapter, phydev->addr, PHY_LED_2, lcr2);
1493+
et131x_mii_write(adapter, phydev->mdio.addr, PHY_LED_2, lcr2);
14941494
}
14951495
}
14961496

@@ -3192,14 +3192,14 @@ static void et131x_adjust_link(struct net_device *netdev)
31923192

31933193
et131x_mii_read(adapter, PHY_MPHY_CONTROL_REG,
31943194
&register18);
3195-
et131x_mii_write(adapter, phydev->addr,
3195+
et131x_mii_write(adapter, phydev->mdio.addr,
31963196
PHY_MPHY_CONTROL_REG,
31973197
register18 | 0x4);
3198-
et131x_mii_write(adapter, phydev->addr, PHY_INDEX_REG,
3199-
register18 | 0x8402);
3200-
et131x_mii_write(adapter, phydev->addr, PHY_DATA_REG,
3201-
register18 | 511);
3202-
et131x_mii_write(adapter, phydev->addr,
3198+
et131x_mii_write(adapter, phydev->mdio.addr,
3199+
PHY_INDEX_REG, register18 | 0x8402);
3200+
et131x_mii_write(adapter, phydev->mdio.addr,
3201+
PHY_DATA_REG, register18 | 511);
3202+
et131x_mii_write(adapter, phydev->mdio.addr,
32033203
PHY_MPHY_CONTROL_REG, register18);
32043204
}
32053205

@@ -3212,8 +3212,8 @@ static void et131x_adjust_link(struct net_device *netdev)
32123212
et131x_mii_read(adapter, PHY_CONFIG, &reg);
32133213
reg &= ~ET_PHY_CONFIG_TX_FIFO_DEPTH;
32143214
reg |= ET_PHY_CONFIG_FIFO_DEPTH_32;
3215-
et131x_mii_write(adapter, phydev->addr, PHY_CONFIG,
3216-
reg);
3215+
et131x_mii_write(adapter, phydev->mdio.addr,
3216+
PHY_CONFIG, reg);
32173217
}
32183218

32193219
et131x_set_rx_dma_timer(adapter);
@@ -3226,14 +3226,14 @@ static void et131x_adjust_link(struct net_device *netdev)
32263226

32273227
et131x_mii_read(adapter, PHY_MPHY_CONTROL_REG,
32283228
&register18);
3229-
et131x_mii_write(adapter, phydev->addr,
3229+
et131x_mii_write(adapter, phydev->mdio.addr,
32303230
PHY_MPHY_CONTROL_REG,
32313231
register18 | 0x4);
3232-
et131x_mii_write(adapter, phydev->addr,
3232+
et131x_mii_write(adapter, phydev->mdio.addr,
32333233
PHY_INDEX_REG, register18 | 0x8402);
3234-
et131x_mii_write(adapter, phydev->addr,
3234+
et131x_mii_write(adapter, phydev->mdio.addr,
32353235
PHY_DATA_REG, register18 | 511);
3236-
et131x_mii_write(adapter, phydev->addr,
3236+
et131x_mii_write(adapter, phydev->mdio.addr,
32373237
PHY_MPHY_CONTROL_REG, register18);
32383238
}
32393239

drivers/net/ethernet/altera/altera_tse_main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -844,7 +844,7 @@ static int init_phy(struct net_device *dev)
844844
}
845845

846846
netdev_dbg(dev, "attached to PHY %d UID 0x%08x Link = %d\n",
847-
phydev->addr, phydev->phy_id, phydev->link);
847+
phydev->mdio.addr, phydev->phy_id, phydev->link);
848848

849849
priv->phydev = phydev;
850850
return 0;

drivers/net/ethernet/broadcom/b44.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2305,7 +2305,7 @@ static int b44_register_phy_one(struct b44 *bp)
23052305

23062306
bp->phydev = phydev;
23072307
bp->old_link = 0;
2308-
bp->phy_addr = phydev->addr;
2308+
bp->phy_addr = phydev->mdio.addr;
23092309

23102310
phy_attached_info(phydev);
23112311

drivers/net/ethernet/broadcom/genet/bcmmii.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@ int bcmgenet_mii_probe(struct net_device *dev)
401401
* Ethernet MAC ISRs
402402
*/
403403
if (priv->internal_phy)
404-
priv->mii_bus->irq[phydev->addr] = PHY_IGNORE_INTERRUPT;
404+
priv->mii_bus->irq[phydev->mdio.addr] = PHY_IGNORE_INTERRUPT;
405405

406406
return 0;
407407
}

drivers/net/ethernet/broadcom/sb1250-mac.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2366,8 +2366,8 @@ static int sbmac_mii_probe(struct net_device *dev)
23662366
return -ENXIO;
23672367
}
23682368

2369-
phy_dev = phy_connect(dev, dev_name(&phy_dev->dev), &sbmac_mii_poll,
2370-
PHY_INTERFACE_MODE_GMII);
2369+
phy_dev = phy_connect(dev, dev_name(&phy_dev->mdio.dev),
2370+
&sbmac_mii_poll, PHY_INTERFACE_MODE_GMII);
23712371
if (IS_ERR(phy_dev)) {
23722372
printk(KERN_ERR "%s: could not attach to PHY\n", dev->name);
23732373
return PTR_ERR(phy_dev);

drivers/net/ethernet/freescale/fman/fman_dtsec.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1295,7 +1295,7 @@ int dtsec_init(struct fman_mac *dtsec)
12951295

12961296
err = init(dtsec->regs, dtsec_drv_param, dtsec->phy_if,
12971297
dtsec->max_speed, (u8 *)eth_addr, dtsec->exceptions,
1298-
dtsec->tbiphy->addr);
1298+
dtsec->tbiphy->mdio.addr);
12991299
if (err) {
13001300
free_init_resources(dtsec);
13011301
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)
14341434
dtsec->tbiphy = of_phy_find_device(params->internal_phy_node);
14351435
if (!dtsec->tbiphy) {
14361436
pr_err("of_phy_find_device (TBI PHY) failed\n");
1437-
put_device(&dtsec->tbiphy->dev);
1437+
put_device(&dtsec->tbiphy->mdio.dev);
14381438
goto err_dtsec_drv_param;
14391439
}
14401440

1441-
put_device(&dtsec->tbiphy->dev);
1441+
put_device(&dtsec->tbiphy->mdio.dev);
14421442

14431443
/* Save FMan revision */
14441444
fman_get_revision(dtsec->fm, &dtsec->fm_rev_info);

drivers/net/ethernet/freescale/fman/fman_memac.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1054,15 +1054,15 @@ int memac_init(struct fman_mac *memac)
10541054
* register address space and access each one of 4
10551055
* ports inside QSGMII.
10561056
*/
1057-
phy_addr = memac->pcsphy->addr;
1057+
phy_addr = memac->pcsphy->mdio.addr;
10581058
qsmgii_phy_addr = (u8)((phy_addr << 2) | i);
1059-
memac->pcsphy->addr = qsmgii_phy_addr;
1059+
memac->pcsphy->mdio.addr = qsmgii_phy_addr;
10601060
if (memac->basex_if)
10611061
setup_sgmii_internal_phy_base_x(memac);
10621062
else
10631063
setup_sgmii_internal_phy(memac, fixed_link);
10641064

1065-
memac->pcsphy->addr = phy_addr;
1065+
memac->pcsphy->mdio.addr = phy_addr;
10661066
}
10671067
}
10681068

drivers/net/ethernet/freescale/fs_enet/mac-fec.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ static void restart(struct net_device *dev)
254254
int r;
255255
u32 addrhi, addrlo;
256256

257-
struct mii_bus* mii = fep->phydev->bus;
257+
struct mii_bus *mii = fep->phydev->mdio.bus;
258258
struct fec_info* fec_inf = mii->priv;
259259

260260
r = whack_reset(fep->fec.fecp);

drivers/net/ethernet/freescale/gianfar.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1834,7 +1834,7 @@ static void gfar_configure_serdes(struct net_device *dev)
18341834
* several seconds for it to come back.
18351835
*/
18361836
if (phy_read(tbiphy, MII_BMSR) & BMSR_LSTATUS) {
1837-
put_device(&tbiphy->dev);
1837+
put_device(&tbiphy->mdio.dev);
18381838
return;
18391839
}
18401840

@@ -1849,7 +1849,7 @@ static void gfar_configure_serdes(struct net_device *dev)
18491849
BMCR_ANENABLE | BMCR_ANRESTART | BMCR_FULLDPLX |
18501850
BMCR_SPEED1000);
18511851

1852-
put_device(&tbiphy->dev);
1852+
put_device(&tbiphy->mdio.dev);
18531853
}
18541854

18551855
static int __gfar_is_rx_idle(struct gfar_private *priv)

drivers/net/ethernet/freescale/ucc_geth.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1385,7 +1385,7 @@ static int adjust_enet_interface(struct ucc_geth_private *ugeth)
13851385
value &= ~0x1000; /* Turn off autonegotiation */
13861386
phy_write(tbiphy, ENET_TBI_MII_CR, value);
13871387

1388-
put_device(&tbiphy->dev);
1388+
put_device(&tbiphy->mdio.dev);
13891389
}
13901390

13911391
init_check_frame_length_mode(ug_info->lengthCheckRx, &ug_regs->maccfg2);
@@ -1705,7 +1705,7 @@ static void uec_configure_serdes(struct net_device *dev)
17051705
* several seconds for it to come back.
17061706
*/
17071707
if (phy_read(tbiphy, ENET_TBI_MII_SR) & TBISR_LSTATUS) {
1708-
put_device(&tbiphy->dev);
1708+
put_device(&tbiphy->mdio.dev);
17091709
return;
17101710
}
17111711

drivers/net/ethernet/hisilicon/hns/hns_ethtool.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ static void hns_get_mdix_mode(struct net_device *net_dev,
7171
struct hns_nic_priv *priv = netdev_priv(net_dev);
7272
struct phy_device *phy_dev = priv->phy;
7373

74-
if (!phy_dev || !phy_dev->bus) {
74+
if (!phy_dev || !phy_dev->mdio.bus) {
7575
cmd->eth_tp_mdix_ctrl = ETH_TP_MDI_INVALID;
7676
cmd->eth_tp_mdix = ETH_TP_MDI_INVALID;
7777
return;

drivers/net/ethernet/marvell/mv643xx_eth.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3133,7 +3133,7 @@ static int mv643xx_eth_probe(struct platform_device *pdev)
31333133
if (!mp->phy)
31343134
err = -ENODEV;
31353135
else
3136-
phy_addr_set(mp, mp->phy->addr);
3136+
phy_addr_set(mp, mp->phy->mdio.addr);
31373137
} else if (pd->phy_addr != MV643XX_ETH_PHY_NONE) {
31383138
mp->phy = phy_scan(mp, pd->phy_addr);
31393139

drivers/net/ethernet/marvell/mvneta.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3714,7 +3714,7 @@ static int mvneta_probe(struct platform_device *pdev)
37143714

37153715
mvneta_fixed_link_update(pp, phy);
37163716

3717-
put_device(&phy->dev);
3717+
put_device(&phy->mdio.dev);
37183718
}
37193719

37203720
return 0;

drivers/net/ethernet/smsc/smsc911x.c

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -864,8 +864,8 @@ static int smsc911x_phy_loopbacktest(struct net_device *dev)
864864

865865
for (i = 0; i < 10; i++) {
866866
/* Set PHY to 10/FD, no ANEG, and loopback mode */
867-
smsc911x_mii_write(phy_dev->bus, phy_dev->addr, MII_BMCR,
868-
BMCR_LOOPBACK | BMCR_FULLDPLX);
867+
smsc911x_mii_write(phy_dev->mdio.bus, phy_dev->mdio.addr,
868+
MII_BMCR, BMCR_LOOPBACK | BMCR_FULLDPLX);
869869

870870
/* Enable MAC tx/rx, FD */
871871
spin_lock_irqsave(&pdata->mac_lock, flags);
@@ -893,7 +893,7 @@ static int smsc911x_phy_loopbacktest(struct net_device *dev)
893893
spin_unlock_irqrestore(&pdata->mac_lock, flags);
894894

895895
/* Cancel PHY loopback mode */
896-
smsc911x_mii_write(phy_dev->bus, phy_dev->addr, MII_BMCR, 0);
896+
smsc911x_mii_write(phy_dev->mdio.bus, phy_dev->mdio.addr, MII_BMCR, 0);
897897

898898
smsc911x_reg_write(pdata, TX_CFG, 0);
899899
smsc911x_reg_write(pdata, RX_CFG, 0);
@@ -1021,7 +1021,7 @@ static int smsc911x_mii_probe(struct net_device *dev)
10211021
}
10221022

10231023
SMSC_TRACE(pdata, probe, "PHY: addr %d, phy_id 0x%08X",
1024-
phydev->addr, phydev->phy_id);
1024+
phydev->mdio.addr, phydev->phy_id);
10251025

10261026
ret = phy_connect_direct(dev, phydev, &smsc911x_phy_adjust_link,
10271027
pdata->config.phy_interface);
@@ -1988,7 +1988,8 @@ smsc911x_ethtool_getregs(struct net_device *dev, struct ethtool_regs *regs,
19881988
}
19891989

19901990
for (i = 0; i <= 31; i++)
1991-
data[j++] = smsc911x_mii_read(phy_dev->bus, phy_dev->addr, i);
1991+
data[j++] = smsc911x_mii_read(phy_dev->mdio.bus,
1992+
phy_dev->mdio.addr, i);
19921993
}
19931994

19941995
static void smsc911x_eeprom_enable_access(struct smsc911x_data *pdata)

drivers/net/ethernet/smsc/smsc9420.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,8 @@ smsc9420_ethtool_getregs(struct net_device *dev, struct ethtool_regs *regs,
315315
return;
316316

317317
for (i = 0; i <= 31; i++)
318-
data[j++] = smsc9420_mii_read(phy_dev->bus, phy_dev->addr, i);
318+
data[j++] = smsc9420_mii_read(phy_dev->mdio.bus,
319+
phy_dev->mdio.addr, i);
319320
}
320321

321322
static void smsc9420_eeprom_enable_access(struct smsc9420_pdata *pd)

drivers/net/ethernet/ti/cpsw.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2050,7 +2050,8 @@ static int cpsw_probe_dt(struct cpsw_priv *priv,
20502050
if (!phy_dev)
20512051
return -ENODEV;
20522052
snprintf(slave_data->phy_id, sizeof(slave_data->phy_id),
2053-
PHY_ID_FMT, phy_dev->bus->id, phy_dev->addr);
2053+
PHY_ID_FMT, phy_dev->mdio.bus->id,
2054+
phy_dev->mdio.addr);
20542055
} else if (parp) {
20552056
u32 phyid;
20562057
struct device_node *mdio_node;

drivers/net/ethernet/ti/davinci_mdio.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ static int davinci_mdio_probe(struct platform_device *pdev)
396396
phy = data->bus->phy_map[addr];
397397
if (phy) {
398398
dev_info(dev, "phy[%d]: device %s, driver %s\n",
399-
phy->addr, phydev_name(phy),
399+
phy->mdio.addr, phydev_name(phy),
400400
phy->drv ? phy->drv->name : "unknown");
401401
}
402402
}

drivers/net/ethernet/xilinx/xilinx_emaclite.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -827,7 +827,7 @@ static int xemaclite_mdio_setup(struct net_local *lp, struct device *dev)
827827
dev_info(dev,
828828
"MDIO of the phy is not registered yet\n");
829829
else
830-
put_device(&phydev->dev);
830+
put_device(&phydev->mdio.dev);
831831
return 0;
832832
}
833833

drivers/net/phy/at803x.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ static int at803x_resume(struct phy_device *phydev)
190190

191191
static int at803x_probe(struct phy_device *phydev)
192192
{
193-
struct device *dev = &phydev->dev;
193+
struct device *dev = &phydev->mdio.dev;
194194
struct at803x_priv *priv;
195195
struct gpio_desc *gpiod_reset;
196196

drivers/net/phy/bcm87xx.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@ static int bcm87xx_of_reg_init(struct phy_device *phydev)
4040
const __be32 *paddr_end;
4141
int len, ret;
4242

43-
if (!phydev->dev.of_node)
43+
if (!phydev->mdio.dev.of_node)
4444
return 0;
4545

46-
paddr = of_get_property(phydev->dev.of_node,
46+
paddr = of_get_property(phydev->mdio.dev.of_node,
4747
"broadcom,c45-reg-init", &len);
4848
if (!paddr)
4949
return 0;

0 commit comments

Comments
 (0)