Skip to content

Commit 72cfc73

Browse files
lumagbebarino
authored andcommitted
clk: qcom: use devm_pm_runtime_enable and devm_pm_clk_create
Use two new helpers instead of pm_runtime_enable() and pm_clk_create(), removing the need for calling pm_runtime_disable and pm_clk_destroy(). Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Link: https://lore.kernel.org/r/20210731195034.979084-4-dmitry.baryshkov@linaro.org Signed-off-by: Stephen Boyd <sboyd@kernel.org>
1 parent a649136 commit 72cfc73

6 files changed

Lines changed: 46 additions & 110 deletions

File tree

drivers/clk/qcom/camcc-sc7180.c

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1652,32 +1652,35 @@ static int cam_cc_sc7180_probe(struct platform_device *pdev)
16521652
struct regmap *regmap;
16531653
int ret;
16541654

1655-
pm_runtime_enable(&pdev->dev);
1656-
ret = pm_clk_create(&pdev->dev);
1655+
ret = devm_pm_runtime_enable(&pdev->dev);
1656+
if (ret < 0)
1657+
return ret;
1658+
1659+
ret = devm_pm_clk_create(&pdev->dev);
16571660
if (ret < 0)
16581661
return ret;
16591662

16601663
ret = pm_clk_add(&pdev->dev, "xo");
16611664
if (ret < 0) {
16621665
dev_err(&pdev->dev, "Failed to acquire XO clock\n");
1663-
goto disable_pm_runtime;
1666+
return ret;
16641667
}
16651668

16661669
ret = pm_clk_add(&pdev->dev, "iface");
16671670
if (ret < 0) {
16681671
dev_err(&pdev->dev, "Failed to acquire iface clock\n");
1669-
goto disable_pm_runtime;
1672+
return ret;
16701673
}
16711674

16721675
ret = pm_runtime_get(&pdev->dev);
16731676
if (ret)
1674-
goto destroy_pm_clk;
1677+
return ret;
16751678

16761679
regmap = qcom_cc_map(pdev, &cam_cc_sc7180_desc);
16771680
if (IS_ERR(regmap)) {
16781681
ret = PTR_ERR(regmap);
16791682
pm_runtime_put(&pdev->dev);
1680-
goto destroy_pm_clk;
1683+
return ret;
16811684
}
16821685

16831686
clk_fabia_pll_configure(&cam_cc_pll0, regmap, &cam_cc_pll0_config);
@@ -1689,18 +1692,10 @@ static int cam_cc_sc7180_probe(struct platform_device *pdev)
16891692
pm_runtime_put(&pdev->dev);
16901693
if (ret < 0) {
16911694
dev_err(&pdev->dev, "Failed to register CAM CC clocks\n");
1692-
goto destroy_pm_clk;
1695+
return ret;
16931696
}
16941697

16951698
return 0;
1696-
1697-
destroy_pm_clk:
1698-
pm_clk_destroy(&pdev->dev);
1699-
1700-
disable_pm_runtime:
1701-
pm_runtime_disable(&pdev->dev);
1702-
1703-
return ret;
17041699
}
17051700

17061701
static const struct dev_pm_ops cam_cc_pm_ops = {

drivers/clk/qcom/lpass-gfm-sm8250.c

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -251,15 +251,18 @@ static int lpass_gfm_clk_driver_probe(struct platform_device *pdev)
251251
if (IS_ERR(cc->base))
252252
return PTR_ERR(cc->base);
253253

254-
pm_runtime_enable(dev);
255-
err = pm_clk_create(dev);
254+
err = devm_pm_runtime_enable(dev);
256255
if (err)
257-
goto pm_clk_err;
256+
return err;
257+
258+
err = devm_pm_clk_create(dev);
259+
if (err)
260+
return err;
258261

259262
err = of_pm_clk_add_clks(dev);
260263
if (err < 0) {
261264
dev_dbg(dev, "Failed to get lpass core voting clocks\n");
262-
goto clk_reg_err;
265+
return err;
263266
}
264267

265268
for (i = 0; i < data->onecell_data->num; i++) {
@@ -273,22 +276,16 @@ static int lpass_gfm_clk_driver_probe(struct platform_device *pdev)
273276

274277
err = devm_clk_hw_register(dev, &data->gfm_clks[i]->hw);
275278
if (err)
276-
goto clk_reg_err;
279+
return err;
277280

278281
}
279282

280283
err = devm_of_clk_add_hw_provider(dev, of_clk_hw_onecell_get,
281284
data->onecell_data);
282285
if (err)
283-
goto clk_reg_err;
286+
return err;
284287

285288
return 0;
286-
287-
clk_reg_err:
288-
pm_clk_destroy(dev);
289-
pm_clk_err:
290-
pm_runtime_disable(dev);
291-
return err;
292289
}
293290

