hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/gpu/drm/sun4i/sun4i_tcon.c
....@@ -777,21 +777,19 @@
777777 static int sun4i_tcon_init_clocks(struct device *dev,
778778 struct sun4i_tcon *tcon)
779779 {
780
- tcon->clk = devm_clk_get(dev, "ahb");
780
+ tcon->clk = devm_clk_get_enabled(dev, "ahb");
781781 if (IS_ERR(tcon->clk)) {
782782 dev_err(dev, "Couldn't get the TCON bus clock\n");
783783 return PTR_ERR(tcon->clk);
784784 }
785
- clk_prepare_enable(tcon->clk);
786785
787786 if (tcon->quirks->has_channel_0) {
788
- tcon->sclk0 = devm_clk_get(dev, "tcon-ch0");
787
+ tcon->sclk0 = devm_clk_get_enabled(dev, "tcon-ch0");
789788 if (IS_ERR(tcon->sclk0)) {
790789 dev_err(dev, "Couldn't get the TCON channel 0 clock\n");
791790 return PTR_ERR(tcon->sclk0);
792791 }
793792 }
794
- clk_prepare_enable(tcon->sclk0);
795793
796794 if (tcon->quirks->has_channel_1) {
797795 tcon->sclk1 = devm_clk_get(dev, "tcon-ch1");
....@@ -802,12 +800,6 @@
802800 }
803801
804802 return 0;
805
-}
806
-
807
-static void sun4i_tcon_free_clocks(struct sun4i_tcon *tcon)
808
-{
809
- clk_disable_unprepare(tcon->sclk0);
810
- clk_disable_unprepare(tcon->clk);
811803 }
812804
813805 static int sun4i_tcon_init_irq(struct device *dev,
....@@ -1224,14 +1216,14 @@
12241216 ret = sun4i_tcon_init_regmap(dev, tcon);
12251217 if (ret) {
12261218 dev_err(dev, "Couldn't init our TCON regmap\n");
1227
- goto err_free_clocks;
1219
+ goto err_assert_reset;
12281220 }
12291221
12301222 if (tcon->quirks->has_channel_0) {
12311223 ret = sun4i_dclk_create(dev, tcon);
12321224 if (ret) {
12331225 dev_err(dev, "Couldn't create our TCON dot clock\n");
1234
- goto err_free_clocks;
1226
+ goto err_assert_reset;
12351227 }
12361228 }
12371229
....@@ -1294,8 +1286,6 @@
12941286 err_free_dotclock:
12951287 if (tcon->quirks->has_channel_0)
12961288 sun4i_dclk_free(tcon);
1297
-err_free_clocks:
1298
- sun4i_tcon_free_clocks(tcon);
12991289 err_assert_reset:
13001290 reset_control_assert(tcon->lcd_rst);
13011291 return ret;
....@@ -1309,7 +1299,6 @@
13091299 list_del(&tcon->list);
13101300 if (tcon->quirks->has_channel_0)
13111301 sun4i_dclk_free(tcon);
1312
- sun4i_tcon_free_clocks(tcon);
13131302 }
13141303
13151304 static const struct component_ops sun4i_tcon_ops = {