mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
firmware: imx: scu-irq: Set mu_resource_id before get handle
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>
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user