lkml.org 
[lkml]   [2020]   [Oct]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRE: [PATCH 5/6] can: flexcan: add CAN wakeup function for i.MX8QM
Date

Hi Marc,

> -----Original Message-----
> From: Marc Kleine-Budde <mkl@pengutronix.de>
> Sent: 2020年10月16日 18:40
> To: Joakim Zhang <qiangqing.zhang@nxp.com>; robh+dt@kernel.org;
> shawnguo@kernel.org; s.hauer@pengutronix.de
> Cc: kernel@pengutronix.de; dl-linux-imx <linux-imx@nxp.com>; Ying Liu
> <victor.liu@nxp.com>; Peng Fan <peng.fan@nxp.com>;
> linux-can@vger.kernel.org; Pankaj Bansal <pankaj.bansal@nxp.com>;
> netdev@vger.kernel.org; devicetree@vger.kernel.org;
> linux-kernel@vger.kernel.org
> Subject: Re: [PATCH 5/6] can: flexcan: add CAN wakeup function for i.MX8QM
>
> On 10/16/20 12:00 PM, Joakim Zhang wrote:
> >>>> +static int flexcan_stop_mode_enable_scfw(struct flexcan_priv
> >>>> +*priv, bool enabled) {
> >>>> + u8 idx = priv->can_idx;
> >>>> + u32 rsrc_id, val;
> >>>> +
> >>>> + if (idx == 0)
> >>>> + rsrc_id = IMX_SC_R_CAN_0;
> >>>> + else if (idx == 1)
> >>>> + rsrc_id = IMX_SC_R_CAN_1;
> >>>> + else
> >>>> + rsrc_id = IMX_SC_R_CAN_2;
> >>>
> >>> Can you introduce something like and make use of it:
> >>>
> >>> #define IMX_SC_R_CAN(x) (105 + (x))
> >> OK.
> >
> > I thought it over again, from my point of view, use macro here
> > directly could be more intuitive, and can achieve a direct jump.
> > If change to above wrapper, on the contrary make confusion, and
> > generate the magic number 105. ☹
>
> The define should go into the rsrc.h, and probably be:
>
> #define IMX_SC_R_CAN(x) (IMX_SC_R_CAN_0 + (x))
>
> and if you change the firmware interface, you probably have more problems :)

rsrc.h:
/*
* These defines are used to indicate a resource. Resources include peripherals
* and bus masters (but not memory regions). Note items from list should
* never be changed or removed (only added to at the end of the list).
*/
Hmm, it just list all resource id, and never be changed. Anyway, if you think above way is better, I will turn to it.

> >>>> +
> >>>> + if (enabled)
> >>>> + val = 1;
> >>>> + else
> >>>> + val = 0;
> >>>> +
> >>>> + /* stop mode request via scu firmware */
> >>>> + return imx_sc_misc_set_control(priv->sc_ipc_handle, rsrc_id,
> >>>> +IMX_SC_C_IPG_STOP, val); }
> >
> > We still need use IMX_SC_C_IPG_STOP, why not be consistent?
>
> Sorry I don't get what you want to tell me here.

Need me add IMX_SC_C_IPG_STOP macro in the driver directly?

Such as, #define IMX_SC_C_IPG_STOP 52, so that no need to include rsrc.h file in the driver.

Best Regards,
Joakim Zhang
> Marc
>
> --
> Pengutronix e.K. | Marc Kleine-Budde |
> Embedded Linux | https://www.pengutronix.de |
> Vertretung West/Dortmund | Phone: +49-231-2826-924 |
> Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |

\
 
 \ /
  Last update: 2020-10-16 12:59    [W:0.088 / U:0.136 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site