RE: [PATCH 4/5] scsi: ufs: exynos: add support for ExynosAutov920 SoC

From: Alim Akhtar
Date: Thu Jul 17 2025 - 00:26:58 EST




> -----Original Message-----
> From: Sowon Na <sowon.na@xxxxxxxxxxx>
> Sent: Wednesday, July 2, 2025 7:03 AM
> To: robh@xxxxxxxxxx; krzk@xxxxxxxxxx; conor+dt@xxxxxxxxxx;
> vkoul@xxxxxxxxxx; alim.akhtar@xxxxxxxxxxx; kishon@xxxxxxxxxx
> Cc: krzk+dt@xxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> devicetree@xxxxxxxxxxxxxxx; linux-samsung-soc@xxxxxxxxxxxxxxx;
> sowon.na@xxxxxxxxxxx
> Subject: [PATCH 4/5] scsi: ufs: exynos: add support for ExynosAutov920 SoC
>
> Add a dedicated compatible and drv_data with associated hooks for
> ExynosAutov920 SoC, Samsung Autotomotive SoC series.
>
> ExynosAutov920 has the UFSHCI 3.1 compliant UFS controller.
>
> Signed-off-by: Sowon Na <sowon.na@xxxxxxxxxxx>
> ---
> drivers/ufs/host/ufs-exynos.c | 130
> +++++++++++++++++++++++++++++++---
> 1 file changed, 120 insertions(+), 10 deletions(-)
>
[snip]

> struct phy *generic_phy = ufs->phy;
> int ret = 0;
>
> - if (ufs->avail_ln_rx == 0 || ufs->avail_ln_tx == 0) {
> - ufshcd_dme_get(hba,
> UIC_ARG_MIB(PA_AVAILRXDATALANES),
> - &ufs->avail_ln_rx);
> - ufshcd_dme_get(hba,
> UIC_ARG_MIB(PA_AVAILTXDATALANES),
> - &ufs->avail_ln_tx);
> - WARN(ufs->avail_ln_rx != ufs->avail_ln_tx,
> - "available data lane is not equal(rx:%d, tx:%d)\n",
> - ufs->avail_ln_rx, ufs->avail_ln_tx);
> - }
> -

Why you are moving these changes from exynos_ufs_phy_init() to exynos_ufs_pre_link()?
If at all this is needed, this need to be a separate patch, not related to adding exynosautov920 support.

> phy_set_bus_width(generic_phy, ufs->avail_ln_rx);
>
> if (generic_phy->power_count) {
> @@ -1065,6 +1148,16 @@ static int exynos_ufs_pre_link(struct ufs_hba
> *hba)
> /* unipro */
> exynos_ufs_config_unipro(ufs);
>
> + if (ufs->avail_ln_rx == 0 || ufs->avail_ln_tx == 0) {
> + ufshcd_dme_get(hba,
> UIC_ARG_MIB(PA_AVAILRXDATALANES),
> + &ufs->avail_ln_rx);
> + ufshcd_dme_get(hba,
> UIC_ARG_MIB(PA_AVAILTXDATALANES),
> + &ufs->avail_ln_tx);
> + WARN(ufs->avail_ln_rx != ufs->avail_ln_tx,
> + "available data lane is not equal(rx:%d, tx:%d)\n",
> + ufs->avail_ln_rx, ufs->avail_ln_tx);
> + }
> +