[PATCH] iio: adc: stm32-dfsdm: handle label as an optional property

Olivier Moysan posted 1 patch 1 year, 2 months ago
drivers/iio/adc/stm32-dfsdm-adc.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
[PATCH] iio: adc: stm32-dfsdm: handle label as an optional property
Posted by Olivier Moysan 1 year, 2 months ago
The label property is defined as optional in the DFSDM binding.
Parse the label property only when it is defined in the device tree.

Fixes: 3208fa0cd919 ("iio: adc: stm32-dfsdm: adopt generic channels bindings")
Signed-off-by: Olivier Moysan <olivier.moysan@foss.st.com>
---
 drivers/iio/adc/stm32-dfsdm-adc.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/iio/adc/stm32-dfsdm-adc.c b/drivers/iio/adc/stm32-dfsdm-adc.c
index 2037f73426d4..e304e3714020 100644
--- a/drivers/iio/adc/stm32-dfsdm-adc.c
+++ b/drivers/iio/adc/stm32-dfsdm-adc.c
@@ -691,11 +691,14 @@ static int stm32_dfsdm_generic_channel_parse_of(struct stm32_dfsdm *dfsdm,
 		return -EINVAL;
 	}
 
-	ret = fwnode_property_read_string(node, "label", &ch->datasheet_name);
-	if (ret < 0) {
-		dev_err(&indio_dev->dev,
-			" Error parsing 'label' for idx %d\n", ch->channel);
-		return ret;
+	if (fwnode_property_present(node, "label")) {
+		/* label is optional */
+		ret = fwnode_property_read_string(node, "label", &ch->datasheet_name);
+		if (ret < 0) {
+			dev_err(&indio_dev->dev,
+				" Error parsing 'label' for idx %d\n", ch->channel);
+			return ret;
+		}
 	}
 
 	df_ch =  &dfsdm->ch_list[ch->channel];
-- 
2.25.1
Re: [PATCH] iio: adc: stm32-dfsdm: handle label as an optional property
Posted by Jonathan Cameron 1 year, 2 months ago
On Thu, 14 Nov 2024 11:24:59 +0100
Olivier Moysan <olivier.moysan@foss.st.com> wrote:

> The label property is defined as optional in the DFSDM binding.
> Parse the label property only when it is defined in the device tree.
> 
> Fixes: 3208fa0cd919 ("iio: adc: stm32-dfsdm: adopt generic channels bindings")
> Signed-off-by: Olivier Moysan <olivier.moysan@foss.st.com>
This could be done by just ignoring the return of fw_node_property_read_string()
but your fix will do a little more such as report an error if the property is
the wrong type etc, so I'll take it.

Applied to the fixes-togreg branch of iio.git.

Thanks,

Jonathan

> ---
>  drivers/iio/adc/stm32-dfsdm-adc.c | 13 ++++++++-----
>  1 file changed, 8 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/iio/adc/stm32-dfsdm-adc.c b/drivers/iio/adc/stm32-dfsdm-adc.c
> index 2037f73426d4..e304e3714020 100644
> --- a/drivers/iio/adc/stm32-dfsdm-adc.c
> +++ b/drivers/iio/adc/stm32-dfsdm-adc.c
> @@ -691,11 +691,14 @@ static int stm32_dfsdm_generic_channel_parse_of(struct stm32_dfsdm *dfsdm,
>  		return -EINVAL;
>  	}
>  
> -	ret = fwnode_property_read_string(node, "label", &ch->datasheet_name);
> -	if (ret < 0) {
> -		dev_err(&indio_dev->dev,
> -			" Error parsing 'label' for idx %d\n", ch->channel);
> -		return ret;
> +	if (fwnode_property_present(node, "label")) {
> +		/* label is optional */
> +		ret = fwnode_property_read_string(node, "label", &ch->datasheet_name);
> +		if (ret < 0) {
> +			dev_err(&indio_dev->dev,
> +				" Error parsing 'label' for idx %d\n", ch->channel);
> +			return ret;
> +		}
>  	}
>  
>  	df_ch =  &dfsdm->ch_list[ch->channel];