From nobody Wed Jun 17 05:14:06 2026 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 1D89C3CE480 for ; Thu, 23 Apr 2026 05:59:43 +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=1776923986; cv=none; b=jJ+e93Rp98iGtTnGa4isSNR28LF3oktLDoOubPAuHkwv4+Iw4jHgh/o9TN+TW8iMHVXcbDIUs7zoYgCS/yOfRxgI/25APSHgOtUbyTeJ0EaiZs4fLtRc7TZZSDVwPannIU58Ce1UGQnOcEx5REzVGBC3hOua3EBSykC6YjpNzFU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776923986; c=relaxed/simple; bh=1AQ/Due4IloRH6PqbqtwJJhCyJe1FAOAHsQoAaiIWig=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=QTLwk/j29CyuAjV9NVXd1CKkXXgzJbyGwE4Y4/gJTQiUXw231K48Ccmyu71vNBGpesx4q5byAlIZuKDIL0d7aNFEAjlIkhfyiIk0IK0NseMCfy9CRLfe40aw7k1JU+XG6x8Kb1Y2Q+kKn/X3UOb4hKX+RtSTEJRFSZELa80rmC0= 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=hoDVcpOH; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=fnspNgeg; 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="hoDVcpOH"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="fnspNgeg" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63N3KMvD2012012 for ; Thu, 23 Apr 2026 05:59:43 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=b8mBGmprGjV jfLz070FTlou3WVMADchu5GjJPHxk8sQ=; b=hoDVcpOHVKf5h5aCOGbU+Lxur+O u9Lls+JraJrqk6bb3/23PWpnAvx8aslu7J4VivBMf0dVXjn/sfsLmBzJpG2sRB7v RcFiTXCzIN8nPZin297kJggFan9ceoCVksrEzH0vM7zCwfplz6Z3tDrofmEjJ29M D3HDtvD0Bfztq0WoJl+OSd2FlyZqNYPlnQmdv5Pa0aZR0NoY54XK3yo36l0Den/f Z18kc5Hjp47U5woV+sR0FzyHR4aZePZ/6n178rjoka9YRJtDSZ+oWY0VxSUtcCsW jT8nBeGaIbmtIVmBDLkwlVrwC9yqouGu8FHvsByx3QTwqTzlulXkOm1tZKg== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dq1h7adph-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 23 Apr 2026 05:59:43 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-35e59791605so6605609a91.1 for ; Wed, 22 Apr 2026 22:59:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776923982; x=1777528782; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=b8mBGmprGjVjfLz070FTlou3WVMADchu5GjJPHxk8sQ=; b=fnspNgegYZ8P3W7evKD4Ih4dEp0WYNH8Oi+u4Tr3IC2JrSYUvUi36QiX67AoAN5V3V vP57Mrq5N4jxgCXdr+BF8BXP02R2i57NJmr14B4yK45F0x2bziDGYTM/deqCr0tSSVRL 4296Lvo9JmTyDHKBwU7WvbTTEi/7eoZx2QS4RxHVyPdBBQiTpJsSx/Qqc+wkTCdAzNdC 7GVmO/craULFFHDDkzWG96Z/SkfwSZElr0TiKa4qwQxgWW0Jawu2NLO0MGfWs5amG1aL bofAgeSF0jVCvkxBd+CgKNd+boy7b7y2xMT7iUouUAcJBbQsYtJsJwFnu5UX5oMf2kWZ T2rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776923982; x=1777528782; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=b8mBGmprGjVjfLz070FTlou3WVMADchu5GjJPHxk8sQ=; b=lJ6QuU/Fvy2UaDJQSC/lnqO6/2Dc3/Lb66jR/atsywXLtpMOY+rTWGRZ7uumlXB0OE 7DGkKao0EiE4b+wsi8VrE2PpGF0BK7YNnLWzJ5jLBNkbEkB00Xxfsf5u6A8DyejMbxYM YPztvmAVwqhC/o8tYFQv2Z/UUdeIXtwwr9tDpppbygKBoFsISw89DTvgEptigj93ClWf zOL1ASvkgqB/vm4mc6hPh3eWmZOdFzXfXuO4YjsUWAt+uwNop+3m/LTwjw9MSr8McuMJ /uGbnex4U4HGPwyxrzJKU83X1i4djY5NXECl457CMw95rCX5QP+a6sarUba/UU52XNgk cl5A== X-Forwarded-Encrypted: i=1; AFNElJ8lNQCQuNjlehdtmWvZA+ZBO5119UWO3EUAqxjiF3gKD7YFcl1vkH+lD2ehWY1jSCYYjW44cWqEXWwmB3U=@vger.kernel.org X-Gm-Message-State: AOJu0YzrwIMfq99HKMGAdxwk3TvHIhECdkvto4Aq6WuPZTcZsxpwJXbY RAZtutaztrlEe2n4F3h+5rdrsufqqALU4ePR79ZOOV8ZZOrp6vTJWCOC8bk7MQ8w9ap9KA2pM/H iMse1VW2XK1NP/yiR72DBRJ5mVs82TlBaoljhgZI+9u8/B+pYdwfdcFq8QARJDyKwOnE= X-Gm-Gg: AeBDieu5VYMMnqfNi/bZ6WASuvjU8K0eDdOx/UQpZPIHpHrWenNmKSDiCxBqhMs3fYl KsxFCg5NTWVt4teI4B98tEKAmXHWWHkC+NRQUe+RQJqE8v6S/S32TeXIJdTbkpp+paQEYXkBlM4 H7VsnBRrEqW/CthXNbubk7FBmhdlsSPQs/7DGdmC4BrfuWI+WHLVV1eFWBC309WCJMZAxuVnhfm AkL7KleFUaqWWJO4qiihHY0VfYmq5WK2/lYcbou15nGAoINefSIEfIemDAh32rEzRra4Hi+ZY1c YOXlppdvWRs9Xoang1vBztalybd1TZYMbvR2YQ/VcHEW+4D7qCEOBxH/076qhIOSqEH59/DcoAx w+1stj1FYdXUKIyWgSmQbvSppguAVGq/cMeLrL/9lK3cS0ukejOx7H3Q2vMeNBDL8 X-Received: by 2002:a17:90b:5286:b0:35f:9ab2:a5a6 with SMTP id 98e67ed59e1d1-361403d5b55mr24724631a91.2.1776923982105; Wed, 22 Apr 2026 22:59:42 -0700 (PDT) X-Received: by 2002:a17:90b:5286:b0:35f:9ab2:a5a6 with SMTP id 98e67ed59e1d1-361403d5b55mr24724592a91.2.1776923981618; Wed, 22 Apr 2026 22:59:41 -0700 (PDT) Received: from hu-pkambar-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-361418c3944sm23461841a91.8.2026.04.22.22.59.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 22:59:41 -0700 (PDT) From: palash.kambar@oss.qualcomm.com To: mani@kernel.org, James.Bottomley@HansenPartnership.com, martin.petersen@oracle.com Cc: linux-arm-msm@vger.kernel.org, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, bvanassche@acm.org, shawn.lin@rock-chips.com, nitin.rawat@oss.qualcomm.com, Palash Kambar Subject: [PATCH V6 1/2] ufs: core: Configure only active lanes during link Date: Thu, 23 Apr 2026 11:29:13 +0530 Message-Id: <20260423055914.3566684-2-palash.kambar@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260423055914.3566684-1-palash.kambar@oss.qualcomm.com> References: <20260423055914.3566684-1-palash.kambar@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: xlnJiFjeuPHjLY6EEIp0ew5ytf4ppfWF X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDIzMDA1MyBTYWx0ZWRfXwLRhxsWoGQP1 I/3s38DM1xFRTvB7Ha/H+yPR016i1ebvrReLLMEd1cL1oxIgqquqfheRxqGO9n0izf9Fo+BUuWC /YRXjoFgZ/luPD61TM+bBJhIl5eUcKgk2v2YG+/6u9ti3hznTw7ZPCnp4CczCHW8TWO4UlFdSx8 j7P7HH3ky9YnEGed8oRfRkjG9tqB0JExXH6Z+AMlvP5dz5lNKm8z/2sumQM1YHGHhA/3JFqwPWg 7CEzlZ5Mi9CTo2pMKeqNrh2XtJ8Aw7OFjAyQ4cT2e69JOSD6w9dWkWQo8RIqUrBMlhGdOChSvRV VeKatfuhXhm/54zBFWS/Vhuq0YACGoyzeEQ4LZZRXe+3tZsBCFYvWNR0UbVfgCPJaraC6Ua4vFb 5MQ9K6l5A1Z4gf0LDJCy2BPnpJzeGWZgzk6Oh2V00e38La09bYmP3bXpD/1ozknji0zmgFbqotj +rQ3MZ5tSPYhlrr0dHQ== X-Authority-Analysis: v=2.4 cv=UqNT8ewB c=1 sm=1 tr=0 ts=69e9b54f cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=N54-gffFAAAA:8 a=s8YR1HE3AAAA:8 a=VwQbUJbxAAAA:8 a=Z8YMyZzXpU5RQDwMThsA:9 a=iS9zxrgQBfv6-_F4QbHw:22 a=jGH_LyMDp9YhSvY-UuyI:22 X-Proofpoint-GUID: xlnJiFjeuPHjLY6EEIp0ew5ytf4ppfWF 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-04-23_01,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 adultscore=0 malwarescore=0 spamscore=0 suspectscore=0 priorityscore=1501 impostorscore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604230053 Content-Type: text/plain; charset="utf-8" From: Palash Kambar The number of connected lanes detected during UFS link startup can be 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. Hence, Add a check during link startup to ensure that only the lanes actually discovered are considered valid. If a mismatch is detected, fail the initialization early, preventing the driver from entering an unsupported configuration that could cause power mode transition failures. Reviewed-by: Bart Van Assche Reviewed-by: Shawn Lin Reviewed-by: Manivannan Sadhasivam Signed-off-by: Palash Kambar --- drivers/ufs/core/ufshcd.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index 31950fc51a4c..fe5bc85c6870 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -5035,6 +5035,37 @@ void ufshcd_update_evt_hist(struct ufs_hba *hba, u32= id, u32 val) } EXPORT_SYMBOL_GPL(ufshcd_update_evt_hist); =20 +static int ufshcd_validate_link_params(struct ufs_hba *hba) +{ + int ret, val; + + ret =3D ufshcd_dme_get(hba, UIC_ARG_MIB(PA_CONNECTEDTXDATALANES), + &val); + if (ret) + return ret; + + if (val !=3D hba->lanes_per_direction) { + dev_err(hba->dev, "Tx lane mismatch [config,reported] [%d,%d]\n", + hba->lanes_per_direction, val); + ret =3D -ENOLINK; + return ret; + } + + ret =3D ufshcd_dme_get(hba, UIC_ARG_MIB(PA_CONNECTEDRXDATALANES), + &val); + if (ret) + return ret; + + if (val !=3D hba->lanes_per_direction) { + dev_err(hba->dev, "Rx lane mismatch [config,reported] [%d,%d]\n", + hba->lanes_per_direction, val); + ret =3D -ENOLINK; + return ret; + } + + return 0; +} + /** * ufshcd_link_startup - Initialize unipro link startup * @hba: per adapter instance @@ -5108,6 +5139,10 @@ static int ufshcd_link_startup(struct ufs_hba *hba) goto out; } =20 + ret =3D ufshcd_validate_link_params(hba); + if (ret) + goto out; + /* Include any host controller configuration via UIC commands */ ret =3D ufshcd_vops_link_startup_notify(hba, POST_CHANGE); if (ret) --=20 2.34.1 From nobody Wed Jun 17 05:14:06 2026 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 66D663C9EF1 for ; Thu, 23 Apr 2026 05:59:49 +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=1776923991; cv=none; b=FjU3kqylZqlGSQk226M8nkeu5hYFXNPp7Pt2LTTVsqZt7NxYq75EnMBxb1QYqqSATPUwF6ngzkpLUChZm9eD4D/8gnsq0wGql9twOGIsZ+AZb/8V3LyfsJIXDz8/H8bkr89SYMEDgIi7FOU/3bjpeWC8wICG2HbaU22CpKZj4N8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776923991; c=relaxed/simple; bh=8bFKWayiOD8BO35QIE783r7n0Cddq+lbSeqnN278Nuc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=IjZsDMkjQw2CKnox2QpbuHiKzyK7wFYivv/xfcgcyD8BnvxwqreJQ9uVgqz8bgM83TPqfLpMUmwAbiMCj59RG9D33u9Pd1jGmKF2FWAkNhZx+V3GsuSTuLIkl6PDG9xeXE3g5rDYpG1F2MvMlXBghZremz5fyedFBHDYKVQI2iA= 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=hlwPNmMF; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=N+wvPr4U; 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="hlwPNmMF"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="N+wvPr4U" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63N5TCUa2630068 for ; Thu, 23 Apr 2026 05:59:48 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=G/YQ77xR2B2 MXHan+TOEUNPPbNxu6iwvshjfvxmP7Bg=; b=hlwPNmMFCnpXU6+x4RXcvqp5M4D jqj0zosxJxuUtOfg4J3ORFSsXd6V6IgPFBwwIS/V9LBkhSRTHgcIF4+X8YMA277g xV3CvXYpOfY6FfptYZS0Niz1CANCejKkNViazA/WoexrFkFB4JSkNB492w9BZ4C6 IwUuJ8zQc6JDKxTz0OXbFtbx3reaEPuW3UEJYdNaVWm3D0Zos8JZvX+0U36LvGZB BAtdXejnAjG2wl2Bs5CS5ZVxOCUZ0E3rkBxO6jhGqTe1eRy74VCFizT2gSheIBkg rJ8Z+c1fxEdIKMGG8AhDNoTOq41WxuCqp+0D8yDJzToPXRlzCdGYIX01vmw== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dq35ra00k-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 23 Apr 2026 05:59:48 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-35daf3d3030so6698572a91.1 for ; Wed, 22 Apr 2026 22:59:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776923987; x=1777528787; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=G/YQ77xR2B2MXHan+TOEUNPPbNxu6iwvshjfvxmP7Bg=; b=N+wvPr4UIR8irG50Mssp4oVwvRuJJsP7xma0OP6/O7KEkAap8PjahGgev267Az4b/h zDr1z7gwEfOLpkjddsP15tyCKJ1pEwdK/rj5tXO2ZmpOwp9uQsSn5V1VYKsRT7SpmatY GYDws7pd+5ObxZly/v8M3Wo7MnM8e8+eYjboEQYYyt+RJO+iZIWj5Qe3X/zx1evnldhp cIaGs3I4ni87r9pQxIAy8Bpiz10Kmja2AJ3g5zpcvSOb0+6KE2ZQTqBOPkHGdgfdsCmz L8cMcOKhZ6hZQHwLllp5fb6cserIZCJfp0mrykcz79HPoIms2ViG2DlTARu5VqXSEVPK D7mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776923987; x=1777528787; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=G/YQ77xR2B2MXHan+TOEUNPPbNxu6iwvshjfvxmP7Bg=; b=HEc1RXLY/hxtATV7mHDLt+r/Mjxv0gRgI3+8myGCgbWDhc0RDIDXHvglvT3wckD+z5 pmNYfSDCQgNZ7TfDnktJ5pb6RcTYvhyipb/l7IU/Y6QaZuW7F1L+CZSYPXl3aQhERFSn Ga9jWFZnmCds1NyEnINOIE0GUwRB+VGPyrd06ggSayqEi8cavYyw+vIfoDKy2CtbQaCs TGDlKliTMO5vVgOQ/YTH/u+/RhTSDz1PTs18YoEJrCt7aOegyqYZHMNnGykCa72ajLOy IqkKKBmHkARcbulOTCiTR70lhU3cfI+UCguXXJNCauCG61xFEmaYt95uxVvUyxLI1CEq AkIw== X-Forwarded-Encrypted: i=1; AFNElJ9zkP3IevNxiizoQJMC9SsvRZ9slkqoy1H8BcNcDvCPvdq8cBsWwQlUR/+MW/n74LswmyvcEiv3n5EF0e4=@vger.kernel.org X-Gm-Message-State: AOJu0YzWZ3rA6sFlc/eNarB8wVm59uvYe0uwEcZavedJWecuhpkYg2Cj VCBajmysD4P/tc6BMf7Uim2LIymmUk4M1oJFmg12t1t5yiaw8rmyX3FpvdyEi2/cBNMOEGJGWiz nxfyU3jXg4pk2mkxY49o85XJ8F6DUG+leoplqa5kkfJr2+vsD5dqc3pzJh83iErHUjOg= X-Gm-Gg: AeBDievvLFQi79vUZ1kvtbHH56YqIE3eCM7Qhp6M6nV+70Qii7k+XxHoiG43n5tpHgB P+LqbAaM6DVRxBXsPx3hiO436QjeC7+C8/BphCa935X2YD6jtJDixqZ5t3JgI5t5reCLCrVOjtX 6BK0kq2BsotenUhjoOD/o96vRLVuxbejn9SEdZ8ZxjDNwnmqjBsmKSOadLvJ8Adn2769jvJtg0b NlVxadOArU/jRNJcHNMSs/pcpNaQASmNnl2mCPeVf5LRFVxi7ZHuSkjQmlj0dSI/MjC/1Hl70CM lw75Rypyk4+HYTobXOQwNpzKFW4OJEVcwNF2AowShVYPb/iWeLbDYCeUZbDyEE/wGEObGc3QO2A J9A1WjfbJ9ts9VUXC/YoYcLPzDE+AP0vSKe49jzSCSHCZ8dO3gDOpD+gNyWG/M4G3 X-Received: by 2002:a17:90b:33c7:b0:35e:577a:73a9 with SMTP id 98e67ed59e1d1-361404ae4e1mr27534177a91.26.1776923987311; Wed, 22 Apr 2026 22:59:47 -0700 (PDT) X-Received: by 2002:a17:90b:33c7:b0:35e:577a:73a9 with SMTP id 98e67ed59e1d1-361404ae4e1mr27534140a91.26.1776923986748; Wed, 22 Apr 2026 22:59:46 -0700 (PDT) Received: from hu-pkambar-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-361418c3944sm23461841a91.8.2026.04.22.22.59.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Apr 2026 22:59:46 -0700 (PDT) From: palash.kambar@oss.qualcomm.com To: mani@kernel.org, James.Bottomley@HansenPartnership.com, martin.petersen@oracle.com Cc: linux-arm-msm@vger.kernel.org, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, bvanassche@acm.org, shawn.lin@rock-chips.com, nitin.rawat@oss.qualcomm.com, Palash Kambar Subject: [PATCH V6 2/2] ufs: ufs-qcom: Enable Auto Hibern8 clock request support Date: Thu, 23 Apr 2026 11:29:14 +0530 Message-Id: <20260423055914.3566684-3-palash.kambar@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260423055914.3566684-1-palash.kambar@oss.qualcomm.com> References: <20260423055914.3566684-1-palash.kambar@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDIzMDA1MyBTYWx0ZWRfX1apmJ1gjdCIO eL+c3dkQZRJIbavwoF3xU8y7iK5WOiU9FTyhtQ6xTds6o1zI4e3eUu5D5e0worZDgQId2YAESjJ 0CCmLsa3PGwUzQSueRMNFqsqvm3ll1EjnWrUX2joj2jEqPDpZ1hSqLUud9haSnUp2N9vVhHsuYA 0JACqkd4hbNtZ5NWpalWFHFq9ffOpNPuDGWjKLd8uWR5Hp81tptguVK4YbnxnQ4LNrCoQ50rq10 +7mpnbCHUTZ65oBGoEFUD3jUS4mNASSeK98PZ+CkovzjtGaMfSPwtHjLWuUkU8qiN2bBA/bckUk by9qI3mcXqwH9//EIsTB1Q6EMSLd/0oCzsg2LrhfeBDi89WhsbaEW9q2Ip7WECH8OVRmvExCZlh XqJzQRRcYlX8H9gNuHX74LWqtuSmBh2XfrbHFP1DoMnHizkfSOBhsu37X2b9ilanv9R0hLDUkY8 OJd5n71nnqhJZl9L+bQ== X-Proofpoint-ORIG-GUID: Oszlqi22LHjuUp_YN_vI3l3mNqgnpX9u X-Proofpoint-GUID: Oszlqi22LHjuUp_YN_vI3l3mNqgnpX9u X-Authority-Analysis: v=2.4 cv=f5J4wuyM c=1 sm=1 tr=0 ts=69e9b554 cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=gce-7N_bzMkFAa6Kq10A:9 a=iS9zxrgQBfv6-_F4QbHw:22 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-04-23_01,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 phishscore=0 adultscore=0 malwarescore=0 spamscore=0 suspectscore=0 impostorscore=0 lowpriorityscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604230053 Content-Type: text/plain; charset="utf-8" From: Palash Kambar On platforms that support Auto Hibern8 (AH8), the UFS controller can autonomously de-assert clk_req signals to the Global Clock Controller when entering the Hibern8 state. This allows Global Clock Controller (GCC) to gate unused clocks, improving power efficiency. Enable the Clock Request feature by setting the UFS_HW_CLK_CTRL_EN bit in the UFS_AH8_CFG register, as recommended in the Hardware Programming Guidelines. Reviewed-by: Manivannan Sadhasivam Signed-off-by: Palash Kambar --- drivers/ufs/host/ufs-qcom.c | 10 ++++++++++ drivers/ufs/host/ufs-qcom.h | 11 +++++++++++ 2 files changed, 21 insertions(+) diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c index 8ebee0cc5313..ed4c531e1fb2 100644 --- a/drivers/ufs/host/ufs-qcom.c +++ b/drivers/ufs/host/ufs-qcom.c @@ -683,6 +683,13 @@ static int ufs_qcom_cfg_timers(struct ufs_hba *hba, bo= ol is_pre_scale_up, unsign return 0; } =20 +static void ufs_qcom_link_startup_post_change(struct ufs_hba *hba) +{ + if (ufshcd_is_auto_hibern8_supported(hba)) + ufshcd_rmwl(hba, UFS_HW_CLK_CTRL_EN, UFS_HW_CLK_CTRL_EN, + UFS_AH8_CFG); +} + static int ufs_qcom_link_startup_notify(struct ufs_hba *hba, enum ufs_notify_change_status status) { @@ -708,6 +715,9 @@ static int ufs_qcom_link_startup_notify(struct ufs_hba = *hba, */ err =3D ufshcd_disable_host_tx_lcc(hba); =20 + break; + case POST_CHANGE: + ufs_qcom_link_startup_post_change(hba); break; default: break; diff --git a/drivers/ufs/host/ufs-qcom.h b/drivers/ufs/host/ufs-qcom.h index 380d02333d38..f19def37c86f 100644 --- a/drivers/ufs/host/ufs-qcom.h +++ b/drivers/ufs/host/ufs-qcom.h @@ -228,6 +228,17 @@ enum { */ #define NUM_TX_R1W1 13 =20 +/* bit definitions for UFS_AH8_CFG register */ +#define CC_UFS_SYS_CLK_REQ_EN BIT(2) +#define CC_UFS_ICE_CORE_CLK_REQ_EN BIT(3) +#define CC_UFS_UNIPRO_CORE_CLK_REQ_EN BIT(4) +#define CC_UFS_AUXCLK_REQ_EN BIT(5) + +#define UFS_HW_CLK_CTRL_EN (CC_UFS_SYS_CLK_REQ_EN |\ + CC_UFS_ICE_CORE_CLK_REQ_EN |\ + CC_UFS_UNIPRO_CORE_CLK_REQ_EN |\ + CC_UFS_AUXCLK_REQ_EN) + static inline void ufs_qcom_get_controller_revision(struct ufs_hba *hba, u8 *major, u16 *minor, u16 *step) --=20 2.34.1