On 11/3/25 9:33 AM, Peng Fan wrote:

Hello Peng,

diff --git a/arch/arm/mach-imx/imx9/scmi/clock_scmi.c 
b/arch/arm/mach-imx/imx9/scmi/clock_scmi.c
index fa15b5f8df9..fc1d5d77799 100644
--- a/arch/arm/mach-imx/imx9/scmi/clock_scmi.c
+++ b/arch/arm/mach-imx/imx9/scmi/clock_scmi.c
@@ -10,7 +10,7 @@

int imx_clk_scmi_enable(u32 clock_id, bool enable)
{
-       struct scmi_clk_state_in in = {
+       struct scmi_clk_state_in_v1 in = {
                .clock_id = clock_id,
                .attributes = (enable) ? 1 : 0,
        };
diff --git a/drivers/clk/clk_scmi.c b/drivers/clk/clk_scmi.c
index a7d89f32cd7..f9e17c38cad 100644
--- a/drivers/clk/clk_scmi.c
+++ b/drivers/clk/clk_scmi.c
@@ -134,17 +134,29 @@ static int scmi_clk_get_attibute(struct udevice *dev, int 
clkid, char **name,

static int scmi_clk_gate(struct clk *clk, int enable)
{
-       struct scmi_clk_state_in in = {
+       struct scmi_clock_priv *priv = dev_get_priv(clk->dev->parent);

This should be changed to find the protocol@14 device, because
assigned-clock-parents could change the scmi clk parent.
Ah, this makes perfect sense. This might also explain what Alice was seeing. I sent a V3 which should address that without any global variables.

Reply via email to