> -----Original Message-----
> From: Jakub Kicinski <k...@kernel.org>
> Sent: 2020年12月6日 3:58
> To: Joakim Zhang <qiangqing.zh...@nxp.com>
> Cc: peppe.cavall...@st.com; alexandre.tor...@st.com;
> joab...@synopsys.com; da...@davemloft.net; dl-linux-imx
> <linux-...@nxp.com>; netdev@vger.kernel.org
> Subject: Re: [PATCH] net: stmmac: implement .set_intf_mode() callback for
> imx8dxl
> 
> On Thu,  3 Dec 2020 12:10:38 +0800 Joakim Zhang wrote:
> > From: Fugang Duan <fugang.d...@nxp.com>
> >
> > Implement .set_intf_mode() callback for imx8dxl.
> >
> > Signed-off-by: Fugang Duan <fugang.d...@nxp.com>
> > Signed-off-by: Joakim Zhang <qiangqing.zh...@nxp.com>
> 
> Couple minor issues.
> 
> > @@ -86,7 +88,37 @@ imx8dxl_set_intf_mode(struct
> plat_stmmacenet_data
> > *plat_dat)  {
> >     int ret = 0;
> >
> > -   /* TBD: depends on imx8dxl scu interfaces to be upstreamed */
> > +   struct imx_sc_ipc *ipc_handle;
> > +   int val;
> 
> Looks like you're gonna have a empty line in the middle of variable
> declarations?
> 
> Please remove it and order the variable lines longest to shortest.
> 
> > +
> > +   ret = imx_scu_get_handle(&ipc_handle);
> > +   if (ret)
> > +           return ret;
> > +
> > +   switch (plat_dat->interface) {
> > +   case PHY_INTERFACE_MODE_MII:
> > +           val = GPR_ENET_QOS_INTF_SEL_MII;
> > +           break;
> > +   case PHY_INTERFACE_MODE_RMII:
> > +           val = GPR_ENET_QOS_INTF_SEL_RMII;
> > +           break;
> > +   case PHY_INTERFACE_MODE_RGMII:
> > +   case PHY_INTERFACE_MODE_RGMII_ID:
> > +   case PHY_INTERFACE_MODE_RGMII_RXID:
> > +   case PHY_INTERFACE_MODE_RGMII_TXID:
> > +           val = GPR_ENET_QOS_INTF_SEL_RGMII;
> > +           break;
> > +   default:
> > +           pr_debug("imx dwmac doesn't support %d interface\n",
> > +                    plat_dat->interface);
> > +           return -EINVAL;
> > +   }
> > +
> > +   ret = imx_sc_misc_set_control(ipc_handle, IMX_SC_R_ENET_1,
> > +                                 IMX_SC_C_INTF_SEL, val >> 16);
> > +   ret |= imx_sc_misc_set_control(ipc_handle, IMX_SC_R_ENET_1,
> > +                                  IMX_SC_C_CLK_GEN_EN, 0x1);
> >     return ret;
> 
> These calls may return different errors AFAICT.
> 
> You can't just errno values to gether the result will be meaningless.
> 
> please use the normal flow, and return the result of the second call
> directly:
> 
>       ret = func1();
>       if (ret)
>               return ret;
> 
>       return func2();
> 
> Please also CC the maintainers of the Ethernet PHY subsystem on v2, to make
> sure there is nothing wrong with the patch from their PoV.


Thanks Jakub for your kindly review, I will improve patch following your 
comments.

Best Regards,
Joakim Zhang
> Thanks!

Reply via email to