Commit 52e5035f authored by Chanho Park's avatar Chanho Park Committed by Martin K. Petersen
Browse files

scsi: ufs: ufs-exynos: Add pre/post_hce_enable drv callbacks

Add driver-specific pre/post_hce_enable callbacks to execute extra
initializations before and after hce_enable_notify callback.

Link: https://lore.kernel.org/r/20211018124216.153072-11-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>
Reviewed-by: default avatarAlim Akhtar <alim.akhtar@samsung.com>
Signed-off-by: default avatarChanho Park <chanho61.park@samsung.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 3f02cc9e
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -1136,6 +1136,12 @@ static int exynos_ufs_hce_enable_notify(struct ufs_hba *hba,

	switch (status) {
	case PRE_CHANGE:
		if (ufs->drv_data->pre_hce_enable) {
			ret = ufs->drv_data->pre_hce_enable(ufs);
			if (ret)
				return ret;
		}

		ret = exynos_ufs_host_reset(hba);
		if (ret)
			return ret;
@@ -1145,6 +1151,10 @@ static int exynos_ufs_hce_enable_notify(struct ufs_hba *hba,
		exynos_ufs_calc_pwm_clk_div(ufs);
		if (!(ufs->opts & EXYNOS_UFS_OPT_BROKEN_AUTO_CLK_CTRL))
			exynos_ufs_enable_auto_ctrl_hcc(ufs);

		if (ufs->drv_data->post_hce_enable)
			ret = ufs->drv_data->post_hce_enable(ufs);

		break;
	}

+2 −0
Original line number Diff line number Diff line
@@ -154,6 +154,8 @@ struct exynos_ufs_drv_data {
				struct ufs_pa_layer_attr *pwr);
	int (*post_pwr_change)(struct exynos_ufs *ufs,
				struct ufs_pa_layer_attr *pwr);
	int (*pre_hce_enable)(struct exynos_ufs *ufs);
	int (*post_hce_enable)(struct exynos_ufs *ufs);
};

struct ufs_phy_time_cfg {