scsi: ufs: ufs-exynos: Factor out priv data init
authorChanho Park <chanho61.park@samsung.com>
Mon, 18 Oct 2021 12:42:10 +0000 (21:42 +0900)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 28 Oct 2021 03:10:11 +0000 (23:10 -0400)
To leverage the initialization code for the other variant of the exynos-ufs
driver, factor out the assignment part.

Link: https://lore.kernel.org/r/20211018124216.153072-10-chanho61.park@samsung.com
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Kiwoong Kim <kwmad.kim@samsung.com>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/ufs/ufs-exynos.c

index 2c15fde5c8d06b809e2369021f5b29e8d1fb01c8..91988ff24fb231b29038cf790c405245862165e6 100644 (file)
@@ -946,6 +946,18 @@ out:
        return ret;
 }
 
+static inline void exynos_ufs_priv_init(struct ufs_hba *hba,
+                                       struct exynos_ufs *ufs)
+{
+       ufs->hba = hba;
+       ufs->opts = ufs->drv_data->opts;
+       ufs->rx_sel_idx = PA_MAXDATALANES;
+       if (ufs->opts & EXYNOS_UFS_OPT_BROKEN_RX_SEL_IDX)
+               ufs->rx_sel_idx = 0;
+       hba->priv = (void *)ufs;
+       hba->quirks = ufs->drv_data->quirks;
+}
+
 static int exynos_ufs_init(struct ufs_hba *hba)
 {
        struct device *dev = hba->dev;
@@ -995,13 +1007,8 @@ static int exynos_ufs_init(struct ufs_hba *hba)
        if (ret)
                goto phy_off;
 
-       ufs->hba = hba;
-       ufs->opts = ufs->drv_data->opts;
-       ufs->rx_sel_idx = PA_MAXDATALANES;
-       if (ufs->opts & EXYNOS_UFS_OPT_BROKEN_RX_SEL_IDX)
-               ufs->rx_sel_idx = 0;
-       hba->priv = (void *)ufs;
-       hba->quirks = ufs->drv_data->quirks;
+       exynos_ufs_priv_init(hba, ufs);
+
        if (ufs->drv_data->drv_init) {
                ret = ufs->drv_data->drv_init(dev, ufs);
                if (ret) {