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;