Message ID | 1415727993-22032-5-git-send-email-sjg@chromium.org |
---|---|
State | Accepted |
Delegated to: | Simon Glass |
Headers | show |
On Tue, Nov 11, 2014 at 10:46:20AM -0700, Simon Glass wrote: > Since we scan from left to right looking for the first digit, "i2c0" returns > 2 instead of 0 for the alias number. Adjust the code to scan from right to > left instead. > > Signed-off-by: Simon Glass <sjg@chromium.org> How about i2c10 ? I assume you see where I'm worried about here..
Hi Tom, On 17 November 2014 00:46, Tom Rini <trini@ti.com> wrote: > > On Tue, Nov 11, 2014 at 10:46:20AM -0700, Simon Glass wrote: > > > Since we scan from left to right looking for the first digit, "i2c0" returns > > 2 instead of 0 for the alias number. Adjust the code to scan from right to > > left instead. > > > > Signed-off-by: Simon Glass <sjg@chromium.org> > > How about i2c10 ? I assume you see where I'm worried about here.. It goes back to the first non-digit, so will produce 10 in this case as expected. Regards, Simon
Hello Simon, Am 11.11.2014 18:46, schrieb Simon Glass: > Since we scan from left to right looking for the first digit, "i2c0" returns > 2 instead of 0 for the alias number. Adjust the code to scan from right to > left instead. > > Signed-off-by: Simon Glass <sjg@chromium.org> > --- > > Changes in v2: > - Add new patch to correct handling of aliases with embedded digits > > lib/fdtdec.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) Acked-by: Heiko Schocher <hs@denx.de> bye, Heiko
On Mon, Nov 17, 2014 at 05:57:43AM +0000, Simon Glass wrote: > Hi Tom, > > On 17 November 2014 00:46, Tom Rini <trini@ti.com> wrote: > > > > On Tue, Nov 11, 2014 at 10:46:20AM -0700, Simon Glass wrote: > > > > > Since we scan from left to right looking for the first digit, "i2c0" returns > > > 2 instead of 0 for the alias number. Adjust the code to scan from right to > > > left instead. > > > > > > Signed-off-by: Simon Glass <sjg@chromium.org> > > > > How about i2c10 ? I assume you see where I'm worried about here.. > > It goes back to the first non-digit, so will produce 10 in this case > as expected. Oh good. Reviewed-by: Tom Rini <trini@ti.com>
On 17 November 2014 at 19:32, Tom Rini <trini@ti.com> wrote: > On Mon, Nov 17, 2014 at 05:57:43AM +0000, Simon Glass wrote: >> Hi Tom, >> >> On 17 November 2014 00:46, Tom Rini <trini@ti.com> wrote: >> > >> > On Tue, Nov 11, 2014 at 10:46:20AM -0700, Simon Glass wrote: >> > >> > > Since we scan from left to right looking for the first digit, "i2c0" returns >> > > 2 instead of 0 for the alias number. Adjust the code to scan from right to >> > > left instead. >> > > >> > > Signed-off-by: Simon Glass <sjg@chromium.org> >> > >> > How about i2c10 ? I assume you see where I'm worried about here.. >> >> It goes back to the first non-digit, so will produce 10 in this case >> as expected. > > Oh good. > > Reviewed-by: Tom Rini <trini@ti.com> Applied to u-boot-dm.
diff --git a/lib/fdtdec.c b/lib/fdtdec.c index 9714620..da6ef6b 100644 --- a/lib/fdtdec.c +++ b/lib/fdtdec.c @@ -355,9 +355,9 @@ int fdtdec_get_alias_seq(const void *blob, const char *base, int offset, slash = strrchr(prop, '/'); if (strcmp(slash + 1, find_name)) continue; - for (p = name; *p; p++) { - if (isdigit(*p)) { - *seqp = simple_strtoul(p, NULL, 10); + for (p = name + strlen(name) - 1; p > name; p--) { + if (!isdigit(*p)) { + *seqp = simple_strtoul(p + 1, NULL, 10); debug("Found seq %d\n", *seqp); return 0; }
Since we scan from left to right looking for the first digit, "i2c0" returns 2 instead of 0 for the alias number. Adjust the code to scan from right to left instead. Signed-off-by: Simon Glass <sjg@chromium.org> --- Changes in v2: - Add new patch to correct handling of aliases with embedded digits lib/fdtdec.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)