830-v6.4-23-thermal-drivers-mediatek-Change-clk_prepare_enable-t.patch 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. From 227d1856924ec00a4f5bdf5afcf77bc7f3f04e86 Mon Sep 17 00:00:00 2001
  2. From: Kang Chen <[email protected]>
  3. Date: Wed, 19 Apr 2023 10:07:49 +0800
  4. Subject: [PATCH 19/42] thermal/drivers/mediatek: Change clk_prepare_enable to
  5. devm_clk_get_enabled in mtk_thermal_probe
  6. Use devm_clk_get_enabled to do automatic resource management.
  7. Meanwhile, remove error handling labels in the probe function and
  8. the whole remove function.
  9. Signed-off-by: Kang Chen <[email protected]>
  10. Reviewed-by: Dongliang Mu <[email protected]>
  11. Signed-off-by: Daniel Lezcano <[email protected]>
  12. Link: https://lore.kernel.org/r/[email protected]
  13. ---
  14. drivers/thermal/mediatek/auxadc_thermal.c | 44 +++++------------------
  15. 1 file changed, 9 insertions(+), 35 deletions(-)
  16. --- a/drivers/thermal/mediatek/auxadc_thermal.c
  17. +++ b/drivers/thermal/mediatek/auxadc_thermal.c
  18. @@ -1206,14 +1206,6 @@ static int mtk_thermal_probe(struct plat
  19. mt->conf = of_device_get_match_data(&pdev->dev);
  20. - mt->clk_peri_therm = devm_clk_get(&pdev->dev, "therm");
  21. - if (IS_ERR(mt->clk_peri_therm))
  22. - return PTR_ERR(mt->clk_peri_therm);
  23. -
  24. - mt->clk_auxadc = devm_clk_get(&pdev->dev, "auxadc");
  25. - if (IS_ERR(mt->clk_auxadc))
  26. - return PTR_ERR(mt->clk_auxadc);
  27. -
  28. mt->thermal_base = devm_platform_get_and_ioremap_resource(pdev, 0, NULL);
  29. if (IS_ERR(mt->thermal_base))
  30. return PTR_ERR(mt->thermal_base);
  31. @@ -1272,16 +1264,18 @@ static int mtk_thermal_probe(struct plat
  32. if (ret)
  33. return ret;
  34. - ret = clk_prepare_enable(mt->clk_auxadc);
  35. - if (ret) {
  36. + mt->clk_auxadc = devm_clk_get_enabled(&pdev->dev, "auxadc");
  37. + if (IS_ERR(mt->clk_auxadc)) {
  38. + ret = PTR_ERR(mt->clk_auxadc);
  39. dev_err(&pdev->dev, "Can't enable auxadc clk: %d\n", ret);
  40. return ret;
  41. }
  42. - ret = clk_prepare_enable(mt->clk_peri_therm);
  43. - if (ret) {
  44. + mt->clk_peri_therm = devm_clk_get_enabled(&pdev->dev, "therm");
  45. + if (IS_ERR(mt->clk_peri_therm)) {
  46. + ret = PTR_ERR(mt->clk_peri_therm);
  47. dev_err(&pdev->dev, "Can't enable peri clk: %d\n", ret);
  48. - goto err_disable_clk_auxadc;
  49. + return ret;
  50. }
  51. mtk_thermal_turn_on_buffer(mt, apmixed_base);
  52. @@ -1305,38 +1299,18 @@ static int mtk_thermal_probe(struct plat
  53. tzdev = devm_thermal_of_zone_register(&pdev->dev, 0, mt,
  54. &mtk_thermal_ops);
  55. - if (IS_ERR(tzdev)) {
  56. - ret = PTR_ERR(tzdev);
  57. - goto err_disable_clk_peri_therm;
  58. - }
  59. + if (IS_ERR(tzdev))
  60. + return PTR_ERR(tzdev);
  61. ret = devm_thermal_add_hwmon_sysfs(&pdev->dev, tzdev);
  62. if (ret)
  63. dev_warn(&pdev->dev, "error in thermal_add_hwmon_sysfs");
  64. return 0;
  65. -
  66. -err_disable_clk_peri_therm:
  67. - clk_disable_unprepare(mt->clk_peri_therm);
  68. -err_disable_clk_auxadc:
  69. - clk_disable_unprepare(mt->clk_auxadc);
  70. -
  71. - return ret;
  72. -}
  73. -
  74. -static int mtk_thermal_remove(struct platform_device *pdev)
  75. -{
  76. - struct mtk_thermal *mt = platform_get_drvdata(pdev);
  77. -
  78. - clk_disable_unprepare(mt->clk_peri_therm);
  79. - clk_disable_unprepare(mt->clk_auxadc);
  80. -
  81. - return 0;
  82. }
  83. static struct platform_driver mtk_thermal_driver = {
  84. .probe = mtk_thermal_probe,
  85. - .remove = mtk_thermal_remove,
  86. .driver = {
  87. .name = "mtk-thermal",
  88. .of_match_table = mtk_thermal_of_match,