From b55d16cd6bf0fdbd68607a5797c70fcbbb68f219 Mon Sep 17 00:00:00 2001 From: Sahitya Tummala Date: Wed, 18 Dec 2013 13:49:27 +0530 Subject: [PATCH] scsi: ufs-msm: Fix hba variant host op init and setup_clocks Handle the case where vops->setup_clocks is called before vops->init() from ufshcd driver. Change-Id: I4754b658c1f37db6418560321f5dfe7a4650692b Signed-off-by: Sahitya Tummala --- drivers/scsi/ufs/ufs-msm.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/scsi/ufs/ufs-msm.c b/drivers/scsi/ufs/ufs-msm.c index 837500703b84..772956eb731d 100644 --- a/drivers/scsi/ufs/ufs-msm.c +++ b/drivers/scsi/ufs/ufs-msm.c @@ -1788,6 +1788,14 @@ static int msm_ufs_setup_clocks(struct ufs_hba *hba, bool on) int err; int vote; + /* + * In case msm_ufs_init() is not yet done, simply ignore. + * This msm_ufs_setup_clocks() shall be called from + * msm_ufs_init() after init is done. + */ + if (!host) + return 0; + if (on) { vote = host->bus_vote.saved_vote; if (vote == host->bus_vote.min_bw_vote) @@ -1946,6 +1954,7 @@ static int msm_ufs_init(struct ufs_hba *hba) hba->spm_lvl = UFS_PM_LVL_3; } + msm_ufs_setup_clocks(hba, true); goto out; out_disable_phy: