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: Alim Akhtar <alim.akhtar@samsung.com>
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
 
 
        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;
                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;
        }
 
 
                                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 {