mirror of
https://github.com/torvalds/linux.git
synced 2025-04-09 14:45:27 +00:00
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 <djakov@kernel.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Signed-off-by: Varadarajan Narayanan <quic_varada@quicinc.com> Link: https://lore.kernel.org/r/20240430064214.2030013-4-quic_varada@quicinc.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
This commit is contained in:
parent
f45b94ffc5
commit
d315311361
@ -148,6 +148,24 @@ err:
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(icc_clk_register);
|
||||
|
||||
static void devm_icc_release(void *res)
|
||||
{
|
||||
icc_clk_unregister(res);
|
||||
}
|
||||
|
||||
int devm_icc_clk_register(struct device *dev, unsigned int first_id,
|
||||
unsigned int num_clocks, const struct icc_clk_data *data)
|
||||
{
|
||||
struct icc_provider *prov;
|
||||
|
||||
prov = icc_clk_register(dev, first_id, num_clocks, data);
|
||||
if (IS_ERR(prov))
|
||||
return PTR_ERR(prov);
|
||||
|
||||
return devm_add_action_or_reset(dev, devm_icc_release, prov);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(devm_icc_clk_register);
|
||||
|
||||
/**
|
||||
* icc_clk_unregister() - unregister a previously registered clk interconnect provider
|
||||
* @provider: provider returned by icc_clk_register()
|
||||
|
@ -19,6 +19,8 @@ struct icc_provider *icc_clk_register(struct device *dev,
|
||||
unsigned int first_id,
|
||||
unsigned int num_clocks,
|
||||
const struct icc_clk_data *data);
|
||||
int devm_icc_clk_register(struct device *dev, unsigned int first_id,
|
||||
unsigned int num_clocks, const struct icc_clk_data *data);
|
||||
void icc_clk_unregister(struct icc_provider *provider);
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user