Skip to content

Commit 70a0d49

Browse files
andy-shevgregkh
authored andcommitted
serial: 8250_dw: Use devm_clk_get_optional_enabled()
Use devm_clk_get_optional_enabled() to simplify the code. Signed-off-by: Andy Shevchenko <[email protected]> Reviewed-by: Andi Shyti <[email protected]> Reviewed-by: Ilpo Järvinen <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent aef6b86 commit 70a0d49

File tree

1 file changed

+3
-24
lines changed

1 file changed

+3
-24
lines changed

drivers/tty/serial/8250/8250_dw.c

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -498,11 +498,6 @@ static void dw8250_quirks(struct uart_port *p, struct dw8250_data *data)
498498
}
499499
}
500500

501-
static void dw8250_clk_disable_unprepare(void *data)
502-
{
503-
clk_disable_unprepare(data);
504-
}
505-
506501
static void dw8250_reset_control_assert(void *data)
507502
{
508503
reset_control_assert(data);
@@ -598,42 +593,26 @@ static int dw8250_probe(struct platform_device *pdev)
598593
device_property_read_u32(dev, "clock-frequency", &p->uartclk);
599594

600595
/* If there is separate baudclk, get the rate from it. */
601-
data->clk = devm_clk_get_optional(dev, "baudclk");
596+
data->clk = devm_clk_get_optional_enabled(dev, "baudclk");
602597
if (data->clk == NULL)
603-
data->clk = devm_clk_get_optional(dev, NULL);
598+
data->clk = devm_clk_get_optional_enabled(dev, NULL);
604599
if (IS_ERR(data->clk))
605600
return PTR_ERR(data->clk);
606601

607602
INIT_WORK(&data->clk_work, dw8250_clk_work_cb);
608603
data->clk_notifier.notifier_call = dw8250_clk_notifier_cb;
609604

610-
err = clk_prepare_enable(data->clk);
611-
if (err)
612-
return dev_err_probe(dev, err, "could not enable optional baudclk\n");
613-
614-
err = devm_add_action_or_reset(dev, dw8250_clk_disable_unprepare, data->clk);
615-
if (err)
616-
return err;
617-
618605
if (data->clk)
619606
p->uartclk = clk_get_rate(data->clk);
620607

621608
/* If no clock rate is defined, fail. */
622609
if (!p->uartclk)
623610
return dev_err_probe(dev, -EINVAL, "clock rate not defined\n");
624611

625-
data->pclk = devm_clk_get_optional(dev, "apb_pclk");
612+
data->pclk = devm_clk_get_optional_enabled(dev, "apb_pclk");
626613
if (IS_ERR(data->pclk))
627614
return PTR_ERR(data->pclk);
628615

629-
err = clk_prepare_enable(data->pclk);
630-
if (err)
631-
return dev_err_probe(dev, err, "could not enable apb_pclk\n");
632-
633-
err = devm_add_action_or_reset(dev, dw8250_clk_disable_unprepare, data->pclk);
634-
if (err)
635-
return err;
636-
637616
data->rst = devm_reset_control_get_optional_exclusive(dev, NULL);
638617
if (IS_ERR(data->rst))
639618
return PTR_ERR(data->rst);

0 commit comments

Comments
 (0)