@@ -498,11 +498,6 @@ static void dw8250_quirks(struct uart_port *p, struct dw8250_data *data)
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 );
@@ -598,42 +593,26 @@ static int dw8250_probe(struct platform_device *pdev)
598
593
device_property_read_u32 (dev , "clock-frequency" , & p -> uartclk );
599
594
600
595
/* 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" );
602
597
if (data -> clk == NULL )
603
- data -> clk = devm_clk_get_optional (dev , NULL );
598
+ data -> clk = devm_clk_get_optional_enabled (dev , NULL );
604
599
if (IS_ERR (data -> clk ))
605
600
return PTR_ERR (data -> clk );
606
601
607
602
INIT_WORK (& data -> clk_work , dw8250_clk_work_cb );
608
603
data -> clk_notifier .notifier_call = dw8250_clk_notifier_cb ;
609
604
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
-
618
605
if (data -> clk )
619
606
p -> uartclk = clk_get_rate (data -> clk );
620
607
621
608
/* If no clock rate is defined, fail. */
622
609
if (!p -> uartclk )
623
610
return dev_err_probe (dev , - EINVAL , "clock rate not defined\n" );
624
611
625
- data -> pclk = devm_clk_get_optional (dev , "apb_pclk" );
612
+ data -> pclk = devm_clk_get_optional_enabled (dev , "apb_pclk" );
626
613
if (IS_ERR (data -> pclk ))
627
614
return PTR_ERR (data -> pclk );
628
615
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
-
637
616
data -> rst = devm_reset_control_get_optional_exclusive (dev , NULL );
638
617
if (IS_ERR (data -> rst ))
639
618
return PTR_ERR (data -> rst );
0 commit comments