350-01-cpufreq-mediatek-Cleanup-variables-and-error-handlin.patch 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. From 7a768326fdba542144833b9198a6d0edab52fad2 Mon Sep 17 00:00:00 2001
  2. From: Jia-Wei Chang <[email protected]>
  3. Date: Fri, 8 Apr 2022 12:58:56 +0800
  4. Subject: [PATCH 01/21] cpufreq: mediatek: Cleanup variables and error handling
  5. in mtk_cpu_dvfs_info_init()
  6. - Remove several unnecessary varaibles in mtk_cpu_dvfs_info_init().
  7. - Unify error message format and use dev_err_probe() if possible.
  8. Signed-off-by: Jia-Wei Chang <[email protected]>
  9. Signed-off-by: Rex-BC Chen <[email protected]>
  10. Reviewed-by: AngeloGioacchino Del Regno <[email protected]>
  11. Signed-off-by: Viresh Kumar <[email protected]>
  12. ---
  13. drivers/cpufreq/mediatek-cpufreq.c | 89 ++++++++++++------------------
  14. 1 file changed, 34 insertions(+), 55 deletions(-)
  15. --- a/drivers/cpufreq/mediatek-cpufreq.c
  16. +++ b/drivers/cpufreq/mediatek-cpufreq.c
  17. @@ -302,96 +302,75 @@ static int mtk_cpufreq_set_target(struct
  18. static int mtk_cpu_dvfs_info_init(struct mtk_cpu_dvfs_info *info, int cpu)
  19. {
  20. struct device *cpu_dev;
  21. - struct regulator *proc_reg = ERR_PTR(-ENODEV);
  22. - struct regulator *sram_reg = ERR_PTR(-ENODEV);
  23. - struct clk *cpu_clk = ERR_PTR(-ENODEV);
  24. - struct clk *inter_clk = ERR_PTR(-ENODEV);
  25. struct dev_pm_opp *opp;
  26. unsigned long rate;
  27. int ret;
  28. cpu_dev = get_cpu_device(cpu);
  29. if (!cpu_dev) {
  30. - pr_err("failed to get cpu%d device\n", cpu);
  31. + dev_err(cpu_dev, "failed to get cpu%d device\n", cpu);
  32. return -ENODEV;
  33. }
  34. + info->cpu_dev = cpu_dev;
  35. - cpu_clk = clk_get(cpu_dev, "cpu");
  36. - if (IS_ERR(cpu_clk)) {
  37. - if (PTR_ERR(cpu_clk) == -EPROBE_DEFER)
  38. - pr_warn("cpu clk for cpu%d not ready, retry.\n", cpu);
  39. - else
  40. - pr_err("failed to get cpu clk for cpu%d\n", cpu);
  41. -
  42. - ret = PTR_ERR(cpu_clk);
  43. - return ret;
  44. - }
  45. -
  46. - inter_clk = clk_get(cpu_dev, "intermediate");
  47. - if (IS_ERR(inter_clk)) {
  48. - if (PTR_ERR(inter_clk) == -EPROBE_DEFER)
  49. - pr_warn("intermediate clk for cpu%d not ready, retry.\n",
  50. - cpu);
  51. - else
  52. - pr_err("failed to get intermediate clk for cpu%d\n",
  53. - cpu);
  54. + info->cpu_clk = clk_get(cpu_dev, "cpu");
  55. + if (IS_ERR(info->cpu_clk)) {
  56. + ret = PTR_ERR(info->cpu_clk);
  57. + return dev_err_probe(cpu_dev, ret,
  58. + "cpu%d: failed to get cpu clk\n", cpu);
  59. + }
  60. - ret = PTR_ERR(inter_clk);
  61. + info->inter_clk = clk_get(cpu_dev, "intermediate");
  62. + if (IS_ERR(info->inter_clk)) {
  63. + ret = PTR_ERR(info->inter_clk);
  64. + dev_err_probe(cpu_dev, ret,
  65. + "cpu%d: failed to get intermediate clk\n", cpu);
  66. goto out_free_resources;
  67. }
  68. - proc_reg = regulator_get_optional(cpu_dev, "proc");
  69. - if (IS_ERR(proc_reg)) {
  70. - if (PTR_ERR(proc_reg) == -EPROBE_DEFER)
  71. - pr_warn("proc regulator for cpu%d not ready, retry.\n",
  72. - cpu);
  73. - else
  74. - pr_err("failed to get proc regulator for cpu%d\n",
  75. - cpu);
  76. -
  77. - ret = PTR_ERR(proc_reg);
  78. + info->proc_reg = regulator_get_optional(cpu_dev, "proc");
  79. + if (IS_ERR(info->proc_reg)) {
  80. + ret = PTR_ERR(info->proc_reg);
  81. + dev_err_probe(cpu_dev, ret,
  82. + "cpu%d: failed to get proc regulator\n", cpu);
  83. goto out_free_resources;
  84. }
  85. /* Both presence and absence of sram regulator are valid cases. */
  86. - sram_reg = regulator_get_exclusive(cpu_dev, "sram");
  87. + info->sram_reg = regulator_get_exclusive(cpu_dev, "sram");
  88. + if (IS_ERR(info->sram_reg))
  89. + info->sram_reg = NULL;
  90. /* Get OPP-sharing information from "operating-points-v2" bindings */
  91. ret = dev_pm_opp_of_get_sharing_cpus(cpu_dev, &info->cpus);
  92. if (ret) {
  93. - pr_err("failed to get OPP-sharing information for cpu%d\n",
  94. - cpu);
  95. + dev_err(cpu_dev,
  96. + "cpu%d: failed to get OPP-sharing information\n", cpu);
  97. goto out_free_resources;
  98. }
  99. ret = dev_pm_opp_of_cpumask_add_table(&info->cpus);
  100. if (ret) {
  101. - pr_warn("no OPP table for cpu%d\n", cpu);
  102. + dev_warn(cpu_dev, "cpu%d: no OPP table\n", cpu);
  103. goto out_free_resources;
  104. }
  105. /* Search a safe voltage for intermediate frequency. */
  106. - rate = clk_get_rate(inter_clk);
  107. + rate = clk_get_rate(info->inter_clk);
  108. opp = dev_pm_opp_find_freq_ceil(cpu_dev, &rate);
  109. if (IS_ERR(opp)) {
  110. - pr_err("failed to get intermediate opp for cpu%d\n", cpu);
  111. + dev_err(cpu_dev, "cpu%d: failed to get intermediate opp\n", cpu);
  112. ret = PTR_ERR(opp);
  113. goto out_free_opp_table;
  114. }
  115. info->intermediate_voltage = dev_pm_opp_get_voltage(opp);
  116. dev_pm_opp_put(opp);
  117. - info->cpu_dev = cpu_dev;
  118. - info->proc_reg = proc_reg;
  119. - info->sram_reg = IS_ERR(sram_reg) ? NULL : sram_reg;
  120. - info->cpu_clk = cpu_clk;
  121. - info->inter_clk = inter_clk;
  122. -
  123. /*
  124. * If SRAM regulator is present, software "voltage tracking" is needed
  125. * for this CPU power domain.
  126. */
  127. - info->need_voltage_tracking = !IS_ERR(sram_reg);
  128. + info->need_voltage_tracking = (info->sram_reg != NULL);
  129. return 0;
  130. @@ -399,14 +378,14 @@ out_free_opp_table:
  131. dev_pm_opp_of_cpumask_remove_table(&info->cpus);
  132. out_free_resources:
  133. - if (!IS_ERR(proc_reg))
  134. - regulator_put(proc_reg);
  135. - if (!IS_ERR(sram_reg))
  136. - regulator_put(sram_reg);
  137. - if (!IS_ERR(cpu_clk))
  138. - clk_put(cpu_clk);
  139. - if (!IS_ERR(inter_clk))
  140. - clk_put(inter_clk);
  141. + if (!IS_ERR(info->proc_reg))
  142. + regulator_put(info->proc_reg);
  143. + if (!IS_ERR(info->sram_reg))
  144. + regulator_put(info->sram_reg);
  145. + if (!IS_ERR(info->cpu_clk))
  146. + clk_put(info->cpu_clk);
  147. + if (!IS_ERR(info->inter_clk))
  148. + clk_put(info->inter_clk);
  149. return ret;
  150. }