The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* Re: [PATCH v2 1/5] interconnect: Add devm_of_icc_get_by_index() as exported API for users
       [not found] ` <20260501-milos-camcc-icc-v2-1-bb83c1256cc3@fairphone.com>
@ 2026-05-08  1:32   ` Bjorn Andersson
  2026-05-08 22:14     ` Georgi Djakov
  0 siblings, 1 reply; 2+ messages in thread
From: Bjorn Andersson @ 2026-05-08  1:32 UTC (permalink / raw)
  To: Luca Weiss
  Cc: Georgi Djakov, Michael Turquette, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, Mike Tipton,
	Taniya Das, ~postmarketos/upstreaming, phone-devel, linux-pm,
	linux-kernel, linux-arm-msm, linux-clk, devicetree, Konrad Dybcio,
	Dmitry Baryshkov

On Fri, May 01, 2026 at 11:18:29AM +0200, Luca Weiss wrote:
> Users can use devm version of of_icc_get_by_index() to benefit from
> automatic resource release.
> 
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>

Georgi, can I have an ack on this, or an immutable branch and a ping
once it's available?

Thanks,
Bjorn

> ---
>  drivers/interconnect/core.c  | 20 ++++++++++++++++++++
>  include/linux/interconnect.h |  6 ++++++
>  2 files changed, 26 insertions(+)
> 
> diff --git a/drivers/interconnect/core.c b/drivers/interconnect/core.c
> index 8569b78a1851..bc2e416dbcb2 100644
> --- a/drivers/interconnect/core.c
> +++ b/drivers/interconnect/core.c
> @@ -443,6 +443,26 @@ struct icc_path *devm_of_icc_get(struct device *dev, const char *name)
>  }
>  EXPORT_SYMBOL_GPL(devm_of_icc_get);
>  
> +struct icc_path *devm_of_icc_get_by_index(struct device *dev, int idx)
> +{
> +	struct icc_path **ptr, *path;
> +
> +	ptr = devres_alloc(devm_icc_release, sizeof(*ptr), GFP_KERNEL);
> +	if (!ptr)
> +		return ERR_PTR(-ENOMEM);
> +
> +	path = of_icc_get_by_index(dev, idx);
> +	if (!IS_ERR(path)) {
> +		*ptr = path;
> +		devres_add(dev, ptr);
> +	} else {
> +		devres_free(ptr);
> +	}
> +
> +	return path;
> +}
> +EXPORT_SYMBOL_GPL(devm_of_icc_get_by_index);
> +
>  /**
>   * of_icc_get_by_index() - get a path handle from a DT node based on index
>   * @dev: device pointer for the consumer device
> diff --git a/include/linux/interconnect.h b/include/linux/interconnect.h
> index 4b12821528a6..75a32ad0482e 100644
> --- a/include/linux/interconnect.h
> +++ b/include/linux/interconnect.h
> @@ -47,6 +47,7 @@ struct icc_path *of_icc_get(struct device *dev, const char *name);
>  struct icc_path *devm_of_icc_get(struct device *dev, const char *name);
>  int devm_of_icc_bulk_get(struct device *dev, int num_paths, struct icc_bulk_data *paths);
>  struct icc_path *of_icc_get_by_index(struct device *dev, int idx);
> +struct icc_path *devm_of_icc_get_by_index(struct device *dev, int idx);
>  void icc_put(struct icc_path *path);
>  int icc_enable(struct icc_path *path);
>  int icc_disable(struct icc_path *path);
> @@ -79,6 +80,11 @@ static inline struct icc_path *of_icc_get_by_index(struct device *dev, int idx)
>  	return NULL;
>  }
>  
> +static inline struct icc_path *devm_of_icc_get_by_index(struct device *dev, int idx)
> +{
> +	return NULL;
> +}
> +
>  static inline void icc_put(struct icc_path *path)
>  {
>  }
> 
> -- 
> 2.54.0
> 

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH v2 1/5] interconnect: Add devm_of_icc_get_by_index() as exported API for users
  2026-05-08  1:32   ` [PATCH v2 1/5] interconnect: Add devm_of_icc_get_by_index() as exported API for users Bjorn Andersson
