Re: [PATCH v3 07/10] scsi: ufs-mediatek: Support flexible parameters for smc calls

From: Stanley Chu
Date: Tue Jun 14 2022 - 23:48:49 EST


Hi Bart,

On Tue, 2022-06-14 at 09:28 -0700, Bart Van Assche wrote:
> On 6/14/22 07:16, Stanley Chu wrote:
> > From: Alice Chao <alice.chao@xxxxxxxxxxxx>
> >
> > Provide flexible number of parameters for UFS SMC calls to be
> > easily used for future SMC usages.
>
> How far in the future? Please only introduce what is needed for this
> patch series.

Sure, I just rewrote and simplified SMC call macros according to your
good suggestions in v4.

>
> > +/*
> > + * SMC call wapper function
>
> ^^^^^^
> typo

Fixed in v4.
>
> > + */
> > +#define _ufs_mtk_smc(cmd, res, v1, v2, v3, v4, v5, v6) \
> > + arm_smccc_smc(MTK_SIP_UFS_CONTROL, \
> > + cmd, v1, v2, v3, v4, v5, v6, &(res))
> > +
> > +#define _ufs_mtk_smc_0(cmd, res) \
> > + _ufs_mtk_smc(cmd, res, 0, 0, 0, 0, 0, 0)
> > +
> > +#define _ufs_mtk_smc_1(cmd, res, v1) \
> > + _ufs_mtk_smc(cmd, res, v1, 0, 0, 0, 0, 0)
> > +
> > +#define _ufs_mtk_smc_2(cmd, res, v1, v2) \
> > + _ufs_mtk_smc(cmd, res, v1, v2, 0, 0, 0, 0)
> > +
> > +#define _ufs_mtk_smc_3(cmd, res, v1, v2, v3) \
> > + _ufs_mtk_smc(cmd, res, v1, v2, v3, 0, 0, 0)
> > +
> > +#define _ufs_mtk_smc_4(cmd, res, v1, v2, v3, v4) \
> > + _ufs_mtk_smc(cmd, res, v1, v2, v3, v4, 0, 0)
> > +
> > +#define _ufs_mtk_smc_5(cmd, res, v1, v2, v3, v4, v5) \
> > + _ufs_mtk_smc(cmd, res, v1, v2, v3, v4, v5, 0)
> > +
> > +#define _ufs_mtk_smc_6(cmd, res, v1, v2, v3, v4, v5, v6) \
> > + _ufs_mtk_smc(cmd, res, v1, v2, v3, v4, v5, v6)
> > +
> > +#define _ufs_mtk_smc_selector(cmd, res, v1, v2, v3, v4, v5, v6,
> > FUNC, ...) FUNC
> > +
> > +#define ufs_mtk_smc(...) \
> > + _ufs_mtk_smc_selector(__VA_ARGS__, \
> > + _ufs_mtk_smc_6(__VA_ARGS__), \
> > + _ufs_mtk_smc_5(__VA_ARGS__), \
> > + _ufs_mtk_smc_4(__VA_ARGS__), \
> > + _ufs_mtk_smc_3(__VA_ARGS__), \
> > + _ufs_mtk_smc_2(__VA_ARGS__), \
> > + _ufs_mtk_smc_1(__VA_ARGS__), \
> > + _ufs_mtk_smc_0(__VA_ARGS__) \
> > + )
>
> If _ufs_mtk_smc() would be modified to accept an struct _ufs_mtk_args
> as
> its only argument, would that allow to simplify the above into the
> following?
>
> #define ufs_mtk_smc(...) \
> _ufs_mtk_smc((struct _ufs_mtk_args){__VA_ARGS__})
>
> > +/*
> > + * Sip kernel interface
> > + */
>
> What is "Sip"? Should it perhaps be spelled as "SIP"?
>
> Thanks,
>
> Bart.