Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp3151788rwb; Wed, 30 Nov 2022 16:21:05 -0800 (PST) X-Google-Smtp-Source: AA0mqf4fzJRvVqz4hSvWPXpcNnnxUjpQzZyLv9hQTeq0p+LqWLIBiTD/asuIAQ0ewTHaQrdXIcm4 X-Received: by 2002:a17:906:5251:b0:791:9801:e48a with SMTP id y17-20020a170906525100b007919801e48amr38504132ejm.738.1669854064784; Wed, 30 Nov 2022 16:21:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669854064; cv=none; d=google.com; s=arc-20160816; b=GUfnNa4cympJSHIUvFUEqUwBufPjM+/qa0GHP133grYejA5whKZLIB3kJR9glsL/5w hyCCA80DkKuN4+gupfoUocMzmvbFVrmshHUBIIDC7PTMowbPeuisa83XVH8Q2H8B72EB Oap5XMGPglr3TUiga867yc9VyJXM/wjIlXa4UyKiRR63qG4XHc+fHkrYXAw2XlXqmVvE rAalF+e113AUxFM0tm6dSNPjogiYp+1T2JtbSZXeIrx2Iye++F0GIW/O6JPPWFuD775I JMs8oSa0Wmi4rTsZplq5BnD4w70BNWSSVG3G8MjW2PpfK0j3vK7ORtOM1Z7ESVj8dhGt aemQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=cEc6d+rufE3TCn17bKb+V76iBS5kpOCf6SBQG15gSgA=; b=MF/YR4Wf0iZE9CyECHvt/boTYUY5euFALC9XUTmGUYdXssq+GaEVYGspnHd8n7ZloK rQyv5K9ay/KFuxiLBXwIjBzjh/BSyJ6ThtcPEsHD7AK3Dw1nLcqBASmxomEFXJabBl4k ZFsRN8idQznE+p7dqsV1qAwpzlk9Odbb7njweGmeVIcrdHfUSQt2Q6b9ghJgJz6++M69 VFthxE9InrjEiW48VT8RQyhE6v0rSe9Q8S89B2CmFvvY/GCFt8AuraDFU45TbhARlv6Z Fm7h/sl6AaUiALnYZDXr6ImWZxvR+MnQ48xuBrDrEMyQ2FcPw8ay0MnP9z12PNqevnq3 zSJg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=YzX6xaun; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ho8-20020a1709070e8800b0078cc4a8a956si2469151ejc.881.2022.11.30.16.20.45; Wed, 30 Nov 2022 16:21:04 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=YzX6xaun; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230298AbiLAACp (ORCPT + 83 others); Wed, 30 Nov 2022 19:02:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46772 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229694AbiLAABN (ORCPT ); Wed, 30 Nov 2022 19:01:13 -0500 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0E6148930D; Wed, 30 Nov 2022 16:00:53 -0800 (PST) Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2AUNnEhb014022; Thu, 1 Dec 2022 00:00:36 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=qcppdkim1; bh=cEc6d+rufE3TCn17bKb+V76iBS5kpOCf6SBQG15gSgA=; b=YzX6xaunYGmz5kCQd0YPMncXek2tPYUIp78G11QT2b05hV65iuQl9kQD9KPJ9qma6UCX 8ehHb/rwoqdVtEkYdDzFVwCX/EjjZurb5HxXAfWT99lWAw7yrqjL2GGBkPtNzsUJEacR Dc6JQvuSE6Ooy6kIZqBEa0L7ziGNHCbQXYHlN1JnsoAQ3oNZH9leZRHQigUJiq9+3gC3 OKjaUazXEXjAcUdVNs/CrNVBADE695jKf7ahwza1zlbi7KArcfc4+oS75bsE6QEPeNEI XMZ38sWI6Y7y+G9wqOcXVTlkHbaAlKwJucuCaPZkLutMcn4AmDmcS+d44aEVgs8ZMw9O 1g== Received: from nasanppmta05.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3m65tbj2fj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 01 Dec 2022 00:00:36 +0000 Received: from nasanex01a.na.qualcomm.com ([10.52.223.231]) by NASANPPMTA05.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 2B100ZXG022224 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 1 Dec 2022 00:00:35 GMT Received: from asutoshd-linux1.qualcomm.com (10.80.80.8) by nasanex01a.na.qualcomm.com (10.52.223.231) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Wed, 30 Nov 2022 16:00:34 -0800 From: Asutosh Das To: , , CC: , , , , , , , , , Asutosh Das , , Alim Akhtar , "James E.J. Bottomley" , Jinyoung Choi , open list Subject: [PATCH v9 04/16] ufs: core: Defer adding host to scsi if mcq is supported Date: Wed, 30 Nov 2022 15:50:36 -0800 Message-ID: <0475898faf23cba385b9484b5823c1248b0e656a.1669850856.git.quic_asutoshd@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01a.na.qualcomm.com (10.52.223.231) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: o3PdjI2Fgou5P9J5grPLxLbjuQBs2X_s X-Proofpoint-ORIG-GUID: o3PdjI2Fgou5P9J5grPLxLbjuQBs2X_s X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-30_04,2022-11-30_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 spamscore=0 priorityscore=1501 lowpriorityscore=0 clxscore=1015 mlxscore=0 malwarescore=0 mlxlogscore=999 impostorscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211300171 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If MCQ support is present, enabling it after MCQ support has been configured would require reallocating tags and memory. It would also free up the already allocated memory in Single Doorbell Mode. So defer invoking scsi_add_host() until MCQ is configured. Co-developed-by: Can Guo Signed-off-by: Can Guo Signed-off-by: Asutosh Das Reviewed-by: Bart Van Assche Reviewed-by: Manivannan Sadhasivam --- drivers/ufs/core/ufshcd.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index eca15b0..3c2220c 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -92,6 +92,11 @@ /* UFSHC 4.0 compliant HC support this mode, refer param_set_mcq_mode() */ static bool use_mcq_mode = true; +static bool is_mcq_supported(struct ufs_hba *hba) +{ + return hba->mcq_sup && use_mcq_mode; +} + static int param_set_mcq_mode(const char *val, const struct kernel_param *kp) { int ret; @@ -8227,6 +8232,7 @@ static int ufshcd_probe_hba(struct ufs_hba *hba, bool init_dev_params) int ret; unsigned long flags; ktime_t start = ktime_get(); + struct Scsi_Host *host = hba->host; hba->ufshcd_state = UFSHCD_STATE_RESET; @@ -8261,6 +8267,14 @@ static int ufshcd_probe_hba(struct ufs_hba *hba, bool init_dev_params) ret = ufshcd_device_params_init(hba); if (ret) goto out; + + if (is_mcq_supported(hba)) { + ret = scsi_add_host(host, hba->dev); + if (ret) { + dev_err(hba->dev, "scsi_add_host failed\n"); + goto out; + } + } } ufshcd_tune_unipro_params(hba); @@ -9857,10 +9871,12 @@ int ufshcd_init(struct ufs_hba *hba, void __iomem *mmio_base, unsigned int irq) hba->is_irq_enabled = true; } - err = scsi_add_host(host, hba->dev); - if (err) { - dev_err(hba->dev, "scsi_add_host failed\n"); - goto out_disable; + if (!is_mcq_supported(hba)) { + err = scsi_add_host(host, hba->dev); + if (err) { + dev_err(hba->dev, "scsi_add_host failed\n"); + goto out_disable; + } } hba->tmf_tag_set = (struct blk_mq_tag_set) { -- 2.7.4