From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 166633A5E73 for ; Mon, 23 Mar 2026 13:14:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774271650; cv=none; b=r2fzxTbMHz6CoWK+DG52UY36rSaeockQgVpMURwU1iCsZPB3Edkkk5OrbfIaNmWPhjornlvQ4LKAE7AReHsMMY9VqHkwrCeNVzpokOVmRfDQ6oTfjFTc2Txghto2WiPdYecxGqgRA0N/UifmxwZ4BlB/Hx+gkHoaCoNEx1UYxX4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774271650; c=relaxed/simple; bh=JPZsmS11+JwdkvRgHyF38obFN+XU7pSyJAFCM5N/iqg=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=Waw/9MJR9HOPsdo/AUXphyhV1hCkdgzIMWTWHwC26FGZnZq3FMsGBOm0zo/Vky4oWOjSPo3r77CoqYR/hgscXEDYQTHAHutUcO+Yy3XNpKlzxoRlcHAK1KEQCgzwHoqgh60nHGVDDZm9+D9gx8woCA0YyXnglpAdLNqPMuZ5eEQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=OVF9Dm2P; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=hkE4ySYM; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="OVF9Dm2P"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="hkE4ySYM" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62NBgDrV122770 for ; Mon, 23 Mar 2026 13:14:08 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= hhOVnrszaNufwcUXa8iHOZ0yUXL4wPlq8WcC3t69bE0=; b=OVF9Dm2P5kwgGW+J 0TTLCMd0o3w1s3bUSy85d4O4Wbkxcc0rFUTMkhLZN1mQ5l4YT/an3D/mlHHyHJyP A72HEVyCc4fqA2oSJdJQRgnr3Z12lzQ3B5EDFga64ticSlLaMKVmVcvMc0XqBn/2 +ZcPZOu9v2DYC0xDhclpY5h2F8uT7lA6UKCfQWML7wswB0sOHC2DspfdzdXA1AFk GFiFtDQ1esj/8V95uFYrbE+ILkmbJImCqY9t209b0fV+9f19siSn+3HSKnZUcDQV UGtDyBgOT7vkt+vW0BWK7Qpy4W/Se+BwbtcpMjLrQoADkFt9b7wuU+XsrQDAyCKF dmf4Gg== Received: from mail-yw1-f199.google.com (mail-yw1-f199.google.com [209.85.128.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d34vkr97v-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 13:14:07 +0000 (GMT) Received: by mail-yw1-f199.google.com with SMTP id 00721157ae682-794c39ea759so970107b3.1 for ; Mon, 23 Mar 2026 06:14:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774271647; x=1774876447; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=hhOVnrszaNufwcUXa8iHOZ0yUXL4wPlq8WcC3t69bE0=; b=hkE4ySYMLPRzcqLxZvfcnnyroF9VEUj46fvY+hL2LBEiGuuLOzIap1yIaKbGUPRf87 4nQrrVlMDt2KWq49s/FNIkz5YKQ9QULPdil8BzfetIEGk8gRABNyPAYP+QzkHkXc6Sa7 F3u3Y2Cu71FIRhtZ2nowqBA8h+QMxicAa8ICa3Px5ul/rvJPJOLObyVcidRx/icXly4Y jMVDPkUsiBa81+Hda8tWeicSLk3yENv8uc1LR77GBMq7kKlGV+bG/es0tiifmzJmcToP mfEG8HHECCTLHEwQdnvP6OdelhP87qiPWGgwTx7d4lxbkcCMalb7XezfhCUd5lN+f0qx THlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774271647; x=1774876447; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=hhOVnrszaNufwcUXa8iHOZ0yUXL4wPlq8WcC3t69bE0=; b=lUa4ezVXHQz3A5/XNFBhbQbHoV+LZtjud9dTYBYaQYYvKYkyQwahPFgBI1A8UgmalM aHLxFvvYipAnhhOXudwuj+wJU39usDK1T79TdpOu6LQpc/5KHwfNpUCENRqYq4kVLHEc npTNQ+POPYigA9A1rX+e8jDV0qPYhjv37aBpOhLQZ/vqZwjBweSLlzxNdQUGmPdU2uvu iZgtU88F+IiQltNyllElcdJOTTJXttxU11Tsm4SitwUAlCBwQ1vb9gTh6IoknDTjI/AB 9ePJemalW1NoRekQiYU2tGgdVYBg32Owq46H5EjA/8OyJGDn/Oj/8zcOcCKLQF0YBcrp 3x0g== X-Forwarded-Encrypted: i=1; AJvYcCWF4Uu9I8O+Zuq9gNofzwzhaUcivVIlMqywIdEM0Z6WDYVyGC9S2EuxvojfGeyjTiG/RAW4lOLEh1Kjxu4=@vger.kernel.org X-Gm-Message-State: AOJu0Yw0lngtBQTKpCi6YUZRUtUc1cHfPPZjHhhD0L1o1sQQXwo1B6sO 7OekvIcKSFmSgoMeXjJfTOPAKm+uJRZ7UgzXTJGYKDoD3fO1nRQEb76OQihH1JH08oAXfFgKNjK /7NfLAkVv0aoQ6o8MCl98b4KQzM6ZhJgIhOC2szHptiU0WqzHJpzuoeY5J1fTWw8vKvg= X-Gm-Gg: ATEYQzyTuKTFUeS3kG0cGv9CRHOY2FEROWHVQvZnnukB/nYsAS7lTD5ukvuxo7YNike Q68tTTSlaDNaaFu/c1Pn3GfpajuLVlX5A/f/+eRoy2+4pOQeFomn1LHiwUdj2ZhSSlvEffYPXX3 7ml7nObwKt/Yn8t2EA01NsmfBtwQsWtaXLHoZf/9WOPVKjEY4EwhNiomfPTxTFsN0ZJ40cpqLt6 vEhJuZsL5+DiF5cV6oDBZM/FI492Z7X+fGGFGDrYSo69nhze9RCgdlM1vrxfjpBeqeWd8oSVKmU jVP6kyFUSIK6rXWQHZOljzHedE6fyS5kwSKrHU2w20PtkVKyswANkw9jOHUcGfPcum0k9vHZZ3o B66uC/CYSKltcjmwWAQOkmcG4kf8QlNzV0DYYFQDyMvvofs7tFKK/ X-Received: by 2002:a05:690c:490b:b0:798:4f55:2c5e with SMTP id 00721157ae682-79a90bc9e54mr119543207b3.30.1774271647382; Mon, 23 Mar 2026 06:14:07 -0700 (PDT) X-Received: by 2002:a05:690c:490b:b0:798:4f55:2c5e with SMTP id 00721157ae682-79a90bc9e54mr119542597b3.30.1774271646905; Mon, 23 Mar 2026 06:14:06 -0700 (PDT) Received: from [10.217.219.69] ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 00721157ae682-79a9057b4ecsm58210727b3.35.2026.03.23.06.14.03 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 23 Mar 2026 06:14:06 -0700 (PDT) Message-ID: Date: Mon, 23 Mar 2026 18:44:02 +0530 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v1 1/2] ufs: core: Configure only active lanes during link To: Shawn Lin Cc: linux-arm-msm@vger.kernel.org, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, nitin.rawat@oss.qualcomm.com, mani@kernel.org, James.Bottomley@HansenPartnership.com, martin.petersen@oracle.com References: <20260311060912.3139257-1-palash.kambar@oss.qualcomm.com> <20260311060912.3139257-2-palash.kambar@oss.qualcomm.com> Content-Language: en-US From: Palash Kambar In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDEwMSBTYWx0ZWRfXxKqEGtt6ZfuI 0O632rkd+9dNFRIjwsOY2lH9gsmAX25e0VkZom2LWP6+2koqHxLDyyQM/v6e9hgqVXM0Z6hJhiZ 3iSTHYLP5/jV32Mz4QcfDReLmAVFMzQa8vklXVd1N878RhU6x7am+SosEVOXKRJ+uMrAgCrp/GJ Z6F2cGwKAh2gimf7XGRznr7NlC84th+hieJ4vAK46sgJcGpbMYToy62JCEptdYLzauPWZ6F796j BRUODXx0q5OAN7XEP06m4Lx3R7ybHMtRP4OSuS+Et1HEipgV76r8RYRUTqn8V6aGfoOhfqxS+wG jlM2B1v8S3VNFdZ14JVsFqNP9z7+7j8bM94DqItTDak5PbWnt6qmUtcBsMLJ5JkoXgC9Lhm74DA t9oDYORer9lGozgK0fS2ixqQCtIqpIGR7ffbLBFi+No2TrOOrrDEqsanKzUTe1x+ndtr/5MrjfG +RwHV45e/rCrC6U6uUA== X-Authority-Analysis: v=2.4 cv=eMoeTXp1 c=1 sm=1 tr=0 ts=69c13c9f cx=c_pps a=72HoHk1woDtn7btP4rdmlg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=hTMk1fmUvmZNUCmr5HgA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=kA6IBgd4cpdPkAWqgNAz:22 X-Proofpoint-GUID: y7Emm4HQ68kJw5C8yV1UVEM9EFqCcqj5 X-Proofpoint-ORIG-GUID: y7Emm4HQ68kJw5C8yV1UVEM9EFqCcqj5 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-23_04,2026-03-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 impostorscore=0 bulkscore=0 phishscore=0 spamscore=0 clxscore=1015 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603230101 On 3/11/2026 12:23 PM, Shawn Lin wrote: > Hi Palash > > 在 2026/03/11 星期三 14:09, palash.kambar@oss.qualcomm.com 写道: >> From: Palash Kambar >> >> The number of active lanes detected during UFS link startup can be > > connected lanes(which is used in the code blow) or active lanes? There > are different primitives in UniPro context. Yes, I meant connected lanes, will fix comment. > >> fewer than the lanes specified in the device tree. The current driver >> logic attempts to configure all lanes defined in the device tree, >> regardless of their actual availability. This mismatch may cause >> failures during power mode changes. >> > > It sounds vague, how it causes failures, could you quote some clue from > spec? There was a negotiation mismatch for connected lanes during link startup phase. So when host sends power mode change(PMC) after UFS link startup, device returns a failure for PMC command with WR_ERROR_CAP due to mismatch in the connected lane capability between host and device. > >> Hence, add check to identify only the lanes that were successfully >> discovered during link startup, to warn on power mode change errors >> caused by mismatched lane counts. >> >> Signed-off-by: Palash Kambar >> --- >>   drivers/ufs/core/ufshcd.c | 39 +++++++++++++++++++++++++++++++++++++++ >>   1 file changed, 39 insertions(+) >> >> diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c >> index 31950fc51a4c..c956fab32932 100644 >> --- a/drivers/ufs/core/ufshcd.c >> +++ b/drivers/ufs/core/ufshcd.c >> @@ -5035,6 +5035,42 @@ void ufshcd_update_evt_hist(struct ufs_hba *hba, u32 id, u32 val) >>   } >>   EXPORT_SYMBOL_GPL(ufshcd_update_evt_hist); >>   +static int ufshcd_get_connected_tx_lanes(struct ufs_hba *hba, u32 *tx_lanes) >> +{ >> +    return ufshcd_dme_get(hba, >> +                  UIC_ARG_MIB(PA_CONNECTEDTXDATALANES), tx_lanes); >> +} >> + >> +static int ufshcd_get_connected_rx_lanes(struct ufs_hba *hba, u32 *rx_lanes) >> +{ >> +    return ufshcd_dme_get(hba, >> +                  UIC_ARG_MIB(PA_CONNECTEDRXDATALANES), rx_lanes); >> +} >> + >> +static void ufshcd_validate_link_params(struct ufs_hba *hba) >> +{ >> +    int val = 0; >> + >> +    if (ufshcd_get_connected_tx_lanes(hba, &val)) >> +        return; >> + >> +    if (val != hba->lanes_per_direction) { >> +        dev_err(hba->dev, "Tx lane mismatch [config,reported] [%d,%d]\n", >> +            hba->lanes_per_direction, val); >> +        return; >> +    } >> + >> +    val = 0; >> + >> +    if (ufshcd_get_connected_rx_lanes(hba, &val)) >> +        return; >> + >> +    if (val != hba->lanes_per_direction) { >> +        dev_err(hba->dev, "Rx lane mismatch [config,reported] [%d,%d]\n", >> +            hba->lanes_per_direction, val); >> +    } >> +} >> + >>   /** >>    * ufshcd_link_startup - Initialize unipro link startup >>    * @hba: per adapter instance >> @@ -5108,6 +5144,9 @@ static int ufshcd_link_startup(struct ufs_hba *hba) >>               goto out; >>       } >>   +    /* Check successfully detected lanes */ >> +    ufshcd_validate_link_params(hba); >> + >>       /* Include any host controller configuration via UIC commands */ >>       ret = ufshcd_vops_link_startup_notify(hba, POST_CHANGE); >>       if (ret) >>