Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp5621543pxj; Wed, 23 Jun 2021 05:35:42 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwNsYC8J9ODxxOERxbhkL9Bpv2zEjG9wwEAjY30KxjO4YAaYmFVNhum1lAoQPl3Mh8prH8P X-Received: by 2002:a17:907:9c9:: with SMTP id bx9mr9683046ejc.144.1624451741869; Wed, 23 Jun 2021 05:35:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624451741; cv=none; d=google.com; s=arc-20160816; b=xQGn2ErJWSg0tW7ZLGi8K4Udpfhc6Y28vtuDo+LTdHrX89EYxP4NpIm6sM8XXySuBz JpD3kpjS9WBfatwxuiFLsaMT6uPXnOY8tZALZn0r8R3qccTwcCDnNpV+FIyMJVt/zNvK /6ZwRRndGq7QCDKHF3WlfrlyhOaWJ3D/37W8zg8/vtTlG7k+oL4sKS9WgXLpp8z/8Mep /pZVP7aoTyvYRcT2GcVUzkZpOAg6tQ1ZxCOKMW/X+3yCe9cdGe/RxYRtDk8ncMZLNsTi TXAneDyixswbttBzTzUTVQVPImTcBceN6RIByuDA1dUjYFfTNNPGXJMZ38qskzuE70Wi 6V4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:organization :from:references:cc:to:subject:ironport-sdr:ironport-sdr; bh=u2cu31pzI4JMUAncW+qnL4LRNGNVBzyD7FdSJmYK1nI=; b=VR8LVaxWcn3/iup8Q41EcAxYyyCj+cF03peagCdiNpCiH3iZe3RMFiF6CXPWiJKJ9K 5Ufvko00nGh9lUuTvAU8aUltscdFs93LINZi+IrEgiwhvoSyvoFFapfvyium2ol2MUGS XlQm3iRnGrDzNeYfLAJzGJg3HY8CwdMKKY4i4kxTAV1QUjKaWB4hdOWKy3MDFEDuHG3u 7SfHDz9pK5HhN4kmX5hLTmrKU1bJZ/DQRbKgCulXsGO6mKq64bmLccnA563oNlXM0Xz7 68DJz/uTjjQ0EaSfj0pmtvuXFSQdd45o/kkJqTCh/h9eElPajVGac/Rm+fU22cOJfvjI 2FSg== ARC-Authentication-Results: i=1; mx.google.com; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id eb21si523625ejc.254.2021.06.23.05.35.18; Wed, 23 Jun 2021 05:35:41 -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; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230061AbhFWMf5 (ORCPT + 99 others); Wed, 23 Jun 2021 08:35:57 -0400 Received: from mga04.intel.com ([192.55.52.120]:42821 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230384AbhFWMf4 (ORCPT ); Wed, 23 Jun 2021 08:35:56 -0400 IronPort-SDR: MH1aMG9iCdIpzQ7jE4qQk612ReISVLm2mB91R8NZ9jzvYFzZl4h6mU4t8ghHZECpooY47wJ/Og X1zFY5A5lMwA== X-IronPort-AV: E=McAfee;i="6200,9189,10023"; a="205423464" X-IronPort-AV: E=Sophos;i="5.83,293,1616482800"; d="scan'208";a="205423464" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jun 2021 05:33:26 -0700 IronPort-SDR: CoIbM9hMlkZZaXOB9WWWFvy8MOhN/dl5YS/M1dsRoU7BCSD9hj/45CC1rbHAPSxcKqbdC+ueyL gtQ71drzSBLw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,293,1616482800"; d="scan'208";a="406293937" Received: from ahunter-desktop.fi.intel.com (HELO [10.237.72.79]) ([10.237.72.79]) by orsmga006.jf.intel.com with ESMTP; 23 Jun 2021 05:33:21 -0700 Subject: Re: [PATCH v4 02/10] scsi: ufs: Add flags pm_op_in_progress and is_sys_suspended To: Can Guo , asutoshd@codeaurora.org, nguyenb@codeaurora.org, hongwus@codeaurora.org, ziqichen@codeaurora.org, linux-scsi@vger.kernel.org, kernel-team@android.com Cc: 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 References: <1624433711-9339-1-git-send-email-cang@codeaurora.org> <1624433711-9339-3-git-send-email-cang@codeaurora.org> From: Adrian Hunter Organization: Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki Message-ID: Date: Wed, 23 Jun 2021 15:33:43 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <1624433711-9339-3-git-send-email-cang@codeaurora.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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; } > @@ -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; >