Received: by 2002:a05:6358:16cc:b0:ea:6187:17c9 with SMTP id r12csp12255179rwl; Tue, 3 Jan 2023 11:19:51 -0800 (PST) X-Google-Smtp-Source: AMrXdXt0REpfD3PWI7Ve+LZdZcSbUDJpAf6oRLaVQriMMwW2yfB1TMB85bbWMpU9i0TQSttBlJFf X-Received: by 2002:a62:ed08:0:b0:577:272f:fdb with SMTP id u8-20020a62ed08000000b00577272f0fdbmr37564891pfh.29.1672773590823; Tue, 03 Jan 2023 11:19:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672773590; cv=none; d=google.com; s=arc-20160816; b=oz8B6H1z4r+gRYgRRchlOoTmArxBQu210V9E40KrgTiQqjch3PrVAsNIHx8KIlnOcS VfsshxsV/MtbkdLhNggAaQfM0IjYcw1mNSJRVFuy/wBDUbwhu6pz8uQ1ksCvudauuxla snDwKeIT/oiXcGSweAXToxV/+8oCtMa54K3JkQetTArhJzdp6IhLdiye/onffHMcAGkm XiPEC90VR3fSbsjw1+IgCVPHE+AiT3nmL31WTs0RHYtDPVGF+jEq2oLnbX72fsIl6vk6 3StQQDy2xA0r1wQxl0Mc5NUcF6mhPz8LQ7831shC/0FihQ6Ghfmcr+haIiXFHx7rIUdf Gycg== 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=6d8I4+jqW1y25DWjJiUYdIyzltt52fjSDlIXor3RnDI=; b=d5eEkIzpZ+x3Zbhw/mGFFHJZHMssFjt1MtULN5zPaPGv11dkQ/jeZEt6Dz0/d3PXUr MIBCtO9e3qMB3b8DHphNR0KxwoRe1jJMzdPe562srUBciX+2e0/RhGWdMZg4Sogeh/SM tu3GkvAv/2shlZgwvgVHzAnYM29Bh/jds5RYMZBKVPit93/VmIdg5q6VuaKpeOXSNUcv YIsfK28rQF0ejtoepoY9hat834xuGHg0im+vVLrgKkKxwdG/cyBnIngyac6G+eul4zxb afhird3n9ThbddpgcWpDMSbCS3klf3DxcNVdej7TQYmFGnOZrLX2AeGRmMjACST4LXBY uEIw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=dD0FhhKW; 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 j71-20020a63804a000000b00497e31916dfsi27811867pgd.273.2023.01.03.11.19.43; Tue, 03 Jan 2023 11:19:50 -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=dD0FhhKW; 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 S238875AbjACTMe (ORCPT + 59 others); Tue, 3 Jan 2023 14:12:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45134 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238797AbjACTMN (ORCPT ); Tue, 3 Jan 2023 14:12:13 -0500 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 81F9DFACB; Tue, 3 Jan 2023 11:12:12 -0800 (PST) Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 303IjQLv006502; Tue, 3 Jan 2023 19:11:39 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=6d8I4+jqW1y25DWjJiUYdIyzltt52fjSDlIXor3RnDI=; b=dD0FhhKW6fnPL5fVAxxB/gAvve5iTeFid+9KC/kHSLknYAEaRDyZyHi6H5ZZb5uNekoC SyP5IU7zZWzY9y5kyLDtrriQRvTe0fqJBe+aJZY+i/d3k91wpyMIbML5EXV8/qJkYmH8 9JYksrSwF20to7Mk/0V0zJG+Tsx7DDJZL9JfrSVjRlLlsBkIRarvqd12I8MTO3jYyXzk 5O1iGRqpos1axeEFgYxtLbJYVNBL5MQZ05jYT6EKwIEXC0JxC/i3xHJsd8Kzd2zsNwBO lxZQlClwiGhv61zDPqpuKgJYq9AXrHn4A/Lsbm5062kD885azfP5v8ytB8OoWrOFVA4T gQ== Received: from nasanppmta03.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3mvsvf81ph-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 03 Jan 2023 19:11:38 +0000 Received: from nasanex01a.na.qualcomm.com (corens_vlan604_snip.qualcomm.com [10.53.140.1]) by NASANPPMTA03.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 303JBcB3011327 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 3 Jan 2023 19:11:38 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; Tue, 3 Jan 2023 11:11:38 -0800 From: Asutosh Das To: , , CC: , , , , , , , , Asutosh Das , , Alim Akhtar , "James E.J. Bottomley" , Jinyoung Choi , open list Subject: [PATCH v12 03/15] ufs: core: Defer adding host to scsi if mcq is supported Date: Tue, 3 Jan 2023 11:09:22 -0800 Message-ID: <1f155ce224cfaa7ba9e7a1219a8807add5168ba2.1672771664.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: nasanex01b.na.qualcomm.com (10.46.141.250) 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: xXr6PN7JXcEqCi-nynS0TrJZwQy0n9ud X-Proofpoint-ORIG-GUID: xXr6PN7JXcEqCi-nynS0TrJZwQy0n9ud X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-03_07,2023-01-03_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 mlxlogscore=999 spamscore=0 impostorscore=0 lowpriorityscore=0 malwarescore=0 phishscore=0 mlxscore=0 bulkscore=0 clxscore=1015 suspectscore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301030164 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,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 bc30268..2efd115 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -95,6 +95,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; @@ -8301,6 +8306,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; @@ -8335,6 +8341,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); @@ -9933,10 +9947,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