Skip to content

Commit

Permalink
net: macb: Migrate to devm clock interface
Browse files Browse the repository at this point in the history
Migrate to using the device managed interface for clocks and clean up
the associated error paths.

Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Soren Brinkmann authored and David S. Miller committed Dec 11, 2013
1 parent 0dfc3e1 commit b48e0ba
Showing 1 changed file with 20 additions and 12 deletions.
32 changes: 20 additions & 12 deletions drivers/net/ethernet/cadence/macb.c
Original file line number Diff line number Diff line change
Expand Up @@ -1790,19 +1790,31 @@ static int __init macb_probe(struct platform_device *pdev)
spin_lock_init(&bp->lock);
INIT_WORK(&bp->tx_error_task, macb_tx_error_task);

bp->pclk = clk_get(&pdev->dev, "pclk");
bp->pclk = devm_clk_get(&pdev->dev, "pclk");
if (IS_ERR(bp->pclk)) {
dev_err(&pdev->dev, "failed to get macb_clk\n");
err = PTR_ERR(bp->pclk);
dev_err(&pdev->dev, "failed to get macb_clk (%u)\n", err);
goto err_out_free_dev;
}
clk_prepare_enable(bp->pclk);

bp->hclk = clk_get(&pdev->dev, "hclk");
bp->hclk = devm_clk_get(&pdev->dev, "hclk");
if (IS_ERR(bp->hclk)) {
dev_err(&pdev->dev, "failed to get hclk\n");
goto err_out_put_pclk;
err = PTR_ERR(bp->hclk);
dev_err(&pdev->dev, "failed to get hclk (%u)\n", err);
goto err_out_free_dev;
}

err = clk_prepare_enable(bp->pclk);
if (err) {
dev_err(&pdev->dev, "failed to enable pclk (%u)\n", err);
goto err_out_free_dev;
}

err = clk_prepare_enable(bp->hclk);
if (err) {
dev_err(&pdev->dev, "failed to enable hclk (%u)\n", err);
goto err_out_disable_pclk;
}
clk_prepare_enable(bp->hclk);

bp->regs = ioremap(regs->start, resource_size(regs));
if (!bp->regs) {
Expand Down Expand Up @@ -1908,10 +1920,8 @@ static int __init macb_probe(struct platform_device *pdev)
iounmap(bp->regs);
err_out_disable_clocks:
clk_disable_unprepare(bp->hclk);
clk_put(bp->hclk);
err_out_disable_pclk:
clk_disable_unprepare(bp->pclk);
err_out_put_pclk:
clk_put(bp->pclk);
err_out_free_dev:
free_netdev(dev);
err_out:
Expand All @@ -1936,9 +1946,7 @@ static int __exit macb_remove(struct platform_device *pdev)
free_irq(dev->irq, dev);
iounmap(bp->regs);
clk_disable_unprepare(bp->hclk);
clk_put(bp->hclk);
clk_disable_unprepare(bp->pclk);
clk_put(bp->pclk);
free_netdev(dev);
}

Expand Down

0 comments on commit b48e0ba

Please sign in to comment.