On Tue, May 14, 2019 at 2:34 AM Anson Huang <anson.hu...@nxp.com> wrote: > > Hi, Daniel > > > -----Original Message----- > > From: Daniel Baluta [mailto:daniel.bal...@gmail.com] > > Sent: Monday, May 13, 2019 10:30 PM > > To: Anson Huang <anson.hu...@nxp.com> > > Cc: catalin.mari...@arm.com; will.dea...@arm.com; > > shawn...@kernel.org; s.ha...@pengutronix.de; ker...@pengutronix.de; > > feste...@gmail.com; maxime.rip...@bootlin.com; agr...@kernel.org; > > o...@lixom.net; horms+rene...@verge.net.au; > > ja...@amarulasolutions.com; bjorn.anders...@linaro.org; Leonard Crestez > > <leonard.cres...@nxp.com>; marc.w.gonza...@free.fr; > > dingu...@kernel.org; enric.balle...@collabora.com; Aisheng Dong > > <aisheng.d...@nxp.com>; r...@kernel.org; Abel Vesa > > <abel.v...@nxp.com>; l.st...@pengutronix.de; linux-arm- > > ker...@lists.infradead.org; linux-kernel@vger.kernel.org; dl-linux-imx > > <linux-...@nxp.com>; Daniel Baluta <daniel.bal...@nxp.com> > > Subject: Re: [PATCH RESEND 1/2] soc: imx: Add SCU SoC info driver support > > > > <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? > > This is intentional, similar with current i.MX8MQ soc info driver, when > getting revision > failed, just return 0 as revision info and it will show "unknown" in sysfs.
Ok, I understand. Lets make this clear from the source code. 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); /* returning 0 means getting revision failed */ + return 0; + }