mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 03:24:19 +02:00
Merge branch 'dpaa2-eth-of_node'
Ioana Ciornei says: ==================== dpaa2-eth: setup the of_node This patch set allows DSA to work with a DPAA2 master device by setting up the of_node to point to the corresponding MAC DTS node, so that of_find_net_device_by_node() can find it. As an added benefit, udev rules can now be used to create a naming scheme based on the physical MAC. The second patch renames the debugfs directory to use the DPNI name instead of the netdev name, since the latter can be changed after probe time. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
b12a6b7193
|
|
@ -121,10 +121,14 @@ DEFINE_SHOW_ATTRIBUTE(dpaa2_dbg_ch);
|
|||
|
||||
void dpaa2_dbg_add(struct dpaa2_eth_priv *priv)
|
||||
{
|
||||
struct fsl_mc_device *dpni_dev;
|
||||
struct dentry *dir;
|
||||
char name[10];
|
||||
|
||||
/* Create a directory for the interface */
|
||||
dir = debugfs_create_dir(priv->net_dev->name, dpaa2_dbg_root);
|
||||
dpni_dev = to_fsl_mc_device(priv->net_dev->dev.parent);
|
||||
snprintf(name, 10, "dpni.%d", dpni_dev->obj_desc.id);
|
||||
dir = debugfs_create_dir(name, dpaa2_dbg_root);
|
||||
priv->dbg.dir = dir;
|
||||
|
||||
/* per-cpu stats file */
|
||||
|
|
|
|||
|
|
@ -289,17 +289,15 @@ int dpaa2_mac_connect(struct dpaa2_mac *mac)
|
|||
|
||||
mac->if_link_type = mac->attr.link_type;
|
||||
|
||||
dpmac_node = dpaa2_mac_get_node(mac->attr.id);
|
||||
dpmac_node = mac->of_node;
|
||||
if (!dpmac_node) {
|
||||
netdev_err(net_dev, "No dpmac@%d node found.\n", mac->attr.id);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
err = dpaa2_mac_get_if_mode(dpmac_node, mac->attr);
|
||||
if (err < 0) {
|
||||
err = -EINVAL;
|
||||
goto err_put_node;
|
||||
}
|
||||
if (err < 0)
|
||||
return -EINVAL;
|
||||
mac->if_mode = err;
|
||||
|
||||
/* The MAC does not have the capability to add RGMII delays so
|
||||
|
|
@ -311,8 +309,7 @@ int dpaa2_mac_connect(struct dpaa2_mac *mac)
|
|||
mac->if_mode == PHY_INTERFACE_MODE_RGMII_RXID ||
|
||||
mac->if_mode == PHY_INTERFACE_MODE_RGMII_TXID)) {
|
||||
netdev_err(net_dev, "RGMII delay not supported\n");
|
||||
err = -EINVAL;
|
||||
goto err_put_node;
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if ((mac->attr.link_type == DPMAC_LINK_TYPE_PHY &&
|
||||
|
|
@ -320,7 +317,7 @@ int dpaa2_mac_connect(struct dpaa2_mac *mac)
|
|||
mac->attr.link_type == DPMAC_LINK_TYPE_BACKPLANE) {
|
||||
err = dpaa2_pcs_create(mac, dpmac_node, mac->attr.id);
|
||||
if (err)
|
||||
goto err_put_node;
|
||||
return err;
|
||||
}
|
||||
|
||||
mac->phylink_config.dev = &net_dev->dev;
|
||||
|
|
@ -344,16 +341,12 @@ int dpaa2_mac_connect(struct dpaa2_mac *mac)
|
|||
goto err_phylink_destroy;
|
||||
}
|
||||
|
||||
of_node_put(dpmac_node);
|
||||
|
||||
return 0;
|
||||
|
||||
err_phylink_destroy:
|
||||
phylink_destroy(mac->phylink);
|
||||
err_pcs_destroy:
|
||||
dpaa2_pcs_destroy(mac);
|
||||
err_put_node:
|
||||
of_node_put(dpmac_node);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
|
@ -388,6 +381,12 @@ int dpaa2_mac_open(struct dpaa2_mac *mac)
|
|||
goto err_close_dpmac;
|
||||
}
|
||||
|
||||
/* Find the device node representing the MAC device and link the device
|
||||
* behind the associated netdev to it.
|
||||
*/
|
||||
mac->of_node = dpaa2_mac_get_node(mac->attr.id);
|
||||
net_dev->dev.of_node = mac->of_node;
|
||||
|
||||
return 0;
|
||||
|
||||
err_close_dpmac:
|
||||
|
|
@ -400,6 +399,8 @@ void dpaa2_mac_close(struct dpaa2_mac *mac)
|
|||
struct fsl_mc_device *dpmac_dev = mac->mc_dev;
|
||||
|
||||
dpmac_close(mac->mc_io, 0, dpmac_dev->mc_handle);
|
||||
if (mac->of_node)
|
||||
of_node_put(mac->of_node);
|
||||
}
|
||||
|
||||
static char dpaa2_mac_ethtool_stats[][ETH_GSTRING_LEN] = {
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ struct dpaa2_mac {
|
|||
phy_interface_t if_mode;
|
||||
enum dpmac_link_type if_link_type;
|
||||
struct lynx_pcs *pcs;
|
||||
struct device_node *of_node;
|
||||
};
|
||||
|
||||
bool dpaa2_mac_is_type_fixed(struct fsl_mc_device *dpmac_dev,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user