From 90c7800a6d959caed423f0b345976a2c9ed1b47f Mon Sep 17 00:00:00 2001 From: Noag Date: Wed, 15 Jan 2014 10:52:53 +0200 Subject: [PATCH] scsi: ufs: read ref clk and icc level during init only In order to minimize resume latency, pre-fetch icc levels and reference clock during initialization and avoid reading them each link startup during resume. Change-Id: Iab705068e46114eb3caa00c6e1b88a7862385d08 Signed-off-by: Noag [subhashj@codeaurora.org: resolved merge conflicts] Signed-off-by: Subhash Jadavani --- drivers/scsi/ufs/ufshcd.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 9507b1d994c9..9d30b431dd12 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -4638,12 +4638,14 @@ static int ufshcd_probe_hba(struct ufs_hba *hba) if (ret) goto out; - ret = ufshcd_get_device_ref_clk(hba); - if (ret) { - dev_err(hba->dev, - "%s: Failed reading bRefClkFreq attribute\n", - __func__); - ret = 0; + if (!hba->is_init_prefetch) { + ret = ufshcd_get_device_ref_clk(hba); + if (ret) { + dev_err(hba->dev, + "%s: Failed reading bRefClkFreq attribute\n", + __func__); + ret = 0; + } } /* UFS device is also active now */