--- a/src/init/ssdk_plat.c +++ b/src/init/ssdk_plat.c @@ -561,7 +561,6 @@ static int miibus_get(a_uint32_t dev_id) struct device_node *mdio_node = NULL; struct device_node *switch_node = NULL; struct platform_device *mdio_plat = NULL; - struct ipq40xx_mdio_data *mdio_data = NULL; struct qca_phy_priv *priv; hsl_reg_mode reg_mode = HSL_REG_LOCAL_BUS; priv = qca_phy_priv_global[dev_id]; @@ -596,12 +595,7 @@ static int miibus_get(a_uint32_t dev_id) if(reg_mode == HSL_REG_LOCAL_BUS) { - mdio_data = dev_get_drvdata(&mdio_plat->dev); - if (!mdio_data) { - SSDK_ERROR("cannot get mdio_data reference from device data\n"); - return 1; - } - priv->miibus = mdio_data->mii_bus; + priv->miibus = of_mdio_find_bus(mdio_node); } else priv->miibus = dev_get_drvdata(&mdio_plat->dev);