From: Sumit Garg <sumit.g...@oss.qualcomm.com>

RB1 and RB2 have three root compatibles where the last one can't be used
to decode fdtfile name (qcm* vs qrb*). So rather just rely on the first
compatible to retrieve the SoC name.

Signed-off-by: Sumit Garg <sumit.g...@oss.qualcomm.com>
---
 arch/arm/mach-snapdragon/board.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-snapdragon/board.c b/arch/arm/mach-snapdragon/board.c
index deae4d32378..dc8220e89b4 100644
--- a/arch/arm/mach-snapdragon/board.c
+++ b/arch/arm/mach-snapdragon/board.c
@@ -437,16 +437,24 @@ static void configure_env(void)
 
        /* The Qualcomm reference boards (RBx, HDK, etc)  */
        if (!strncmp("qcom", buf, strlen("qcom"))) {
+               char *soc;
+
                /*
                 * They all have the first compatible as "qcom,<soc>-<board>"
                 * (e.g. "qcom,qrb5165-rb5"). We extract just the part after
                 * the dash.
                 */
-               if (!strsep(&tmp, "-")) {
+               if (!strsep(&tmp, ",")) {
+                       log_warning("compatible '%s' has no ','\n", buf);
+                       return;
+               }
+               soc = strsep(&tmp, "-");
+               if (!soc) {
                        log_warning("compatible '%s' has no '-'\n", buf);
                        return;
                }
-               /* tmp is now "rb5" */
+
+               env_set("soc", soc);
                env_set("board", tmp);
        } else {
                if (!strsep(&tmp, ",")) {
-- 
2.43.0

Reply via email to