Messages in this thread | | | Date | Tue, 14 Jun 2022 09:28:23 -0700 | Subject | Re: [PATCH v3 07/10] scsi: ufs-mediatek: Support flexible parameters for smc calls | From | Bart Van Assche <> |
| |
On 6/14/22 07:16, Stanley Chu wrote: > From: Alice Chao <alice.chao@mediatek.com> > > 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.
> +/* > + * SMC call wapper function ^^^^^^ typo
> + */ > +#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.
| |