mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 22:40:54 -04:00
FROMGIT: scsi: ufs-qcom: Delay specific time before gate ref clk
After enter hibern8, as UFS JEDEC ver 3.0 requires, a specific gating wait time is required before disable the device reference clock. If it is not specified, use the old delay. Link: https://lore.kernel.org/r/1581392451-28743-8-git-send-email-cang@codeaurora.org Reviewed-by: Asutosh Das <asutoshd@codeaurora.org> Reviewed-by: Hongwu Su <hongwus@codeaurora.org> Signed-off-by: Can Guo <cang@codeaurora.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Bug: 150892981 Change-Id: I44b3cbe583741fcfadbb9952fad1037e08175555 (cherry picked from commit 1cbadd0c331fb151fafc698bf2ecc35122953715 https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git 5.7/scsi-queue) Signed-off-by: Can Guo <cang@codeaurora.org>
This commit is contained in:
parent
0f7ba9fc97
commit
8b2b5c662a
1 changed files with 19 additions and 3 deletions
|
|
@ -801,11 +801,27 @@ static void ufs_qcom_dev_ref_clk_ctrl(struct ufs_qcom_host *host, bool enable)
|
|||
/*
|
||||
* If we are here to disable this clock it might be immediately
|
||||
* after entering into hibern8 in which case we need to make
|
||||
* sure that device ref_clk is active at least 1us after the
|
||||
* sure that device ref_clk is active for specific time after
|
||||
* hibern8 enter.
|
||||
*/
|
||||
if (!enable)
|
||||
udelay(1);
|
||||
if (!enable) {
|
||||
unsigned long gating_wait;
|
||||
|
||||
gating_wait = host->hba->dev_info.clk_gating_wait_us;
|
||||
if (!gating_wait) {
|
||||
udelay(1);
|
||||
} else {
|
||||
/*
|
||||
* bRefClkGatingWaitTime defines the minimum
|
||||
* time for which the reference clock is
|
||||
* required by device during transition from
|
||||
* HS-MODE to LS-MODE or HIBERN8 state. Give it
|
||||
* more delay to be on the safe side.
|
||||
*/
|
||||
gating_wait += 10;
|
||||
usleep_range(gating_wait, gating_wait + 10);
|
||||
}
|
||||
}
|
||||
|
||||
writel_relaxed(temp, host->dev_ref_clk_ctrl_mmio);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue