]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
firmware: imx: scu-irq: Set mu_resource_id before get handle
authorPeng Fan <peng.fan@nxp.com>
Fri, 17 Oct 2025 01:56:27 +0000 (09:56 +0800)
committerShawn Guo <shawnguo@kernel.org>
Mon, 27 Oct 2025 06:43:47 +0000 (14:43 +0800)
mu_resource_id is referenced in imx_scu_irq_get_status() and
imx_scu_irq_group_enable() which could be used by other modules, so
need to set correct value before using imx_sc_irq_ipc_handle in
SCU API call.

Reviewed-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
drivers/firmware/imx/imx-scu-irq.c

index 2d7237188932632ffd4960796c7e73b69ceac7d5..3dda42be4e6b9a0df0b2b1ddcfb64dd112007e02 100644 (file)
@@ -203,6 +203,18 @@ int imx_scu_enable_general_irq_channel(struct device *dev)
        struct mbox_chan *ch;
        int ret = 0, i = 0;
 
+       if (!of_parse_phandle_with_args(dev->of_node, "mboxes",
+                                      "#mbox-cells", 0, &spec)) {
+               i = of_alias_get_id(spec.np, "mu");
+               of_node_put(spec.np);
+       }
+
+       /* use mu1 as general mu irq channel if failed */
+       if (i < 0)
+               i = 1;
+
+       mu_resource_id = IMX_SC_R_MU_0A + i;
+
        ret = imx_scu_get_handle(&imx_sc_irq_ipc_handle);
        if (ret)
                return ret;
@@ -224,18 +236,6 @@ int imx_scu_enable_general_irq_channel(struct device *dev)
                goto free_cl;
        }
 
-       if (!of_parse_phandle_with_args(dev->of_node, "mboxes",
-                                      "#mbox-cells", 0, &spec)) {
-               i = of_alias_get_id(spec.np, "mu");
-               of_node_put(spec.np);
-       }
-
-       /* use mu1 as general mu irq channel if failed */
-       if (i < 0)
-               i = 1;
-
-       mu_resource_id = IMX_SC_R_MU_0A + i;
-
        /* Create directory under /sysfs/firmware */
        wakeup_obj = kobject_create_and_add("scu_wakeup_source", firmware_kobj);
        if (!wakeup_obj) {