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

reset: lpc18xx: simplify with devm_clk_get_enabled()

Use devm_clk_get_enabled() to drop clock prepare/unprepare parts and
make the code simpler. Change to dev_err_probe() in handling
reset_controller_register() error to make it even simpler.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Acked-by: Vladimir Zapolskiy <vz@mleia.com>
Reviewed-by: Vladimir Zapolskiy <vz@mleia.com>
Link: https://lore.kernel.org/r/20240825-reset-cleanup-scoped-v1-5-03f6d834f8c0@linaro.org
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>

authored by

Krzysztof Kozlowski and committed by
Philipp Zabel
0fa8ce76 ece222e9

+4 -25
+4 -25
drivers/reset/reset-lpc18xx.c
··· 150 150 if (IS_ERR(rc->base)) 151 151 return PTR_ERR(rc->base); 152 152 153 - rc->clk_reg = devm_clk_get(&pdev->dev, "reg"); 153 + rc->clk_reg = devm_clk_get_enabled(&pdev->dev, "reg"); 154 154 if (IS_ERR(rc->clk_reg)) 155 155 return dev_err_probe(&pdev->dev, PTR_ERR(rc->clk_reg), 156 156 "reg clock not found\n"); 157 157 158 - rc->clk_delay = devm_clk_get(&pdev->dev, "delay"); 158 + rc->clk_delay = devm_clk_get_enabled(&pdev->dev, "delay"); 159 159 if (IS_ERR(rc->clk_delay)) 160 160 return dev_err_probe(&pdev->dev, PTR_ERR(rc->clk_delay), 161 161 "delay clock not found\n"); 162 - 163 - ret = clk_prepare_enable(rc->clk_reg); 164 - if (ret) { 165 - dev_err(&pdev->dev, "unable to enable reg clock\n"); 166 - return ret; 167 - } 168 - 169 - ret = clk_prepare_enable(rc->clk_delay); 170 - if (ret) { 171 - dev_err(&pdev->dev, "unable to enable delay clock\n"); 172 - goto dis_clk_reg; 173 - } 174 162 175 163 fcclk = clk_get_rate(rc->clk_reg) / USEC_PER_SEC; 176 164 firc = clk_get_rate(rc->clk_delay) / USEC_PER_SEC; ··· 175 187 rc->rcdev.of_node = pdev->dev.of_node; 176 188 177 189 ret = reset_controller_register(&rc->rcdev); 178 - if (ret) { 179 - dev_err(&pdev->dev, "unable to register device\n"); 180 - goto dis_clks; 181 - } 190 + if (ret) 191 + return dev_err_probe(&pdev->dev, ret, "unable to register device\n"); 182 192 183 193 rc->restart_nb.priority = 192, 184 194 rc->restart_nb.notifier_call = lpc18xx_rgu_restart, ··· 185 199 dev_warn(&pdev->dev, "failed to register restart handler\n"); 186 200 187 201 return 0; 188 - 189 - dis_clks: 190 - clk_disable_unprepare(rc->clk_delay); 191 - dis_clk_reg: 192 - clk_disable_unprepare(rc->clk_reg); 193 - 194 - return ret; 195 202 } 196 203 197 204 static const struct of_device_id lpc18xx_rgu_match[] = {