@ 2026-05-08 22:14     ` Georgi Djakov
  0 siblings, 0 replies; 2+ messages in thread
From: Georgi Djakov @ 2026-05-08 22:14 UTC (permalink / raw)
  To: Bjorn Andersson, Luca Weiss
  Cc: Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Konrad Dybcio, Mike Tipton, Taniya Das,
	~postmarketos/upstreaming, phone-devel, linux-pm, linux-kernel,
	linux-arm-msm, linux-clk, devicetree, Konrad Dybcio,
	Dmitry Baryshkov

On 5/8/26 4:32 AM, Bjorn Andersson wrote:
> On Fri, May 01, 2026 at 11:18:29AM +0200, Luca Weiss wrote:
>> Users can use devm version of of_icc_get_by_index() to benefit from
>> automatic resource release.
>>
>> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
> 
> Georgi, can I have an ack on this, or an immutable branch and a ping
> once it's available?

Hi Bjorn, please apply it.

Acked-by: Georgi Djakov <djakov@kernel.org>

Thanks,
Georgi
> 
> Thanks,
> Bjorn
> 
>> ---
>>   drivers/interconnect/core.c  | 20 ++++++++++++++++++++
>>   include/linux/interconnect.h |  6 ++++++
>>   2 files changed, 26 insertions(+)
>>
>> diff --git a/drivers/interconnect/core.c b/drivers/interconnect/core.c
>> index 8569b78a1851..bc2e416dbcb2 100644
>> --- a/drivers/interconnect/core.c
>> +++ b/drivers/interconnect/core.c
>> @@ -443,6 +443,26 @@ struct icc_path *devm_of_icc_get(struct device *dev, const char *name)
>>   }
>>   EXPORT_SYMBOL_GPL(devm_of_icc_get);
>>   
>> +struct icc_path *devm_of_icc_get_by_index(struct device *dev, int idx)
>> +{
>> +	struct icc_path **ptr, *path;
>> +
>> +	ptr = devres_alloc(devm_icc_release, sizeof(*ptr), GFP_KERNEL);
>> +	if (!ptr)
>> +		return ERR_PTR(-ENOMEM);
>> +
>> +	path = of_icc_get_by_index(dev, idx);
>> +	if (!IS_ERR(path)) {
>> +		*ptr = path;
>> +		devres_add(dev, ptr);
>> +	} else {
>> +		devres_free(ptr);
>> +	}
>> +
>> +	return path;
>> +}
>> +EXPORT_SYMBOL_GPL(devm_of_icc_get_by_index);
>> +
>>   /**
>>    * of_icc_get_by_index() - get a path handle from a DT node based on index
>>    * @dev: device pointer for the consumer device
>> diff --git a/include/linux/interconnect.h b/include/linux/interconnect.h
>> index 4b12821528a6..75a32ad0482e 100644
>> --- a/include/linux/interconnect.h
>> +++ b/include/linux/interconnect.h
>> @@ -47,6 +47,7 @@ struct icc_path *of_icc_get(struct device *dev, const char *name);
>>   struct icc_path *devm_of_icc_get(struct device *dev, const char *name);
>>   int devm_of_icc_bulk_get(struct device *dev, int num_paths, struct icc_bulk_data *paths);
>>   struct icc_path *of_icc_get_by_index(struct device *dev, int idx);
>> +struct icc_path *devm_of_icc_get_by_index(struct device *dev, int idx);
>>   void icc_put(struct icc_path *path);
>>   int icc_enable(struct icc_path *path);
>>   int icc_disable(struct icc_path *path);
>> @@ -79,6 +80,11 @@ static inline struct icc_path *of_icc_get_by_index(struct device *dev, int idx)
>>   	return NULL;
>>   }
>>   
>> +static inline struct icc_path *devm_of_icc_get_by_index(struct device *dev, int idx)
>> +{
>> +	return NULL;
>> +}
>> +
>>   static inline void icc_put(struct icc_path *path)
>>   {
>>   }
>>
>> -- 
>> 2.54.0
>>


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-05-08 22:14 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20260501-milos-camcc-icc-v2-0-bb83c1256cc3@fairphone.com>
     [not found] ` <20260501-milos-camcc-icc-v2-1-bb83c1256cc3@fairphone.com>
2026-05-08  1:32   ` [PATCH v2 1/5] interconnect: Add devm_of_icc_get_by_index() as exported API for users Bjorn Andersson
2026-05-08 22:14     ` Georgi Djakov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox