Skip to content

Commit d315311

Browse files
quic-varadaandersson
authored andcommitted
interconnect: icc-clk: Add devm_icc_clk_register
Wrap icc_clk_register to create devm_icc_clk_register to be able to release the resources properly. Acked-by: Georgi Djakov <[email protected]> Reviewed-by: Dmitry Baryshkov <[email protected]> Signed-off-by: Varadarajan Narayanan <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Bjorn Andersson <[email protected]>
1 parent f45b94f commit d315311

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

drivers/interconnect/icc-clk.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,24 @@ struct icc_provider *icc_clk_register(struct device *dev,
148148
}
149149
EXPORT_SYMBOL_GPL(icc_clk_register);
150150

151+
static void devm_icc_release(void *res)
152+
{
153+
icc_clk_unregister(res);
154+
}
155+
156+
int devm_icc_clk_register(struct device *dev, unsigned int first_id,
157+
unsigned int num_clocks, const struct icc_clk_data *data)
158+
{
159+
struct icc_provider *prov;
160+
161+
prov = icc_clk_register(dev, first_id, num_clocks, data);
162+
if (IS_ERR(prov))
163+
return PTR_ERR(prov);
164+
165+
return devm_add_action_or_reset(dev, devm_icc_release, prov);
166+
}
167+
EXPORT_SYMBOL_GPL(devm_icc_clk_register);
168+
151169
/**
152170
* icc_clk_unregister() - unregister a previously registered clk interconnect provider
153171
* @provider: provider returned by icc_clk_register()

include/linux/interconnect-clk.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ struct icc_provider *icc_clk_register(struct device *dev,
1919
unsigned int first_id,
2020
unsigned int num_clocks,
2121
const struct icc_clk_data *data);
22+
int devm_icc_clk_register(struct device *dev, unsigned int first_id,
23+
unsigned int num_clocks, const struct icc_clk_data *data);
2224
void icc_clk_unregister(struct icc_provider *provider);
2325

2426
#endif

0 commit comments

Comments
 (0)