@@ -21,7 +21,6 @@
#define BIT_WR_DATA_OFFSET 16
struct hisi_femac_mdio_data {
- struct clk *clk;
void __iomem *membase;
};
@@ -74,6 +73,7 @@ static int hisi_femac_mdio_probe(struct platform_device *pdev)
struct device_node *np = pdev->dev.of_node;
struct mii_bus *bus;
struct hisi_femac_mdio_data *data;
+ struct clk *clk;
int ret;
bus = mdiobus_alloc_size(sizeof(*data));
@@ -93,26 +93,20 @@ static int hisi_femac_mdio_probe(struct platform_device *pdev)
goto err_out_free_mdiobus;
}
- data->clk = devm_clk_get(&pdev->dev, NULL);
- if (IS_ERR(data->clk)) {
- ret = PTR_ERR(data->clk);
+ clk = devm_clk_get_prepared(&pdev->dev, NULL);
+ if (IS_ERR(clk)) {
+ ret = PTR_ERR(clk);
goto err_out_free_mdiobus;
}
- ret = clk_prepare_enable(data->clk);
- if (ret)
- goto err_out_free_mdiobus;
-
ret = of_mdiobus_register(bus, np);
if (ret)
- goto err_out_disable_clk;
+ goto err_out_free_mdiobus;
platform_set_drvdata(pdev, bus);
return 0;
-err_out_disable_clk:
- clk_disable_unprepare(data->clk);
err_out_free_mdiobus:
mdiobus_free(bus);
return ret;
@@ -121,10 +115,8 @@ static int hisi_femac_mdio_probe(struct platform_device *pdev)
static void hisi_femac_mdio_remove(struct platform_device *pdev)
{
struct mii_bus *bus = platform_get_drvdata(pdev);
- struct hisi_femac_mdio_data *data = bus->priv;
mdiobus_unregister(bus);
- clk_disable_unprepare(data->clk);
mdiobus_free(bus);
}
Convert devm_clk_get(), clk_prepare_enable() to a single call to devm_clk_get_enabled(), as this is exactly what this function does. Signed-off-by: Yangtao Li <frank.li@vivo.com> --- drivers/net/mdio/mdio-hisi-femac.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-)