serial: 8250_bcm7271: Use devm_clk_get_optional_enabled()
Use devm_clk_get_optional_enabled() to simplify the code. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com> Link: https://lore.kernel.org/r/20231005124550.3607234-1-andriy.shevchenko@linux.intel.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
8e3c825288
commit
1f34e3defb
@ -1015,26 +1015,23 @@ static int brcmuart_probe(struct platform_device *pdev)
|
||||
of_property_read_u32(np, "clock-frequency", &clk_rate);
|
||||
|
||||
/* See if a Baud clock has been specified */
|
||||
baud_mux_clk = devm_clk_get(dev, "sw_baud");
|
||||
if (IS_ERR(baud_mux_clk)) {
|
||||
if (PTR_ERR(baud_mux_clk) == -EPROBE_DEFER) {
|
||||
ret = -EPROBE_DEFER;
|
||||
goto release_dma;
|
||||
}
|
||||
dev_dbg(dev, "BAUD MUX clock not specified\n");
|
||||
} else {
|
||||
baud_mux_clk = devm_clk_get_optional_enabled(dev, "sw_baud");
|
||||
ret = PTR_ERR_OR_ZERO(baud_mux_clk);
|
||||
if (ret)
|
||||
goto release_dma;
|
||||
if (baud_mux_clk) {
|
||||
dev_dbg(dev, "BAUD MUX clock found\n");
|
||||
ret = clk_prepare_enable(baud_mux_clk);
|
||||
if (ret)
|
||||
goto release_dma;
|
||||
|
||||
priv->baud_mux_clk = baud_mux_clk;
|
||||
init_real_clk_rates(dev, priv);
|
||||
clk_rate = priv->default_mux_rate;
|
||||
} else {
|
||||
dev_dbg(dev, "BAUD MUX clock not specified\n");
|
||||
}
|
||||
|
||||
if (clk_rate == 0) {
|
||||
ret = dev_err_probe(dev, -EINVAL, "clock-frequency or clk not defined\n");
|
||||
goto err_clk_disable;
|
||||
goto release_dma;
|
||||
}
|
||||
|
||||
dev_dbg(dev, "DMA is %senabled\n", priv->dma_enabled ? "" : "not ");
|
||||
@ -1118,8 +1115,6 @@ err1:
|
||||
serial8250_unregister_port(priv->line);
|
||||
err:
|
||||
brcmuart_free_bufs(dev, priv);
|
||||
err_clk_disable:
|
||||
clk_disable_unprepare(baud_mux_clk);
|
||||
release_dma:
|
||||
if (priv->dma_enabled)
|
||||
brcmuart_arbitration(priv, 0);
|
||||
@ -1134,7 +1129,6 @@ static int brcmuart_remove(struct platform_device *pdev)
|
||||
hrtimer_cancel(&priv->hrt);
|
||||
serial8250_unregister_port(priv->line);
|
||||
brcmuart_free_bufs(&pdev->dev, priv);
|
||||
clk_disable_unprepare(priv->baud_mux_clk);
|
||||
if (priv->dma_enabled)
|
||||
brcmuart_arbitration(priv, 0);
|
||||
return 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user