diff mbox series

ARM: stm32: Fix SoM and board coding strap GPIO handling on DHSOM

Message ID 20211113022639.231883-1-marex@denx.de
State Accepted
Commit 525dd34535005ecde1cde7235c4d1d7329617248
Delegated to: Patrice Chotard
Headers show
Series ARM: stm32: Fix SoM and board coding strap GPIO handling on DHSOM | expand

Commit Message

Marek Vasut Nov. 13, 2021, 2:26 a.m. UTC
The variables retaining the strap values have to be initialized, always,
make it so. Moreover, free the requested GPIO list at the end to avoid
wasting memory.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Patrice Chotard <patrice.chotard@foss.st.com>
Cc: Patrick Delaunay <patrick.delaunay@foss.st.com>
---
 board/dhelectronics/dh_stm32mp1/board.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

Comments

Patrice CHOTARD Nov. 15, 2021, 8:14 a.m. UTC | #1
Hi Marek

On 11/13/21 3:26 AM, Marek Vasut wrote:
> The variables retaining the strap values have to be initialized, always,
> make it so. Moreover, free the requested GPIO list at the end to avoid
> wasting memory.
> 
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Patrice Chotard <patrice.chotard@foss.st.com>
> Cc: Patrick Delaunay <patrick.delaunay@foss.st.com>
> ---
>  board/dhelectronics/dh_stm32mp1/board.c | 14 ++++++++++----
>  1 file changed, 10 insertions(+), 4 deletions(-)
> 
> diff --git a/board/dhelectronics/dh_stm32mp1/board.c b/board/dhelectronics/dh_stm32mp1/board.c
> index a8402e24572..f44afb01e27 100644
> --- a/board/dhelectronics/dh_stm32mp1/board.c
> +++ b/board/dhelectronics/dh_stm32mp1/board.c
> @@ -212,34 +212,40 @@ static void board_get_coding_straps(void)
>  	ofnode node;
>  	int i, ret;
>  
> +	brdcode = 0;
> +	ddr3code = 0;
> +	somcode = 0;
> +
>  	node = ofnode_path("/config");
>  	if (!ofnode_valid(node)) {
>  		printf("%s: no /config node?\n", __func__);
>  		return;
>  	}
>  
> -	brdcode = 0;
> -	ddr3code = 0;
> -	somcode = 0;
> -
>  	ret = gpio_request_list_by_name_nodev(node, "dh,som-coding-gpios",
>  					      gpio, ARRAY_SIZE(gpio),
>  					      GPIOD_IS_IN);
>  	for (i = 0; i < ret; i++)
>  		somcode |= !!dm_gpio_get_value(&(gpio[i])) << i;
>  
> +	gpio_free_list_nodev(gpio, ret);
> +
>  	ret = gpio_request_list_by_name_nodev(node, "dh,ddr3-coding-gpios",
>  					      gpio, ARRAY_SIZE(gpio),
>  					      GPIOD_IS_IN);
>  	for (i = 0; i < ret; i++)
>  		ddr3code |= !!dm_gpio_get_value(&(gpio[i])) << i;
>  
> +	gpio_free_list_nodev(gpio, ret);
> +
>  	ret = gpio_request_list_by_name_nodev(node, "dh,board-coding-gpios",
>  					      gpio, ARRAY_SIZE(gpio),
>  					      GPIOD_IS_IN);
>  	for (i = 0; i < ret; i++)
>  		brdcode |= !!dm_gpio_get_value(&(gpio[i])) << i;
>  
> +	gpio_free_list_nodev(gpio, ret);
> +
>  	printf("Code:  SoM:rev=%d,ddr3=%d Board:rev=%d\n",
>  		somcode, ddr3code, brdcode);
>  }
> 
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Thanks
Patrice
Patrick Delaunay Nov. 15, 2021, 11:29 a.m. UTC | #2
Hi Marek,

On 11/13/21 3:26 AM, Marek Vasut wrote:
> The variables retaining the strap values have to be initialized, always,
> make it so. Moreover, free the requested GPIO list at the end to avoid
> wasting memory.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Patrice Chotard <patrice.chotard@foss.st.com>
> Cc: Patrick Delaunay <patrick.delaunay@foss.st.com>
> ---
>   board/dhelectronics/dh_stm32mp1/board.c | 14 ++++++++++----
>   1 file changed, 10 insertions(+), 4 deletions(-)
>


Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>

Thanks
Patrick
Patrice CHOTARD Nov. 30, 2021, 10:30 a.m. UTC | #3
Hi Marek

On 11/15/21 12:29 PM, Patrick DELAUNAY wrote:
> Hi Marek,
> 
> On 11/13/21 3:26 AM, Marek Vasut wrote:
>> The variables retaining the strap values have to be initialized, always,
>> make it so. Moreover, free the requested GPIO list at the end to avoid
>> wasting memory.
>>
>> Signed-off-by: Marek Vasut <marex@denx.de>
>> Cc: Patrice Chotard <patrice.chotard@foss.st.com>
>> Cc: Patrick Delaunay <patrick.delaunay@foss.st.com>
>> ---
>>   board/dhelectronics/dh_stm32mp1/board.c | 14 ++++++++++----
>>   1 file changed, 10 insertions(+), 4 deletions(-)
>>
> 
> 
> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
> 
> Thanks
> Patrick
> 
> 
> 
Applied to u-boot-stm32/next

Thanks
Patrice
diff mbox series

Patch

diff --git a/board/dhelectronics/dh_stm32mp1/board.c b/board/dhelectronics/dh_stm32mp1/board.c
index a8402e24572..f44afb01e27 100644
--- a/board/dhelectronics/dh_stm32mp1/board.c
+++ b/board/dhelectronics/dh_stm32mp1/board.c
@@ -212,34 +212,40 @@  static void board_get_coding_straps(void)
 	ofnode node;
 	int i, ret;
 
+	brdcode = 0;
+	ddr3code = 0;
+	somcode = 0;
+
 	node = ofnode_path("/config");
 	if (!ofnode_valid(node)) {
 		printf("%s: no /config node?\n", __func__);
 		return;
 	}
 
-	brdcode = 0;
-	ddr3code = 0;
-	somcode = 0;
-
 	ret = gpio_request_list_by_name_nodev(node, "dh,som-coding-gpios",
 					      gpio, ARRAY_SIZE(gpio),
 					      GPIOD_IS_IN);
 	for (i = 0; i < ret; i++)
 		somcode |= !!dm_gpio_get_value(&(gpio[i])) << i;
 
+	gpio_free_list_nodev(gpio, ret);
+
 	ret = gpio_request_list_by_name_nodev(node, "dh,ddr3-coding-gpios",
 					      gpio, ARRAY_SIZE(gpio),
 					      GPIOD_IS_IN);
 	for (i = 0; i < ret; i++)
 		ddr3code |= !!dm_gpio_get_value(&(gpio[i])) << i;
 
+	gpio_free_list_nodev(gpio, ret);
+
 	ret = gpio_request_list_by_name_nodev(node, "dh,board-coding-gpios",
 					      gpio, ARRAY_SIZE(gpio),
 					      GPIOD_IS_IN);
 	for (i = 0; i < ret; i++)
 		brdcode |= !!dm_gpio_get_value(&(gpio[i])) << i;
 
+	gpio_free_list_nodev(gpio, ret);
+
 	printf("Code:  SoM:rev=%d,ddr3=%d Board:rev=%d\n",
 		somcode, ddr3code, brdcode);
 }