net: fec: Do proper error checking for optional clks
An error code returned by devm_clk_get() might have other meanings than "This clock doesn't exist". So use devm_clk_get_optional() and handle all remaining errors as fatal. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c12b95885a
commit
43252ed15f
|
@ -3866,17 +3866,21 @@ fec_probe(struct platform_device *pdev)
|
|||
fep->itr_clk_rate = clk_get_rate(fep->clk_ahb);
|
||||
|
||||
/* enet_out is optional, depends on board */
|
||||
fep->clk_enet_out = devm_clk_get(&pdev->dev, "enet_out");
|
||||
if (IS_ERR(fep->clk_enet_out))
|
||||
fep->clk_enet_out = NULL;
|
||||
fep->clk_enet_out = devm_clk_get_optional(&pdev->dev, "enet_out");
|
||||
if (IS_ERR(fep->clk_enet_out)) {
|
||||
ret = PTR_ERR(fep->clk_enet_out);
|
||||
goto failed_clk;
|
||||
}
|
||||
|
||||
fep->ptp_clk_on = false;
|
||||
mutex_init(&fep->ptp_clk_mutex);
|
||||
|
||||
/* clk_ref is optional, depends on board */
|
||||
fep->clk_ref = devm_clk_get(&pdev->dev, "enet_clk_ref");
|
||||
if (IS_ERR(fep->clk_ref))
|
||||
fep->clk_ref = NULL;
|
||||
fep->clk_ref = devm_clk_get_optional(&pdev->dev, "enet_clk_ref");
|
||||
if (IS_ERR(fep->clk_ref)) {
|
||||
ret = PTR_ERR(fep->clk_ref);
|
||||
goto failed_clk;
|
||||
}
|
||||
fep->clk_ref_rate = clk_get_rate(fep->clk_ref);
|
||||
|
||||
/* clk_2x_txclk is optional, depends on board */
|
||||
|
|
Loading…
Reference in New Issue