Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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>

authored by

Andy Shevchenko and committed by
Greg Kroah-Hartman
1f34e3de 8e3c8252

+9 -15
+9 -15
drivers/tty/serial/8250/8250_bcm7271.c
··· 1015 1015 of_property_read_u32(np, "clock-frequency", &clk_rate); 1016 1016 1017 1017 /* See if a Baud clock has been specified */ 1018 - baud_mux_clk = devm_clk_get(dev, "sw_baud"); 1019 - if (IS_ERR(baud_mux_clk)) { 1020 - if (PTR_ERR(baud_mux_clk) == -EPROBE_DEFER) { 1021 - ret = -EPROBE_DEFER; 1022 - goto release_dma; 1023 - } 1024 - dev_dbg(dev, "BAUD MUX clock not specified\n"); 1025 - } else { 1018 + baud_mux_clk = devm_clk_get_optional_enabled(dev, "sw_baud"); 1019 + ret = PTR_ERR_OR_ZERO(baud_mux_clk); 1020 + if (ret) 1021 + goto release_dma; 1022 + if (baud_mux_clk) { 1026 1023 dev_dbg(dev, "BAUD MUX clock found\n"); 1027 - ret = clk_prepare_enable(baud_mux_clk); 1028 - if (ret) 1029 - goto release_dma; 1024 + 1030 1025 priv->baud_mux_clk = baud_mux_clk; 1031 1026 init_real_clk_rates(dev, priv); 1032 1027 clk_rate = priv->default_mux_rate; 1028 + } else { 1029 + dev_dbg(dev, "BAUD MUX clock not specified\n"); 1033 1030 } 1034 1031 1035 1032 if (clk_rate == 0) { 1036 1033 ret = dev_err_probe(dev, -EINVAL, "clock-frequency or clk not defined\n"); 1037 - goto err_clk_disable; 1034 + goto release_dma; 1038 1035 } 1039 1036 1040 1037 dev_dbg(dev, "DMA is %senabled\n", priv->dma_enabled ? "" : "not "); ··· 1115 1118 serial8250_unregister_port(priv->line); 1116 1119 err: 1117 1120 brcmuart_free_bufs(dev, priv); 1118 - err_clk_disable: 1119 - clk_disable_unprepare(baud_mux_clk); 1120 1121 release_dma: 1121 1122 if (priv->dma_enabled) 1122 1123 brcmuart_arbitration(priv, 0); ··· 1129 1134 hrtimer_cancel(&priv->hrt); 1130 1135 serial8250_unregister_port(priv->line); 1131 1136 brcmuart_free_bufs(&pdev->dev, priv); 1132 - clk_disable_unprepare(priv->baud_mux_clk); 1133 1137 if (priv->dma_enabled) 1134 1138 brcmuart_arbitration(priv, 0); 1135 1139 return 0;