Re: [PATCH RESEND 1/2] soc: imx: Add SCU SoC info driver support

From: Daniel Baluta
Date: Tue May 14 2019 - 04:40:43 EST


On Tue, May 14, 2019 at 2:34 AM Anson Huang <anson.huang@xxxxxxx> wrote:
>
> Hi, Daniel
>
> > -----Original Message-----
> > From: Daniel Baluta [mailto:daniel.baluta@xxxxxxxxx]
> > Sent: Monday, May 13, 2019 10:30 PM
> > To: Anson Huang <anson.huang@xxxxxxx>
> > Cc: catalin.marinas@xxxxxxx; will.deacon@xxxxxxx;
> > shawnguo@xxxxxxxxxx; s.hauer@xxxxxxxxxxxxxx; kernel@xxxxxxxxxxxxxx;
> > festevam@xxxxxxxxx; maxime.ripard@xxxxxxxxxxx; agross@xxxxxxxxxx;
> > olof@xxxxxxxxx; horms+renesas@xxxxxxxxxxxx;
> > jagan@xxxxxxxxxxxxxxxxxxxx; bjorn.andersson@xxxxxxxxxx; Leonard Crestez
> > <leonard.crestez@xxxxxxx>; marc.w.gonzalez@xxxxxxx;
> > dinguyen@xxxxxxxxxx; enric.balletbo@xxxxxxxxxxxxx; Aisheng Dong
> > <aisheng.dong@xxxxxxx>; robh@xxxxxxxxxx; Abel Vesa
> > <abel.vesa@xxxxxxx>; l.stach@xxxxxxxxxxxxxx; linux-arm-
> > kernel@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; dl-linux-imx
> > <linux-imx@xxxxxxx>; Daniel Baluta <daniel.baluta@xxxxxxx>
> > 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;
+ }