mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-26 11:02:42 -04:00
net: fman: Remove internal_phy_node from params
This member was used to pass the phy node between mac_probe and the mac-specific initialization function. But now that the phy node is gotten in the initialization function, this parameter does not serve a purpose. Remove it, and do the grabbing of the node/grabbing of the phy in the same place. Signed-off-by: Sean Anderson <sean.anderson@seco.com> Acked-by: Camelia Groza <camelia.groza@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
4498862710
commit
45fa34bfaa
@@ -1463,26 +1463,11 @@ static struct fman_mac *dtsec_config(struct fman_mac_params *params)
|
||||
dtsec->fm = params->fm;
|
||||
dtsec->basex_if = params->basex_if;
|
||||
|
||||
if (!params->internal_phy_node) {
|
||||
pr_err("TBI PHY node is not available\n");
|
||||
goto err_dtsec_drv_param;
|
||||
}
|
||||
|
||||
dtsec->tbiphy = of_phy_find_device(params->internal_phy_node);
|
||||
if (!dtsec->tbiphy) {
|
||||
pr_err("of_phy_find_device (TBI PHY) failed\n");
|
||||
goto err_dtsec_drv_param;
|
||||
}
|
||||
|
||||
put_device(&dtsec->tbiphy->mdio.dev);
|
||||
|
||||
/* Save FMan revision */
|
||||
fman_get_revision(dtsec->fm, &dtsec->fm_rev_info);
|
||||
|
||||
return dtsec;
|
||||
|
||||
err_dtsec_drv_param:
|
||||
kfree(dtsec_drv_param);
|
||||
err_dtsec:
|
||||
kfree(dtsec);
|
||||
return NULL;
|
||||
@@ -1494,6 +1479,7 @@ int dtsec_initialization(struct mac_device *mac_dev,
|
||||
int err;
|
||||
struct fman_mac_params params;
|
||||
struct fman_mac *dtsec;
|
||||
struct device_node *phy_node;
|
||||
|
||||
mac_dev->set_promisc = dtsec_set_promiscuous;
|
||||
mac_dev->change_addr = dtsec_modify_mac_address;
|
||||
@@ -1512,7 +1498,6 @@ int dtsec_initialization(struct mac_device *mac_dev,
|
||||
err = set_fman_mac_params(mac_dev, ¶ms);
|
||||
if (err)
|
||||
goto _return;
|
||||
params.internal_phy_node = of_parse_phandle(mac_node, "tbi-handle", 0);
|
||||
|
||||
mac_dev->fman_mac = dtsec_config(¶ms);
|
||||
if (!mac_dev->fman_mac) {
|
||||
@@ -1523,6 +1508,22 @@ int dtsec_initialization(struct mac_device *mac_dev,
|
||||
dtsec = mac_dev->fman_mac;
|
||||
dtsec->dtsec_drv_param->maximum_frame = fman_get_max_frm();
|
||||
dtsec->dtsec_drv_param->tx_pad_crc = true;
|
||||
|
||||
phy_node = of_parse_phandle(mac_node, "tbi-handle", 0);
|
||||
if (!phy_node) {
|
||||
pr_err("TBI PHY node is not available\n");
|
||||
err = -EINVAL;
|
||||
goto _return_fm_mac_free;
|
||||
}
|
||||
|
||||
dtsec->tbiphy = of_phy_find_device(phy_node);
|
||||
if (!dtsec->tbiphy) {
|
||||
pr_err("of_phy_find_device (TBI PHY) failed\n");
|
||||
err = -EINVAL;
|
||||
goto _return_fm_mac_free;
|
||||
}
|
||||
put_device(&dtsec->tbiphy->mdio.dev);
|
||||
|
||||
err = dtsec_init(dtsec);
|
||||
if (err < 0)
|
||||
goto _return_fm_mac_free;
|
||||
|
||||
@@ -190,8 +190,6 @@ struct fman_mac_params {
|
||||
* synchronize with far-end phy at 10Mbps, 100Mbps or 1000Mbps
|
||||
*/
|
||||
bool basex_if;
|
||||
/* Pointer to TBI/PCS PHY node, used for TBI/PCS PHY access */
|
||||
struct device_node *internal_phy_node;
|
||||
};
|
||||
|
||||
struct eth_hash_t {
|
||||
|
||||
@@ -1150,22 +1150,6 @@ static struct fman_mac *memac_config(struct fman_mac_params *params)
|
||||
/* Save FMan revision */
|
||||
fman_get_revision(memac->fm, &memac->fm_rev_info);
|
||||
|
||||
if (memac->phy_if == PHY_INTERFACE_MODE_SGMII ||
|
||||
memac->phy_if == PHY_INTERFACE_MODE_QSGMII) {
|
||||
if (!params->internal_phy_node) {
|
||||
pr_err("PCS PHY node is not available\n");
|
||||
memac_free(memac);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
memac->pcsphy = of_phy_find_device(params->internal_phy_node);
|
||||
if (!memac->pcsphy) {
|
||||
pr_err("of_phy_find_device (PCS PHY) failed\n");
|
||||
memac_free(memac);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return memac;
|
||||
}
|
||||
|
||||
@@ -1173,6 +1157,7 @@ int memac_initialization(struct mac_device *mac_dev,
|
||||
struct device_node *mac_node)
|
||||
{
|
||||
int err;
|
||||
struct device_node *phy_node;
|
||||
struct fman_mac_params params;
|
||||
struct fixed_phy_status *fixed_link;
|
||||
struct fman_mac *memac;
|
||||
@@ -1194,7 +1179,6 @@ int memac_initialization(struct mac_device *mac_dev,
|
||||
err = set_fman_mac_params(mac_dev, ¶ms);
|
||||
if (err)
|
||||
goto _return;
|
||||
params.internal_phy_node = of_parse_phandle(mac_node, "pcsphy-handle", 0);
|
||||
|
||||
if (params.max_speed == SPEED_10000)
|
||||
params.phy_if = PHY_INTERFACE_MODE_XGMII;
|
||||
@@ -1208,6 +1192,22 @@ int memac_initialization(struct mac_device *mac_dev,
|
||||
memac = mac_dev->fman_mac;
|
||||
memac->memac_drv_param->max_frame_length = fman_get_max_frm();
|
||||
memac->memac_drv_param->reset_on_init = true;
|
||||
if (memac->phy_if == PHY_INTERFACE_MODE_SGMII ||
|
||||
memac->phy_if == PHY_INTERFACE_MODE_QSGMII) {
|
||||
phy_node = of_parse_phandle(mac_node, "pcsphy-handle", 0);
|
||||
if (!phy_node) {
|
||||
pr_err("PCS PHY node is not available\n");
|
||||
err = -EINVAL;
|
||||
goto _return_fm_mac_free;
|
||||
}
|
||||
|
||||
memac->pcsphy = of_phy_find_device(phy_node);
|
||||
if (!memac->pcsphy) {
|
||||
pr_err("of_phy_find_device (PCS PHY) failed\n");
|
||||
err = -EINVAL;
|
||||
goto _return_fm_mac_free;
|
||||
}
|
||||
}
|
||||
|
||||
if (!mac_dev->phy_node && of_phy_is_fixed_link(mac_node)) {
|
||||
struct phy_device *phy;
|
||||
|
||||
Reference in New Issue
Block a user