From patchwork Mon Dec 30 08:12:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanley Chu X-Patchwork-Id: 11312689 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D87BA6C1 for ; Mon, 30 Dec 2019 08:12:48 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B6C692071E for ; Mon, 30 Dec 2019 08:12:48 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="XBrCAvj1" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727270AbfL3IMj (ORCPT ); Mon, 30 Dec 2019 03:12:39 -0500 Received: from mailgw01.mediatek.com ([210.61.82.183]:61195 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727237AbfL3IMj (ORCPT ); Mon, 30 Dec 2019 03:12:39 -0500 X-UUID: 904ee707ec974189ae3160414c3faa94-20191230 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=5R6N7XJB2+tt8KF/gBYonmpANV9A07p3yQjPCAKO6yg=; b=XBrCAvj1Y7v/dHdJfMKsAXYfnMrqUs6JqpkhGnp/MW3C/mKEw4LvObiMIzhT3rHflsi6uRQiz0g7bf1bTnUB6ISykKtsNjZKaMkUPsuTCcFoocOY75+FbEhuBkzBX/qDPfY8+eqf4RBi12pHXsP6uE5Z7p93AoIXkKsFS6wdptI=; X-UUID: 904ee707ec974189ae3160414c3faa94-20191230 Received: from mtkmrs01.mediatek.inc [(172.21.131.159)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 900142939; Mon, 30 Dec 2019 16:12:29 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs02n1.mediatek.inc (172.21.101.77) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Mon, 30 Dec 2019 16:11:42 +0800 Received: from mtkswgap22.mediatek.inc (172.21.77.33) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Mon, 30 Dec 2019 16:12:01 +0800 From: Stanley Chu To: , , , , , , , , CC: , , , , , , , , , Stanley Chu , Subject: [PATCH v1 1/2] scsi: ufs: set device as default active power mode during initialization only Date: Mon, 30 Dec 2019 16:12:25 +0800 Message-ID: <1577693546-7598-2-git-send-email-stanley.chu@mediatek.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1577693546-7598-1-git-send-email-stanley.chu@mediatek.com> References: <1577693546-7598-1-git-send-email-stanley.chu@mediatek.com> MIME-Version: 1.0 X-MTK: N Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org Currently ufshcd_probe_hba() always sets device status as "active". This shall be by an assumption that device is already in active state during the boot stage before kernel. However, if link is configured as "off" state and device is requested to enter "sleep" or "powerdown" power mode during suspend flow, device will NOT be waken up to "active" power mode during resume flow because device is already set as "active" power mode in ufhcd_probe_hba(). Fix it by setting device as default active power mode during initialization only, and skipping changing mode during PM flow in ufshcd_probe_hba(). Fixes: 7caf489b99a4 (scsi: ufs: issue link starup 2 times if device isn't active) Cc: Alim Akhtar Cc: Avri Altman Cc: Bart Van Assche Cc: Bean Huo Cc: Can Guo Cc: Matthias Brugger Cc: Subhash Jadavani Cc: stable@vger.kernel.org Signed-off-by: Stanley Chu --- drivers/scsi/ufs/ufshcd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index ed02a704c1c2..9abb7085a5d0 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -6986,7 +6986,8 @@ static int ufshcd_probe_hba(struct ufs_hba *hba) ufshcd_tune_unipro_params(hba); /* UFS device is also active now */ - ufshcd_set_ufs_dev_active(hba); + if (!hba->pm_op_in_progress) + ufshcd_set_ufs_dev_active(hba); ufshcd_force_reset_auto_bkops(hba); hba->wlun_dev_clr_ua = true; From patchwork Mon Dec 30 08:12:26 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanley Chu X-Patchwork-Id: 11312691 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 0F77314E3 for ; Mon, 30 Dec 2019 08:12:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E1F2421D7E for ; Mon, 30 Dec 2019 08:12:48 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="sZXTbpNV" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727302AbfL3IMn (ORCPT ); Mon, 30 Dec 2019 03:12:43 -0500 Received: from mailgw01.mediatek.com ([210.61.82.183]:13156 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727273AbfL3IMm (ORCPT ); Mon, 30 Dec 2019 03:12:42 -0500 X-UUID: 343b846368e741b9832269576d6311ce-20191230 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=0KIHktbzT0WK8dPIhtZ0AEWFT4vEf5OuB0GSMuDxVIM=; b=sZXTbpNVSdNkJTgsrm3MuOLqChFWjl9HhNtgt/ON3EMwF+WKgfqlAZRFZzpB3gZvUrt07w0vSw1MZ8NivFWWcwkp0bhpms2CKD2S6LhMaDuRRc8ay1ZyU35k/6IViuCb6yEA79HoE3U9dK+mbqvAhG3L3CWnm/qHGrWt01r9qPA=; X-UUID: 343b846368e741b9832269576d6311ce-20191230 Received: from mtkcas06.mediatek.inc [(172.21.101.30)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 901626152; Mon, 30 Dec 2019 16:12:35 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs08n1.mediatek.inc (172.21.101.55) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Mon, 30 Dec 2019 16:13:02 +0800 Received: from mtkswgap22.mediatek.inc (172.21.77.33) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Mon, 30 Dec 2019 16:12:01 +0800 From: Stanley Chu To: , , , , , , , , CC: , , , , , , , , , Stanley Chu , Subject: [PATCH v1 2/2] scsi: ufs: remove link_startup_again flow in ufshcd_link_startup Date: Mon, 30 Dec 2019 16:12:26 +0800 Message-ID: <1577693546-7598-3-git-send-email-stanley.chu@mediatek.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1577693546-7598-1-git-send-email-stanley.chu@mediatek.com> References: <1577693546-7598-1-git-send-email-stanley.chu@mediatek.com> MIME-Version: 1.0 X-MTK: N Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org link_startup_again flow in ufshcd_link_startup() is not necessary since currently device can be moved to "active" power mode during resume flow by commit as below, "scsi: ufs: set device as default active power mode during initialization only" Fixes: 7caf489b99a4 (scsi: ufs: issue link starup 2 times if device isn't active) Cc: Alim Akhtar Cc: Avri Altman Cc: Bart Van Assche Cc: Bean Huo Cc: Can Guo Cc: Matthias Brugger Cc: Subhash Jadavani Cc: stable@vger.kernel.org Signed-off-by: Stanley Chu --- drivers/scsi/ufs/ufshcd.c | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 9abb7085a5d0..1900f811394a 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -4365,16 +4365,7 @@ static int ufshcd_link_startup(struct ufs_hba *hba) { int ret; int retries = DME_LINKSTARTUP_RETRIES; - bool link_startup_again = false; - /* - * If UFS device isn't active then we will have to issue link startup - * 2 times to make sure the device state move to active. - */ - if (!ufshcd_is_ufs_dev_active(hba)) - link_startup_again = true; - -link_startup: do { ufshcd_vops_link_startup_notify(hba, PRE_CHANGE); @@ -4408,12 +4399,6 @@ static int ufshcd_link_startup(struct ufs_hba *hba) goto out; } - if (link_startup_again) { - link_startup_again = false; - retries = DME_LINKSTARTUP_RETRIES; - goto link_startup; - } - /* Mark that link is up in PWM-G1, 1-lane, SLOW-AUTO mode */ ufshcd_init_pwr_info(hba); ufshcd_print_pwr_info(hba);