Skip to content

Commit 62469c7

Browse files
Philippe Reynesdavem330
authored andcommitted
net: ethernet: bcmgenet: use phydev from struct net_device
The private structure contain a pointer to phydev, but the structure net_device already contain such pointer. So we can remove the pointer phy in the private structure, and update the driver to use the one contained in struct net_device. Signed-off-by: Philippe Reynes <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 4694e6e commit 62469c7

File tree

3 files changed

+31
-39
lines changed

3 files changed

+31
-39
lines changed

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

Lines changed: 20 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -453,29 +453,25 @@ static inline void bcmgenet_rdma_ring_writel(struct bcmgenet_priv *priv,
453453
static int bcmgenet_get_settings(struct net_device *dev,
454454
struct ethtool_cmd *cmd)
455455
{
456-
struct bcmgenet_priv *priv = netdev_priv(dev);
457-
458456
if (!netif_running(dev))
459457
return -EINVAL;
460458

461-
if (!priv->phydev)
459+
if (!dev->phydev)
462460
return -ENODEV;
463461

464-
return phy_ethtool_gset(priv->phydev, cmd);
462+
return phy_ethtool_gset(dev->phydev, cmd);
465463
}
466464

467465
static int bcmgenet_set_settings(struct net_device *dev,
468466
struct ethtool_cmd *cmd)
469467
{
470-
struct bcmgenet_priv *priv = netdev_priv(dev);
471-
472468
if (!netif_running(dev))
473469
return -EINVAL;
474470

475-
if (!priv->phydev)
471+
if (!dev->phydev)
476472
return -ENODEV;
477473

478-
return phy_ethtool_sset(priv->phydev, cmd);
474+
return phy_ethtool_sset(dev->phydev, cmd);
479475
}
480476

481477
static int bcmgenet_set_rx_csum(struct net_device *dev,
@@ -941,7 +937,7 @@ static int bcmgenet_get_eee(struct net_device *dev, struct ethtool_eee *e)
941937
e->eee_active = p->eee_active;
942938
e->tx_lpi_timer = bcmgenet_umac_readl(priv, UMAC_EEE_LPI_TIMER);
943939

944-
return phy_ethtool_get_eee(priv->phydev, e);
940+
return phy_ethtool_get_eee(dev->phydev, e);
945941
}
946942

947943
static int bcmgenet_set_eee(struct net_device *dev, struct ethtool_eee *e)
@@ -958,7 +954,7 @@ static int bcmgenet_set_eee(struct net_device *dev, struct ethtool_eee *e)
958954
if (!p->eee_enabled) {
959955
bcmgenet_eee_enable_set(dev, false);
960956
} else {
961-
ret = phy_init_eee(priv->phydev, 0);
957+
ret = phy_init_eee(dev->phydev, 0);
962958
if (ret) {
963959
netif_err(priv, hw, dev, "EEE initialization failed\n");
964960
return ret;
@@ -968,14 +964,12 @@ static int bcmgenet_set_eee(struct net_device *dev, struct ethtool_eee *e)
968964
bcmgenet_eee_enable_set(dev, true);
969965
}
970966

971-
return phy_ethtool_set_eee(priv->phydev, e);
967+
return phy_ethtool_set_eee(dev->phydev, e);
972968
}
973969

974970
static int bcmgenet_nway_reset(struct net_device *dev)
975971
{
976-
struct bcmgenet_priv *priv = netdev_priv(dev);
977-
978-
return genphy_restart_aneg(priv->phydev);
972+
return genphy_restart_aneg(dev->phydev);
979973
}
980974

981975
/* standard ethtool support functions. */
@@ -1002,12 +996,13 @@ static struct ethtool_ops bcmgenet_ethtool_ops = {
1002996
static int bcmgenet_power_down(struct bcmgenet_priv *priv,
1003997
enum bcmgenet_power_mode mode)
1004998
{
999+
struct net_device *ndev = priv->dev;
10051000
int ret = 0;
10061001
u32 reg;
10071002

10081003
switch (mode) {
10091004
case GENET_POWER_CABLE_SENSE:
1010-
phy_detach(priv->phydev);
1005+
phy_detach(ndev->phydev);
10111006
break;
10121007

10131008
case GENET_POWER_WOL_MAGIC:
@@ -1068,7 +1063,6 @@ static void bcmgenet_power_up(struct bcmgenet_priv *priv,
10681063
/* ioctl handle special commands that are not present in ethtool. */
10691064
static int bcmgenet_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
10701065
{
1071-
struct bcmgenet_priv *priv = netdev_priv(dev);
10721066
int val = 0;
10731067

10741068
if (!netif_running(dev))
@@ -1078,10 +1072,10 @@ static int bcmgenet_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
10781072
case SIOCGMIIPHY:
10791073
case SIOCGMIIREG:
10801074
case SIOCSMIIREG:
1081-
if (!priv->phydev)
1075+
if (!dev->phydev)
10821076
val = -ENODEV;
10831077
else
1084-
val = phy_mii_ioctl(priv->phydev, rq, cmd);
1078+
val = phy_mii_ioctl(dev->phydev, rq, cmd);
10851079
break;
10861080

10871081
default:
@@ -2464,6 +2458,7 @@ static void bcmgenet_irq_task(struct work_struct *work)
24642458
{
24652459
struct bcmgenet_priv *priv = container_of(
24662460
work, struct bcmgenet_priv, bcmgenet_irq_work);
2461+
struct net_device *ndev = priv->dev;
24672462

24682463
netif_dbg(priv, intr, priv->dev, "%s\n", __func__);
24692464

@@ -2476,7 +2471,7 @@ static void bcmgenet_irq_task(struct work_struct *work)
24762471

24772472
/* Link UP/DOWN event */
24782473
if (priv->irq0_stat & UMAC_IRQ_LINK_EVENT) {
2479-
phy_mac_interrupt(priv->phydev,
2474+
phy_mac_interrupt(ndev->phydev,
24802475
!!(priv->irq0_stat & UMAC_IRQ_LINK_UP));
24812476
priv->irq0_stat &= ~UMAC_IRQ_LINK_EVENT;
24822477
}
@@ -2838,7 +2833,7 @@ static void bcmgenet_netif_start(struct net_device *dev)
28382833
/* Monitor link interrupts now */
28392834
bcmgenet_link_intr_enable(priv);
28402835

2841-
phy_start(priv->phydev);
2836+
phy_start(dev->phydev);
28422837
}
28432838

28442839
static int bcmgenet_open(struct net_device *dev)
@@ -2937,7 +2932,7 @@ static void bcmgenet_netif_stop(struct net_device *dev)
29372932
struct bcmgenet_priv *priv = netdev_priv(dev);
29382933

29392934
netif_tx_stop_all_queues(dev);
2940-
phy_stop(priv->phydev);
2935+
phy_stop(dev->phydev);
29412936
bcmgenet_intr_disable(priv);
29422937
bcmgenet_disable_rx_napi(priv);
29432938
bcmgenet_disable_tx_napi(priv);
@@ -2963,7 +2958,7 @@ static int bcmgenet_close(struct net_device *dev)
29632958
bcmgenet_netif_stop(dev);
29642959

29652960
/* Really kill the PHY state machine and disconnect from it */
2966-
phy_disconnect(priv->phydev);
2961+
phy_disconnect(dev->phydev);
29672962

29682963
/* Disable MAC receive */
29692964
umac_enable_set(priv, CMD_RX_EN, false);
@@ -3522,7 +3517,7 @@ static int bcmgenet_suspend(struct device *d)
35223517

35233518
bcmgenet_netif_stop(dev);
35243519

3525-
phy_suspend(priv->phydev);
3520+
phy_suspend(dev->phydev);
35263521

35273522
netif_device_detach(dev);
35283523

@@ -3586,7 +3581,7 @@ static int bcmgenet_resume(struct device *d)
35863581
if (priv->wolopts)
35873582
clk_disable_unprepare(priv->clk_wol);
35883583

3589-
phy_init_hw(priv->phydev);
3584+
phy_init_hw(dev->phydev);
35903585
/* Speed settings must be restored */
35913586
bcmgenet_mii_config(priv->dev);
35923587

@@ -3619,7 +3614,7 @@ static int bcmgenet_resume(struct device *d)
36193614

36203615
netif_device_attach(dev);
36213616

3622-
phy_resume(priv->phydev);
3617+
phy_resume(dev->phydev);
36233618

36243619
if (priv->eee.eee_enabled)
36253620
bcmgenet_eee_enable_set(dev, true);

drivers/net/ethernet/broadcom/genet/bcmgenet.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -597,7 +597,6 @@ struct bcmgenet_priv {
597597

598598
/* MDIO bus variables */
599599
wait_queue_head_t wq;
600-
struct phy_device *phydev;
601600
bool internal_phy;
602601
struct device_node *phy_dn;
603602
struct device_node *mdio_dn;

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

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ static int bcmgenet_mii_write(struct mii_bus *bus, int phy_id,
8686
void bcmgenet_mii_setup(struct net_device *dev)
8787
{
8888
struct bcmgenet_priv *priv = netdev_priv(dev);
89-
struct phy_device *phydev = priv->phydev;
89+
struct phy_device *phydev = dev->phydev;
9090
u32 reg, cmd_bits = 0;
9191
bool status_changed = false;
9292

@@ -183,9 +183,9 @@ void bcmgenet_mii_reset(struct net_device *dev)
183183
if (GENET_IS_V4(priv))
184184
return;
185185

186-
if (priv->phydev) {
187-
phy_init_hw(priv->phydev);
188-
phy_start_aneg(priv->phydev);
186+
if (dev->phydev) {
187+
phy_init_hw(dev->phydev);
188+
phy_start_aneg(dev->phydev);
189189
}
190190
}
191191

@@ -236,6 +236,7 @@ static void bcmgenet_internal_phy_setup(struct net_device *dev)
236236

237237
static void bcmgenet_moca_phy_setup(struct bcmgenet_priv *priv)
238238
{
239+
struct net_device *ndev = priv->dev;
239240
u32 reg;
240241

241242
/* Speed settings are set in bcmgenet_mii_setup() */
@@ -244,14 +245,14 @@ static void bcmgenet_moca_phy_setup(struct bcmgenet_priv *priv)
244245
bcmgenet_sys_writel(priv, reg, SYS_PORT_CTRL);
245246

246247
if (priv->hw_params->flags & GENET_HAS_MOCA_LINK_DET)
247-
fixed_phy_set_link_update(priv->phydev,
248+
fixed_phy_set_link_update(ndev->phydev,
248249
bcmgenet_fixed_phy_link_update);
249250
}
250251

251252
int bcmgenet_mii_config(struct net_device *dev)
252253
{
253254
struct bcmgenet_priv *priv = netdev_priv(dev);
254-
struct phy_device *phydev = priv->phydev;
255+
struct phy_device *phydev = dev->phydev;
255256
struct device *kdev = &priv->pdev->dev;
256257
const char *phy_name = NULL;
257258
u32 id_mode_dis = 0;
@@ -302,7 +303,7 @@ int bcmgenet_mii_config(struct net_device *dev)
302303
* capabilities, use that knowledge to also configure the
303304
* Reverse MII interface correctly.
304305
*/
305-
if ((priv->phydev->supported & PHY_BASIC_FEATURES) ==
306+
if ((phydev->supported & PHY_BASIC_FEATURES) ==
306307
PHY_BASIC_FEATURES)
307308
port_ctrl = PORT_MODE_EXT_RVMII_25;
308309
else
@@ -371,7 +372,7 @@ int bcmgenet_mii_probe(struct net_device *dev)
371372
return -ENODEV;
372373
}
373374
} else {
374-
phydev = priv->phydev;
375+
phydev = dev->phydev;
375376
phydev->dev_flags = phy_flags;
376377

377378
ret = phy_connect_direct(dev, phydev, bcmgenet_mii_setup,
@@ -382,16 +383,14 @@ int bcmgenet_mii_probe(struct net_device *dev)
382383
}
383384
}
384385

385-
priv->phydev = phydev;
386-
387386
/* Configure port multiplexer based on what the probed PHY device since
388387
* reading the 'max-speed' property determines the maximum supported
389388
* PHY speed which is needed for bcmgenet_mii_config() to configure
390389
* things appropriately.
391390
*/
392391
ret = bcmgenet_mii_config(dev);
393392
if (ret) {
394-
phy_disconnect(priv->phydev);
393+
phy_disconnect(phydev);
395394
return ret;
396395
}
397396

@@ -401,7 +400,7 @@ int bcmgenet_mii_probe(struct net_device *dev)
401400
* Ethernet MAC ISRs
402401
*/
403402
if (priv->internal_phy)
404-
priv->phydev->irq = PHY_IGNORE_INTERRUPT;
403+
phydev->irq = PHY_IGNORE_INTERRUPT;
405404

406405
return 0;
407406
}
@@ -606,7 +605,6 @@ static int bcmgenet_mii_pd_init(struct bcmgenet_priv *priv)
606605

607606
}
608607

609-
priv->phydev = phydev;
610608
priv->phy_interface = pd->phy_interface;
611609

612610
return 0;

0 commit comments

Comments
 (0)