Keep the header pointer in the .data section so we don't initialize it
again after relocation, adjust cmd_db_get_header() to work with the
U-Boot API, and skip validating the header since all cmd-db users are
children of the rpmh-rsc and those children will only probe if cmd-db
initializes successfully.

Acked-by: Sumit Garg <sumit.g...@linaro.org>
Signed-off-by: Caleb Connolly <caleb.conno...@linaro.org>
---
 drivers/soc/qcom/cmd-db.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/drivers/soc/qcom/cmd-db.c b/drivers/soc/qcom/cmd-db.c
index f707aed59adf..08736ea936ae 100644
--- a/drivers/soc/qcom/cmd-db.c
+++ b/drivers/soc/qcom/cmd-db.c
@@ -128,16 +128,12 @@ static int cmd_db_get_header(const char *id, const struct 
entry_header **eh,
                             const struct rsc_hdr **rh)
 {
        const struct rsc_hdr *rsc_hdr;
        const struct entry_header *ent;
-       int ret, i, j;
+       int i, j;
        u8 query[sizeof(ent->id)] __nonstring;
 
-       ret = cmd_db_ready();
-       if (ret)
-               return ret;
-
-       strtomem_pad(query, id, 0);
+       strncpy(query, id, sizeof(query));
 
        for (i = 0; i < MAX_SLV_ID; i++) {
                rsc_hdr = &cmd_db_header->header[i];
                if (!rsc_hdr->slv_id)
@@ -172,8 +168,15 @@ u32 cmd_db_read_addr(const char *id)
 {
        int ret;
        const struct entry_header *ent;
 
+       debug("%s(%s)\n", __func__, id);
+
+       if (!cmd_db_header) {
+               log_err("%s: Command DB not initialized\n", __func__);
+               return 0;
+       }
+
        ret = cmd_db_get_header(id, &ent, NULL);
 
        return ret < 0 ? 0 : le32_to_cpu(ent->addr);
 }
@@ -213,9 +216,9 @@ static const struct udevice_id cmd_db_ids[] = {
 
 U_BOOT_DRIVER(qcom_cmd_db) = {
        .name           = "qcom_cmd_db",
        .id             = UCLASS_MISC,
-       .probe          = cmd_db_bind,
+       .bind           = cmd_db_bind,
        .of_match       = cmd_db_ids,
 };
 
 MODULE_DESCRIPTION("Qualcomm Technologies, Inc. Command DB Driver");

-- 
2.45.2

Reply via email to