Hi Aswin,

On 27-08-2026 13:03, Aswin Murugan wrote:
msm_sdc_clk_init() reads the "max-frequency" DT property with
dev_read_u32(dev, "max-frequency", (uint *)(&clk_rate)), writing
only 4 bytes into clk_rate, an 8-byte ulong. The upper 4 bytes are
left uninitialized whenever the property is present. Read into a
u32 local instead, then assign it to clk_rate.

Signed-off-by: Aswin Murugan<[email protected]>
---
  drivers/mmc/msm_sdhci.c | 5 ++++-
  1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/msm_sdhci.c b/drivers/mmc/msm_sdhci.c
index 7bdb02142a2..cbf565be426 100644
--- a/drivers/mmc/msm_sdhci.c
+++ b/drivers/mmc/msm_sdhci.c
@@ -65,12 +65,15 @@ static int msm_sdc_clk_init(struct udevice *dev)
        struct msm_sdhc *prv = dev_get_priv(dev);
        const struct msm_sdhc_variant_info *var_info;
        ulong clk_rate;
+       u32 max_frequency;
        int ret, i = 0, n_clks;
        const char *clk_name;
var_info = (void *)dev_get_driver_data(dev); - if (dev_read_u32(dev, "max-frequency", (uint *)(&clk_rate)))
+       if (!dev_read_u32(node, "max-frequency", &max_frequency))
+               clk_rate = max_frequency;
+       else
                clk_rate = 201500000;
The clean implementation would be:
clk_rate = dev_read_u32_default(dev, "max-frequency", 201500000);


Reply via email to