Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp178061pxj; Wed, 23 Jun 2021 19:09:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyA40EgRxb8q9EBFsGZwseKvI74UL1nmh067PZoSrHHsWm2RPxGO1vs7GXXVUGgB++kQLWT X-Received: by 2002:a50:eb8c:: with SMTP id y12mr3649142edr.189.1624500541144; Wed, 23 Jun 2021 19:09:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624500541; cv=none; d=google.com; s=arc-20160816; b=jgIzbOcVC5i92ucOnUvdkx29NXFxj1fRAzwezwdieeE7IwoeXe2jBHBWgpWVelxiGL qDPW4aCwImKwO9DJk7pDclxoxy4SJEmO0q72BLDvZ+e1AuBlTpX0nHD1Lg6DJNRAUfvo pc9I74L6CnYuctwscxO6QzpTKyB9pKny65LK7fSpfnC5Y6xFTdcOmRLruc1UJOf0AQh1 +G4Nh1qAvwEegrDDwte5576qY3FWqkuW3yQcRRnTS2yzzab9CwLlZ/ccRXvY04Lvxog2 mMMnjBo2WPQZuh7WOIszrQ5U3N2WKfLVHstjHNpSSw1463U7pTr16PZqDtlAnC8dHBnm AAyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:message-id:references:in-reply-to :subject:cc:to:from:date:content-transfer-encoding:mime-version :sender:dkim-signature; bh=LBPjdz7Wo1tkWc5lk7wabRwNauOxfy0tmZTFc5EqIYE=; b=HHSDtJdG4t6InkxIaEH+kXEJMMv1jwzvE6jncHzpexbBl83HZ60i2HoRFs3PA+7OG3 WkV7XgMARn0bB9MpK6FF9b4s4EjgFMTPdQl93bClJaiMo3RyNtA2CtMYUAJD19GZWd0Z j+k8sKIdctRrj/86/M8N7IpoLKZQ22kppfzgxvRLrfFHiYcTLbhfoGKEiHa5NF0Rnd0l KefdNA60Z+6awiQtPg9nCvFK+EM908Nithie7xHrO7sOfbQSvms//kS9/hO4PR/AMIHG UwvPh3W1OkolByor//JiWiZjEt6SUJ9v55bzxPiT3L+MC53q/sWvpDD5BCrQg3QfvnxH AuSQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mg.codeaurora.org header.s=smtp header.b="G5aDN35/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i13si1524126edc.194.2021.06.23.19.08.34; Wed, 23 Jun 2021 19:09:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mg.codeaurora.org header.s=smtp header.b="G5aDN35/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229774AbhFXCIJ (ORCPT + 99 others); Wed, 23 Jun 2021 22:08:09 -0400 Received: from so254-9.mailgun.net ([198.61.254.9]:27666 "EHLO so254-9.mailgun.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229812AbhFXCII (ORCPT ); Wed, 23 Jun 2021 22:08:08 -0400 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1624500349; h=Message-ID: References: In-Reply-To: Subject: Cc: To: From: Date: Content-Transfer-Encoding: Content-Type: MIME-Version: Sender; bh=LBPjdz7Wo1tkWc5lk7wabRwNauOxfy0tmZTFc5EqIYE=; b=G5aDN35/1uEy9iAE+szozhyIY8DnY4GtVOh9JDbj79LggCOJaO19pj6mNGA0br9AMRuwogSH e71aSQ+JE2qsa3p5qyYaXGYhlA1sYQqMIuR5+1c1DAEtukIQNPU2cR1gleZqt03tibPj9Bxj P1aypg/GqtWg/+QVyPIkraJO/H8= X-Mailgun-Sending-Ip: 198.61.254.9 X-Mailgun-Sid: WyI0MWYwYSIsICJsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnIiwgImJlOWU0YSJd Received: from smtp.codeaurora.org (ec2-35-166-182-171.us-west-2.compute.amazonaws.com [35.166.182.171]) by smtp-out-n07.prod.us-west-2.postgun.com with SMTP id 60d3e87d638039e997e2f7d5 (version=TLS1.2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256); Thu, 24 Jun 2021 02:05:49 GMT Sender: cang=codeaurora.org@mg.codeaurora.org Received: by smtp.codeaurora.org (Postfix, from userid 1001) id 8BBC5C43143; Thu, 24 Jun 2021 02:05:48 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-caf-mail-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=ALL_TRUSTED,BAYES_00, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.codeaurora.org (localhost.localdomain [127.0.0.1]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: cang) by smtp.codeaurora.org (Postfix) with ESMTPSA id 302A6C433F1; Thu, 24 Jun 2021 02:05:47 +0000 (UTC) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Thu, 24 Jun 2021 10:05:47 +0800 From: Can Guo To: Adrian Hunter Cc: asutoshd@codeaurora.org, nguyenb@codeaurora.org, hongwus@codeaurora.org, ziqichen@codeaurora.org, linux-scsi@vger.kernel.org, kernel-team@android.com, Alim Akhtar , Avri Altman , "James E.J. Bottomley" , "Martin K. Petersen" , Stanley Chu , Bean Huo , Jaegeuk Kim , Satya Tangirala , Kiwoong Kim , Bart Van Assche , open list Subject: Re: [PATCH v4 02/10] scsi: ufs: Add flags pm_op_in_progress and is_sys_suspended In-Reply-To: References: <1624433711-9339-1-git-send-email-cang@codeaurora.org> <1624433711-9339-3-git-send-email-cang@codeaurora.org> Message-ID: <646da45daab10c264c4c8671744a07df@codeaurora.org> X-Sender: cang@codeaurora.org User-Agent: Roundcube Webmail/1.3.9 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Adrian, On 2021-06-23 20:33, Adrian Hunter wrote: > On 23/06/21 10:35 am, Can Guo wrote: >> Add flags pm_op_in_progress and is_sys_suspended to track the status >> of hba >> runtime and system suspend/resume operations. >> >> Signed-off-by: Can Guo >> --- >> drivers/scsi/ufs/ufshcd.c | 12 +++++++++++- >> drivers/scsi/ufs/ufshcd.h | 4 ++++ >> 2 files changed, 15 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c >> index c40ba1d..abe5f2d 100644 >> --- a/drivers/scsi/ufs/ufshcd.c >> +++ b/drivers/scsi/ufs/ufshcd.c >> @@ -551,6 +551,8 @@ static void ufshcd_print_host_state(struct ufs_hba >> *hba) >> hba->curr_dev_pwr_mode, hba->uic_link_state); >> dev_err(hba->dev, "wlu_pm_op_in_progress=%d, >> is_wlu_sys_suspended=%d\n", >> hba->wlu_pm_op_in_progress, hba->is_wlu_sys_suspended); >> + dev_err(hba->dev, "pm_op_in_progress=%d, is_sys_suspended=%d\n", >> + hba->pm_op_in_progress, hba->is_sys_suspended); >> dev_err(hba->dev, "Auto BKOPS=%d, Host self-block=%d\n", >> hba->auto_bkops_enabled, hba->host->host_self_blocked); >> dev_err(hba->dev, "Clk gate=%d\n", hba->clk_gating.state); >> @@ -9141,6 +9143,8 @@ static int ufshcd_suspend(struct ufs_hba *hba) >> >> if (!hba->is_powered) >> return 0; >> + >> + hba->pm_op_in_progress = true; >> /* >> * Disable the host irq as host controller as there won't be any >> * host controller transaction expected till resume. > */ > ufshcd_disable_irq(hba); > ret = ufshcd_setup_clocks(hba, false); > if (ret) { > ufshcd_enable_irq(hba); > > Is "hba->pm_op_in_progress = false" needed here? > > return ret; > } > > You are right, I missed it. Will add it in next ver. Thanks! Regards, Can Guo. > >> @@ -9160,6 +9164,7 @@ static int ufshcd_suspend(struct ufs_hba *hba) >> ufshcd_vreg_set_lpm(hba); >> /* Put the host controller in low power mode if possible */ >> ufshcd_hba_vreg_set_lpm(hba); >> + hba->pm_op_in_progress = false; >> return ret; >> } >> >> @@ -9179,6 +9184,7 @@ static int ufshcd_resume(struct ufs_hba *hba) >> if (!hba->is_powered) >> return 0; >> >> + hba->pm_op_in_progress = true; >> ufshcd_hba_vreg_set_hpm(hba); >> ret = ufshcd_vreg_set_hpm(hba); >> if (ret) >> @@ -9198,6 +9204,7 @@ static int ufshcd_resume(struct ufs_hba *hba) >> out: >> if (ret) >> ufshcd_update_evt_hist(hba, UFS_EVT_RESUME_ERR, (u32)ret); >> + hba->pm_op_in_progress = false; >> return ret; >> } >> >> @@ -9222,6 +9229,8 @@ int ufshcd_system_suspend(struct ufs_hba *hba) >> trace_ufshcd_system_suspend(dev_name(hba->dev), ret, >> ktime_to_us(ktime_sub(ktime_get(), start)), >> hba->curr_dev_pwr_mode, hba->uic_link_state); >> + if (!ret) >> + hba->is_sys_suspended = true; >> return ret; >> } >> EXPORT_SYMBOL(ufshcd_system_suspend); >> @@ -9247,7 +9256,8 @@ int ufshcd_system_resume(struct ufs_hba *hba) >> trace_ufshcd_system_resume(dev_name(hba->dev), ret, >> ktime_to_us(ktime_sub(ktime_get(), start)), >> hba->curr_dev_pwr_mode, hba->uic_link_state); >> - >> + if (!ret) >> + hba->is_sys_suspended = false; >> return ret; >> } >> EXPORT_SYMBOL(ufshcd_system_resume); >> diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h >> index 93aeeb3..1e7fe73 100644 >> --- a/drivers/scsi/ufs/ufshcd.h >> +++ b/drivers/scsi/ufs/ufshcd.h >> @@ -754,6 +754,8 @@ struct ufs_hba { >> struct device_attribute spm_lvl_attr; >> /* A flag to tell whether __ufshcd_wl_suspend/resume() is in >> progress */ >> bool wlu_pm_op_in_progress; >> + /* A flag to tell whether ufshcd_suspend/resume() is in progress */ >> + bool pm_op_in_progress; >> >> /* Auto-Hibernate Idle Timer register value */ >> u32 ahit; >> @@ -841,6 +843,8 @@ struct ufs_hba { >> struct ufs_clk_scaling clk_scaling; >> /* A flag to tell whether the UFS device W-LU is system suspended */ >> bool is_wlu_sys_suspended; >> + /* A flag to tell whether hba is system suspended */ >> + bool is_sys_suspended; >> >> enum bkops_status urgent_bkops_lvl; >> bool is_urgent_bkops_lvl_checked; >>