294291
static const struct of_device_id lpass_gfm_clk_match_table[] = {

drivers/clk/qcom/lpasscorecc-sc7180.c

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -356,32 +356,18 @@ static const struct qcom_cc_desc lpass_audio_hm_sc7180_desc = {
356356
.num_gdscs = ARRAY_SIZE(lpass_audio_hm_sc7180_gdscs),
357357
};
358358

359-
static void lpass_pm_runtime_disable(void *data)
360-
{
361-
pm_runtime_disable(data);
362-
}
363-
364-
static void lpass_pm_clk_destroy(void *data)
365-
{
366-
pm_clk_destroy(data);
367-
}
368-
369359
static int lpass_create_pm_clks(struct platform_device *pdev)
370360
{
371361
int ret;
372362

373363
pm_runtime_use_autosuspend(&pdev->dev);
374364
pm_runtime_set_autosuspend_delay(&pdev->dev, 500);
375-
pm_runtime_enable(&pdev->dev);
376365

377-
ret = devm_add_action_or_reset(&pdev->dev, lpass_pm_runtime_disable, &pdev->dev);
366+
ret = devm_pm_runtime_enable(&pdev->dev);
378367
if (ret)
379368
return ret;
380369

381-
ret = pm_clk_create(&pdev->dev);
382-
if (ret)
383-
return ret;
384-
ret = devm_add_action_or_reset(&pdev->dev, lpass_pm_clk_destroy, &pdev->dev);
370+
ret = devm_pm_clk_create(&pdev->dev);
385371
if (ret)
386372
return ret;
387373

drivers/clk/qcom/mss-sc7180.c

Lines changed: 8 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -73,36 +73,23 @@ static int mss_sc7180_probe(struct platform_device *pdev)
7373
{
7474
int ret;
7575

76-
pm_runtime_enable(&pdev->dev);
77-
ret = pm_clk_create(&pdev->dev);
76+
ret = devm_pm_runtime_enable(&pdev->dev);
7877
if (ret)
79-
goto disable_pm_runtime;
78+
return ret;
79+
80+
ret = devm_pm_clk_create(&pdev->dev);
81+
if (ret)
82+
return ret;
8083

8184
ret = pm_clk_add(&pdev->dev, "cfg_ahb");
8285
if (ret < 0) {
8386
dev_err(&pdev->dev, "failed to acquire iface clock\n");
84-
goto destroy_pm_clk;
87+
return ret;
8588
}
8689

8790
ret = qcom_cc_probe(pdev, &mss_sc7180_desc);
8891
if (ret < 0)
89-
goto destroy_pm_clk;
90-
91-
return 0;
92-
93-
destroy_pm_clk:
94-
pm_clk_destroy(&pdev->dev);
95-
96-
disable_pm_runtime:
97-
pm_runtime_disable(&pdev->dev);
98-
99-
return ret;
100-
}
101-
102-
static int mss_sc7180_remove(struct platform_device *pdev)
103-
{
104-
pm_clk_destroy(&pdev->dev);
105-
pm_runtime_disable(&pdev->dev);
92+
return ret;
10693

10794
return 0;
10895
}
@@ -119,7 +106,6 @@ MODULE_DEVICE_TABLE(of, mss_sc7180_match_table);
119106

120107
static struct platform_driver mss_sc7180_driver = {
121108
.probe = mss_sc7180_probe,
122-
.remove = mss_sc7180_remove,
123109
.driver = {
124110
.name = "sc7180-mss",
125111
.of_match_table = mss_sc7180_match_table,

drivers/clk/qcom/q6sstop-qcs404.c

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -159,46 +159,33 @@ static int q6sstopcc_qcs404_probe(struct platform_device *pdev)
159159
const struct qcom_cc_desc *desc;
160160
int ret;
161161

162-
pm_runtime_enable(&pdev->dev);
163-
ret = pm_clk_create(&pdev->dev);
162+
ret = devm_pm_runtime_enable(&pdev->dev);
164163
if (ret)
165-
goto disable_pm_runtime;
164+
return ret;
165+
166+
ret = devm_pm_clk_create(&pdev->dev);
167+
if (ret)
168+
return ret;
166169

167170
ret = pm_clk_add(&pdev->dev, NULL);
168171
if (ret < 0) {
169172
dev_err(&pdev->dev, "failed to acquire iface clock\n");
170-
goto destroy_pm_clk;
173+
return ret;
171174
}
172175

173176
q6sstop_regmap_config.name = "q6sstop_tcsr";
174177
desc = &tcsr_qcs404_desc;
175178

176179
ret = qcom_cc_probe_by_index(pdev, 1, desc);
177180
if (ret)
178-
goto destroy_pm_clk;
181+
return ret;
179182

180183
q6sstop_regmap_config.name = "q6sstop_cc";
181184
desc = &q6sstop_qcs404_desc;
182185

183186
ret = qcom_cc_probe_by_index(pdev, 0, desc);
184187
if (ret)
185-
goto destroy_pm_clk;
186-
187-
return 0;
188-
189-
destroy_pm_clk:
190-
pm_clk_destroy(&pdev->dev);
191-
192-
disable_pm_runtime:
193-
pm_runtime_disable(&pdev->dev);
194-
195-
return ret;
196-
}
197-
198-
static int q6sstopcc_qcs404_remove(struct platform_device *pdev)
199-
{
200-
pm_clk_destroy(&pdev->dev);
201-
pm_runtime_disable(&pdev->dev);
188+
return ret;
202189

203190
return 0;
204191
}
@@ -209,7 +196,6 @@ static const struct dev_pm_ops q6sstopcc_pm_ops = {
209196

210197
static struct platform_driver q6sstopcc_qcs404_driver = {
211198
.probe = q6sstopcc_qcs404_probe,
212-
.remove = q6sstopcc_qcs404_remove,
213199
.driver = {
214200
.name = "qcs404-q6sstopcc",
215201
.of_match_table = q6sstopcc_qcs404_match_table,

drivers/clk/qcom/turingcc-qcs404.c

Lines changed: 8 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -110,36 +110,23 @@ static int turingcc_probe(struct platform_device *pdev)
110110
{
111111
int ret;
112112

113-
pm_runtime_enable(&pdev->dev);
114-
ret = pm_clk_create(&pdev->dev);
113+
ret = devm_pm_runtime_enable(&pdev->dev);
115114
if (ret)
116-
goto disable_pm_runtime;
115+
return ret;
116+
117+
ret = devm_pm_clk_create(&pdev->dev);
118+
if (ret)
119+
return ret;
117120

118121
ret = pm_clk_add(&pdev->dev, NULL);
119122
if (ret < 0) {
120123
dev_err(&pdev->dev, "failed to acquire iface clock\n");
121-
goto destroy_pm_clk;
124+
return ret;
122125
}
123126

124127
ret = qcom_cc_probe(pdev, &turingcc_desc);
125128
if (ret < 0)
126-
goto destroy_pm_clk;
127-
128-
return 0;
129-
130-
destroy_pm_clk:
131-
pm_clk_destroy(&pdev->dev);
132-
133-
disable_pm_runtime:
134-
pm_runtime_disable(&pdev->dev);
135-
136-
return ret;
137-
}
138-
139-
static int turingcc_remove(struct platform_device *pdev)
140-
{
141-
pm_clk_destroy(&pdev->dev);
142-
pm_runtime_disable(&pdev->dev);
129+
return ret;
143130

144131
return 0;
145132
}
@@ -156,7 +143,6 @@ MODULE_DEVICE_TABLE(of, turingcc_match_table);
156143

157144
static struct platform_driver turingcc_driver = {
158145
.probe = turingcc_probe,
159-
.remove = turingcc_remove,
160146
.driver = {
161147
.name = "qcs404-turingcc",
162148
.of_match_table = turingcc_match_table,

0 commit comments

Comments
 (0)