Received: by 2002:a25:31c3:0:0:0:0:0 with SMTP id x186csp1379918ybx; Fri, 1 Nov 2019 22:06:31 -0700 (PDT) X-Google-Smtp-Source: APXvYqzqc1XSM/voG9sgGC2I4yfiER/TTh6TZYVkZnzfrxN31dUPZzisfygCQ5/i2D4ApJCakKMv X-Received: by 2002:a17:906:2f83:: with SMTP id w3mr13565891eji.57.1572671191485; Fri, 01 Nov 2019 22:06:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1572671191; cv=none; d=google.com; s=arc-20160816; b=LXtICTYPwihTFk8JlK+sAmRo7adWiv98OodV61yKyVRubsasra35mAO0aLIohRPDmW Ootj54yT/PlGWoE2oHngU9XpEWnbP2ACKx3KwLP9U/lCznKMoAjq53bq3Xo6NBwTjU64 K7dvY+Vplgw9TeXeeqIA0kGLUXA9Sbvrs54iM5pI7+goxIiN/Fxh88zUUISRxoD5QMCO XIotJo6yLCYDl0zCmyzwAi8IIXHBm5ISM2VcutpEtHsRz+gsOZh0C4PfgpB7bryp/+VW +4r1wKBQG+x0BpU6Mup5eUMlV8hhlSdnj/dIRenD0Yu/ozTW1r8WteUClAOI7Lnv3lPG wL+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dmarc-filter:dkim-signature:dkim-signature; bh=DAW1S3B9D0CyyobtP+D5/0ppFFq9Uy/GWsPb45nLYGc=; b=N14IFFpNZyuAkdP6Wx6HonD/zv8NwBeT9WRBWSZY686ZuTnAcdTB4iTmMfpSyRZaI5 2zkSJ5UtusIJRUCDacteTG0aNplxeGbpmeEc40+STkAkXMoCIxe6Z3QPPfPxfz221BSI yd9xmo3/tHpHIqZED7KWbeIoAdveX04oSzLSspGed6BYWgFTzh32sR+HCiAMkdTA/dOt pj9lyta5iLlXlX7x9vIc2y0N3awsX36Pl86DCZ7EpcGWrBmwYYSKgp3feukq2DEHtCNp UTZu4cl6PBDOpSYtQfeSSR/cM94QuM1x3NHSICm5EqAGDq4pAQhkocHW2xtu22WpPvZn g+GQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=kK54IjrH; dkim=pass header.i=@codeaurora.org header.s=default header.b=fr1Kdvs8; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k7si2067751edb.265.2019.11.01.22.06.08; Fri, 01 Nov 2019 22:06:31 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=kK54IjrH; dkim=pass header.i=@codeaurora.org header.s=default header.b=fr1Kdvs8; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728106AbfKBFEM (ORCPT + 99 others); Sat, 2 Nov 2019 01:04:12 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:51682 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725842AbfKBFEM (ORCPT ); Sat, 2 Nov 2019 01:04:12 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id BC2C36161E; Sat, 2 Nov 2019 05:04:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1572671049; bh=836Jc857UfXfWP4BPIMMn9j23njKiaDe8BLCZ1+/Llw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kK54IjrHoEAkLnWGA3JQFKIsmnWlMnpYX5GBmQUpMV7muRhvFEiXtqdpZWhus+VmG b8cVGHg63b1jkpKcvbB/RqyErXW58MIBo1SkwvVxsTaARR07+DnLxHqK/IPx3KUn+l f5X8pyrffv8v+J7gX5IUN5RqDTULqQ3M7V2yULlE= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_INVALID,DKIM_SIGNED,SPF_NONE autolearn=no autolearn_force=no version=3.4.0 Received: from pacamara-linux.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: cang@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 0AD6761514; Sat, 2 Nov 2019 05:03:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1572671041; bh=836Jc857UfXfWP4BPIMMn9j23njKiaDe8BLCZ1+/Llw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fr1Kdvs8U/KBMtCm6/iiOufAaUHB6ySE27QTNcXj/JVsZyAdqvmpp+0nzzF0Cm3xc ROKTl8kNrJXvPPb8W8Biypbs0gbFWd/wZFJMNMZWQqwg5hX2YrHba78lp1F3/x2MTT Yc2KPgB75UapS2+2knS932t44RdoKI452RINpMYo= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 0AD6761514 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=cang@codeaurora.org From: Can Guo To: asutoshd@codeaurora.org, nguyenb@codeaurora.org, rnayak@codeaurora.org, linux-scsi@vger.kernel.org, kernel-team@android.com, saravanak@google.com, salyzyn@google.com, cang@codeaurora.org Cc: Alim Akhtar , Avri Altman , Pedro Sousa , "James E.J. Bottomley" , "Martin K. Petersen" , Stanley Chu , Bean Huo , Tomas Winkler , Subhash Jadavani , Venkat Gopalakrishnan , linux-kernel@vger.kernel.org (open list) Subject: [PATCH v1 3/6] scsi: ufs: Fix up auto hibern8 enablement Date: Fri, 1 Nov 2019 22:03:33 -0700 Message-Id: <1572671016-883-4-git-send-email-cang@codeaurora.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1572671016-883-1-git-send-email-cang@codeaurora.org> References: <1572671016-883-1-git-send-email-cang@codeaurora.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Fix up possible unclocked register access to auto hibern8 register in resume path and through sysfs entry. Meanwhile, enable auto hibern8 only after device is fully initialized in probe path. Signed-off-by: Can Guo --- drivers/scsi/ufs/ufs-sysfs.c | 5 ++++- drivers/scsi/ufs/ufshcd.c | 12 ++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/drivers/scsi/ufs/ufs-sysfs.c b/drivers/scsi/ufs/ufs-sysfs.c index 969a36b..de124f4 100644 --- a/drivers/scsi/ufs/ufs-sysfs.c +++ b/drivers/scsi/ufs/ufs-sysfs.c @@ -129,8 +129,11 @@ static void ufshcd_auto_hibern8_update(struct ufs_hba *hba, u32 ahit) if (hba->ahit == ahit) goto out_unlock; hba->ahit = ahit; - if (!pm_runtime_suspended(hba->dev)) + if (!pm_runtime_suspended(hba->dev)) { + ufshcd_hold(hba, false); ufshcd_writel(hba, hba->ahit, REG_AUTO_HIBERNATE_IDLE_TIMER); + ufshcd_release(hba); + } out_unlock: spin_unlock_irqrestore(hba->host->host_lock, flags); } diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 525f8e6..f12f5a7 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -6892,9 +6892,6 @@ static int ufshcd_probe_hba(struct ufs_hba *hba) /* UniPro link is active now */ ufshcd_set_link_active(hba); - /* Enable Auto-Hibernate if configured */ - ufshcd_auto_hibern8_enable(hba); - ret = ufshcd_verify_dev_init(hba); if (ret) goto out; @@ -6945,6 +6942,9 @@ static int ufshcd_probe_hba(struct ufs_hba *hba) /* set the state as operational after switching to desired gear */ hba->ufshcd_state = UFSHCD_STATE_OPERATIONAL; + /* Enable Auto-Hibernate if configured */ + ufshcd_auto_hibern8_enable(hba); + /* * If we are in error handling context or in power management callbacks * context, no need to scan the host @@ -7962,12 +7962,12 @@ static int ufshcd_resume(struct ufs_hba *hba, enum ufs_pm_op pm_op) if (hba->clk_scaling.is_allowed) ufshcd_resume_clkscaling(hba); - /* Schedule clock gating in case of no access to UFS device yet */ - ufshcd_release(hba); - /* Enable Auto-Hibernate if configured */ ufshcd_auto_hibern8_enable(hba); + /* Schedule clock gating in case of no access to UFS device yet */ + ufshcd_release(hba); + goto out; set_old_link_state: -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project