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

serial: 8250_dw: 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>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/20230919195513.3197930-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
70a0d499 aef6b863

+3 -24
+3 -24
drivers/tty/serial/8250/8250_dw.c
··· 498 498 } 499 499 } 500 500 501 - static void dw8250_clk_disable_unprepare(void *data) 502 - { 503 - clk_disable_unprepare(data); 504 - } 505 - 506 501 static void dw8250_reset_control_assert(void *data) 507 502 { 508 503 reset_control_assert(data); ··· 593 598 device_property_read_u32(dev, "clock-frequency", &p->uartclk); 594 599 595 600 /* If there is separate baudclk, get the rate from it. */ 596 - data->clk = devm_clk_get_optional(dev, "baudclk"); 601 + data->clk = devm_clk_get_optional_enabled(dev, "baudclk"); 597 602 if (data->clk == NULL) 598 - data->clk = devm_clk_get_optional(dev, NULL); 603 + data->clk = devm_clk_get_optional_enabled(dev, NULL); 599 604 if (IS_ERR(data->clk)) 600 605 return PTR_ERR(data->clk); 601 606 602 607 INIT_WORK(&data->clk_work, dw8250_clk_work_cb); 603 608 data->clk_notifier.notifier_call = dw8250_clk_notifier_cb; 604 - 605 - err = clk_prepare_enable(data->clk); 606 - if (err) 607 - return dev_err_probe(dev, err, "could not enable optional baudclk\n"); 608 - 609 - err = devm_add_action_or_reset(dev, dw8250_clk_disable_unprepare, data->clk); 610 - if (err) 611 - return err; 612 609 613 610 if (data->clk) 614 611 p->uartclk = clk_get_rate(data->clk); ··· 609 622 if (!p->uartclk) 610 623 return dev_err_probe(dev, -EINVAL, "clock rate not defined\n"); 611 624 612 - data->pclk = devm_clk_get_optional(dev, "apb_pclk"); 625 + data->pclk = devm_clk_get_optional_enabled(dev, "apb_pclk"); 613 626 if (IS_ERR(data->pclk)) 614 627 return PTR_ERR(data->pclk); 615 - 616 - err = clk_prepare_enable(data->pclk); 617 - if (err) 618 - return dev_err_probe(dev, err, "could not enable apb_pclk\n"); 619 - 620 - err = devm_add_action_or_reset(dev, dw8250_clk_disable_unprepare, data->pclk); 621 - if (err) 622 - return err; 623 628 624 629 data->rst = devm_reset_control_get_optional_exclusive(dev, NULL); 625 630 if (IS_ERR(data->rst))