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 |
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
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
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 --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); }
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(-)