From 85f988dbc15559a5a2fee606e6ef400aa39fe444 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Wed, 12 May 2021 17:15:46 +0200 Subject: [PATCH 03/11] SSDK: platform: use of_mdio_find_bus() to get MDIO bus Kernel has a generic of_mdio_find_bus() which can get the appropriate MDIO bus based on the DT node. So, drop the getting MDIO from platform data, which no longer works in 5.4 and later and use of_mdio_find_bus(). Signed-off-by: Baruch Siach Signed-off-by: Robert Marko --- src/init/ssdk_plat.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) --- a/src/init/ssdk_plat.c +++ b/src/init/ssdk_plat.c @@ -753,7 +753,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 qca_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]; @@ -788,12 +787,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);