There are repeated instances of:
fwnode = priv->plat->port_node;
if (!fwnode)
fwnode = dev_fwnode(priv->device);
However, the only place that ->port_node is set is
stmmac_probe_config_dt():
struct device_node *np = pdev->dev.of_node;
...
/* PHYLINK automatically parses the phy-handle property */
plat->port_node = of_fwnode_handle(np);
which is equivalent to dev_fwnode(&pdev->dev) and, as priv->device
will be &pdev->dev, is also equivalent to dev_fwnode(priv->device).
Thus, plat_dat->port_node doesn't provide any extra benefit over
using dev_fwnode(priv->device) directly.
There is one case where port_node is used directly, which can be
found in stmmac_pcs_setup(). This may cause a change of behaviour
as PCI drivers do not populate plat_dat->port_node, but
dev_fwnode(priv->device) may be valid. PCI-based stmmac should
be tested.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://patch.msgid.link/E1vvuX3-0000000Avme-3oej@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
xpcs_get_an_mode(priv->hw->xpcs, mode) == DW_AN_C73)
return 0;
- fwnode = priv->plat->port_node;
- if (!fwnode)
- fwnode = dev_fwnode(priv->device);
-
+ fwnode = dev_fwnode(priv->device);
if (fwnode)
phy_fwnode = fwnode_get_phy_node(fwnode);
else
{
struct stmmac_mdio_bus_data *mdio_bus_data;
struct phylink_config *config;
- struct fwnode_handle *fwnode;
struct phylink_pcs *pcs;
struct phylink *phylink;
config->wol_mac_support |= WAKE_MAGIC;
}
- fwnode = priv->plat->port_node;
- if (!fwnode)
- fwnode = dev_fwnode(priv->device);
-
- phylink = phylink_create(config, fwnode, priv->plat->phy_interface,
+ phylink = phylink_create(config, dev_fwnode(priv->device),
+ priv->plat->phy_interface,
&stmmac_phylink_mac_ops);
if (IS_ERR(phylink))
return PTR_ERR(phylink);
struct dw_xpcs *xpcs = NULL;
int addr, ret;
- devnode = priv->plat->port_node;
+ devnode = dev_fwnode(priv->device);
if (priv->plat->pcs_init) {
ret = priv->plat->pcs_init(priv);
stmmac_xgmac2_mdio_read_c45(new_bus, 0, 0, 0);
/* If fixed-link is set, skip PHY scanning */
- fwnode = priv->plat->port_node;
- if (!fwnode)
- fwnode = dev_fwnode(priv->device);
-
+ fwnode = dev_fwnode(priv->device);
if (fwnode) {
fixed_node = fwnode_get_named_child_node(fwnode, "fixed-link");
if (fixed_node) {
* they are not converted to phylink. */
plat->phy_node = of_parse_phandle(np, "phy-handle", 0);
- /* PHYLINK automatically parses the phy-handle property */
- plat->port_node = of_fwnode_handle(np);
-
/* Get max speed of operation from device tree */
of_property_read_u32(np, "max-speed", &plat->max_speed);
phy_interface_t phy_interface;
struct stmmac_mdio_bus_data *mdio_bus_data;
struct device_node *phy_node;
- struct fwnode_handle *port_node;
struct device_node *mdio_node;
struct stmmac_dma_cfg *dma_cfg;
struct stmmac_safety_feature_cfg *safety_feat_cfg;