[U-Boot] [PATCH v3 2/6] driver: net: fsl-mc: remove unused strcture elements
Pankaj Bansal
pankaj.bansal at nxp.com
Wed Oct 10 08:27:59 UTC 2018
The phydev structure is present in both ldpaa_eth_priv and
wriop_dpmac_info. the phydev in wriop_dpmac_info is not being used
As the phydev is created based on phy_addr and bus members of
wriop_dpmac_info, it is appropriate to keep phydev in wriop_dpmac_info.
Also phy_regs is not being used, therefore remove it
Signed-off-by: Pankaj Bansal <pankaj.bansal at nxp.com>
Acked-by: Joe Hershberger <joe.hershberger at ni.com>
---
Notes:
V3:
- No change
V2:
- change (phydev && bus != NULL) to (phydev && bus)
- after free phydev just pass NULL into wriop_set_phy_dev()
drivers/net/ldpaa_eth/ldpaa_eth.c | 56 +++++++++++++++------------
drivers/net/ldpaa_eth/ldpaa_eth.h | 1 -
drivers/net/ldpaa_eth/ldpaa_wriop.c | 2 +
include/fsl-mc/ldpaa_wriop.h | 1 -
4 files changed, 33 insertions(+), 27 deletions(-)
diff --git a/drivers/net/ldpaa_eth/ldpaa_eth.c b/drivers/net/ldpaa_eth/ldpaa_eth.c
index 82a684bea2..ca3459cc33 100644
--- a/drivers/net/ldpaa_eth/ldpaa_eth.c
+++ b/drivers/net/ldpaa_eth/ldpaa_eth.c
@@ -35,7 +35,7 @@ static int init_phy(struct eth_device *dev)
return -1;
}
- priv->phydev = phydev;
+ wriop_set_phy_dev(priv->dpmac_id, phydev);
return phy_config(phydev);
}
@@ -388,6 +388,7 @@ static int ldpaa_eth_open(struct eth_device *net_dev, bd_t *bd)
struct mii_dev *bus;
phy_interface_t enet_if;
struct dpni_queue d_queue;
+ struct phy_device *phydev = NULL;
if (net_dev->state == ETH_STATE_ACTIVE)
return 0;
@@ -408,38 +409,41 @@ static int ldpaa_eth_open(struct eth_device *net_dev, bd_t *bd)
goto err_dpmac_setup;
#ifdef CONFIG_PHYLIB
- if (priv->phydev) {
- err = phy_startup(priv->phydev);
+ phydev = wriop_get_phy_dev(priv->dpmac_id);
+ if (phydev) {
+ err = phy_startup(phydev);
if (err) {
printf("%s: Could not initialize\n",
- priv->phydev->dev->name);
+ phydev->dev->name);
goto err_dpmac_bind;
}
}
#else
- priv->phydev = (struct phy_device *)malloc(sizeof(struct phy_device));
- memset(priv->phydev, 0, sizeof(struct phy_device));
+ phydev = (struct phy_device *)malloc(sizeof(struct phy_device));
+ memset(phydev, 0, sizeof(struct phy_device));
+ wriop_set_phy_dev(priv->dpmac_id, phydev);
- priv->phydev->speed = SPEED_1000;
- priv->phydev->link = 1;
- priv->phydev->duplex = DUPLEX_FULL;
+ phydev->speed = SPEED_1000;
+ phydev->link = 1;
+ phydev->duplex = DUPLEX_FULL;
#endif
bus = wriop_get_mdio(priv->dpmac_id);
enet_if = wriop_get_enet_if(priv->dpmac_id);
if ((bus == NULL) &&
(enet_if == PHY_INTERFACE_MODE_XGMII)) {
- priv->phydev = (struct phy_device *)
+ phydev = (struct phy_device *)
malloc(sizeof(struct phy_device));
- memset(priv->phydev, 0, sizeof(struct phy_device));
+ memset(phydev, 0, sizeof(struct phy_device));
+ wriop_set_phy_dev(priv->dpmac_id, phydev);
- priv->phydev->speed = SPEED_10000;
- priv->phydev->link = 1;
- priv->phydev->duplex = DUPLEX_FULL;
+ phydev->speed = SPEED_10000;
+ phydev->link = 1;
+ phydev->duplex = DUPLEX_FULL;
}
- if (!priv->phydev->link) {
- printf("%s: No link.\n", priv->phydev->dev->name);
+ if (!phydev->link) {
+ printf("%s: No link.\n", phydev->dev->name);
err = -1;
goto err_dpmac_bind;
}
@@ -476,17 +480,17 @@ static int ldpaa_eth_open(struct eth_device *net_dev, bd_t *bd)
return err;
}
- dpmac_link_state.rate = priv->phydev->speed;
+ dpmac_link_state.rate = phydev->speed;
- if (priv->phydev->autoneg == AUTONEG_DISABLE)
+ if (phydev->autoneg == AUTONEG_DISABLE)
dpmac_link_state.options &= ~DPMAC_LINK_OPT_AUTONEG;
else
dpmac_link_state.options |= DPMAC_LINK_OPT_AUTONEG;
- if (priv->phydev->duplex == DUPLEX_HALF)
+ if (phydev->duplex == DUPLEX_HALF)
dpmac_link_state.options |= DPMAC_LINK_OPT_HALF_DUPLEX;
- dpmac_link_state.up = priv->phydev->link;
+ dpmac_link_state.up = phydev->link;
err = dpmac_set_link_state(dflt_mc_io, MC_CMD_NO_FLAGS,
priv->dpmac_handle, &dpmac_link_state);
@@ -530,7 +534,7 @@ static int ldpaa_eth_open(struct eth_device *net_dev, bd_t *bd)
goto err_qdid;
}
- return priv->phydev->link;
+ return phydev->link;
err_qdid:
err_get_queue:
@@ -556,6 +560,7 @@ static void ldpaa_eth_stop(struct eth_device *net_dev)
#ifdef CONFIG_PHYLIB
struct mii_dev *bus = wriop_get_mdio(priv->dpmac_id);
#endif
+ struct phy_device *phydev = NULL;
if ((net_dev->state == ETH_STATE_PASSIVE) ||
(net_dev->state == ETH_STATE_INIT))
@@ -588,11 +593,12 @@ static void ldpaa_eth_stop(struct eth_device *net_dev)
printf("dpni_disable() failed\n");
#ifdef CONFIG_PHYLIB
- if (priv->phydev && bus != NULL)
- phy_shutdown(priv->phydev);
+ phydev = wriop_get_phy_dev(priv->dpmac_id);
+ if (phydev && bus)
+ phy_shutdown(phydev);
else {
- free(priv->phydev);
- priv->phydev = NULL;
+ free(phydev);
+ wriop_set_phy_dev(priv->dpmac_id, NULL);
}
#endif
diff --git a/drivers/net/ldpaa_eth/ldpaa_eth.h b/drivers/net/ldpaa_eth/ldpaa_eth.h
index ee784a55ee..3f9154b5bb 100644
--- a/drivers/net/ldpaa_eth/ldpaa_eth.h
+++ b/drivers/net/ldpaa_eth/ldpaa_eth.h
@@ -127,7 +127,6 @@ struct ldpaa_eth_priv {
uint16_t tx_flow_id;
enum ldpaa_eth_type type; /* 1G or 10G ethernet */
- struct phy_device *phydev;
};
struct dprc_endpoint dpmac_endpoint;
diff --git a/drivers/net/ldpaa_eth/ldpaa_wriop.c b/drivers/net/ldpaa_eth/ldpaa_wriop.c
index 0731a795c8..afbb1ca91e 100644
--- a/drivers/net/ldpaa_eth/ldpaa_wriop.c
+++ b/drivers/net/ldpaa_eth/ldpaa_wriop.c
@@ -26,6 +26,7 @@ void wriop_init_dpmac(int sd, int dpmac_id, int lane_prtcl)
dpmac_info[dpmac_id].enabled = 0;
dpmac_info[dpmac_id].id = 0;
dpmac_info[dpmac_id].phy_addr = -1;
+ dpmac_info[dpmac_id].phydev = NULL;
dpmac_info[dpmac_id].enet_if = PHY_INTERFACE_MODE_NONE;
enet_if = wriop_dpmac_enet_if(dpmac_id, lane_prtcl);
@@ -42,6 +43,7 @@ void wriop_init_dpmac_enet_if(int dpmac_id, phy_interface_t enet_if)
dpmac_info[dpmac_id].id = dpmac_id;
dpmac_info[dpmac_id].phy_addr = -1;
dpmac_info[dpmac_id].enet_if = enet_if;
+ dpmac_info[dpmac_id].phydev = NULL;
}
diff --git a/include/fsl-mc/ldpaa_wriop.h b/include/fsl-mc/ldpaa_wriop.h
index 07e5130264..8971c6c55b 100644
--- a/include/fsl-mc/ldpaa_wriop.h
+++ b/include/fsl-mc/ldpaa_wriop.h
@@ -41,7 +41,6 @@ struct wriop_dpmac_info {
u8 id;
u8 board_mux;
int phy_addr;
- void *phy_regs;
phy_interface_t enet_if;
struct phy_device *phydev;
struct mii_dev *bus;
--
2.17.1
More information about the U-Boot
mailing list