mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-12 13:55:25 -04:00
net: mv643xx: fix wrong devm_clk_get usage
This clock should be optional. In addition, PTR_ERR can be -EPROBE_DEFER in which case it should return. devm_clk_get_optional_enabled also allows removing explicit clock enable and disable calls. Signed-off-by: Rosen Penev <rosenp@gmail.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Link: https://patch.msgid.link/20240930202951.297737-3-rosenp@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
4d77e88ab4
commit
50c3a7fbaa
@@ -2858,9 +2858,9 @@ static int mv643xx_eth_shared_probe(struct platform_device *pdev)
|
||||
if (IS_ERR(msp->base))
|
||||
return PTR_ERR(msp->base);
|
||||
|
||||
msp->clk = devm_clk_get(&pdev->dev, NULL);
|
||||
if (!IS_ERR(msp->clk))
|
||||
clk_prepare_enable(msp->clk);
|
||||
msp->clk = devm_clk_get_optional_enabled(&pdev->dev, NULL);
|
||||
if (IS_ERR(msp->clk))
|
||||
return PTR_ERR(msp->clk);
|
||||
|
||||
/*
|
||||
* (Re-)program MBUS remapping windows if we are asked to.
|
||||
@@ -2871,7 +2871,7 @@ static int mv643xx_eth_shared_probe(struct platform_device *pdev)
|
||||
|
||||
ret = mv643xx_eth_shared_of_probe(pdev);
|
||||
if (ret)
|
||||
goto err_put_clk;
|
||||
return ret;
|
||||
pd = dev_get_platdata(&pdev->dev);
|
||||
|
||||
msp->tx_csum_limit = (pd != NULL && pd->tx_csum_limit) ?
|
||||
@@ -2879,20 +2879,11 @@ static int mv643xx_eth_shared_probe(struct platform_device *pdev)
|
||||
infer_hw_params(msp);
|
||||
|
||||
return 0;
|
||||
|
||||
err_put_clk:
|
||||
if (!IS_ERR(msp->clk))
|
||||
clk_disable_unprepare(msp->clk);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void mv643xx_eth_shared_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct mv643xx_eth_shared_private *msp = platform_get_drvdata(pdev);
|
||||
|
||||
mv643xx_eth_shared_of_remove();
|
||||
if (!IS_ERR(msp->clk))
|
||||
clk_disable_unprepare(msp->clk);
|
||||
}
|
||||
|
||||
static struct platform_driver mv643xx_eth_shared_driver = {
|
||||
|
||||
Reference in New Issue
Block a user