<snip> > + > +static u32 imx8qxp_soc_revision(void) > +{ > + struct imx_sc_msg_misc_get_soc_id msg; > + struct imx_sc_rpc_msg *hdr = &msg.hdr; > + u32 rev = 0; > + int ret; > + > + hdr->ver = IMX_SC_RPC_VERSION; > + hdr->svc = IMX_SC_RPC_SVC_MISC; > + hdr->func = IMX_SC_MISC_FUNC_GET_CONTROL; > + hdr->size = 3; > + > + msg.data.send.control = IMX_SC_C_ID; > + msg.data.send.resource = IMX_SC_R_SYSTEM; > + > + ret = imx_scu_call_rpc(soc_ipc_handle, &msg, true); > + if (ret) { > + dev_err(&imx_scu_soc_pdev->dev, > + "get soc info failed, ret %d\n", ret); > + return rev;
So you return 0 (rev = 0) here in case of error? This doesn't seem to be right. Maybe return ret?