[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <fe6ba3bd-81f4-215d-5f1b-0fa05e68a0c5@acm.org>
Date: Tue, 14 Jun 2022 09:28:23 -0700
From: Bart Van Assche <bvanassche@....org>
To: Stanley Chu <stanley.chu@...iatek.com>, linux-scsi@...r.kernel.org,
linux-kernel@...r.kernel.org, martin.petersen@...cle.com,
avri.altman@....com, alim.akhtar@...sung.com, jejb@...ux.ibm.com
Cc: peter.wang@...iatek.com, chun-hung.wu@...iatek.com,
alice.chao@...iatek.com, powen.kao@...iatek.com,
mason.zhang@...iatek.com, qilin.tan@...iatek.com,
lin.gui@...iatek.com, eddie.huang@...iatek.com,
tun-yu.yu@...iatek.com, cc.chou@...iatek.com,
chaotian.jing@...iatek.com, jiajie.hao@...iatek.com
Subject: Re: [PATCH v3 07/10] scsi: ufs-mediatek: Support flexible parameters
for smc calls
On 6/14/22 07:16, Stanley Chu wrote:
> From: Alice Chao <alice.chao@...iatek.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.
Powered by blists - more mailing lists