From nobody Wed Jun 10 21:39:58 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 13C5A397E64 for ; Thu, 23 Apr 2026 10:20:41 +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=1776939644; cv=none; b=fy+TM/IH62pKR4fUH1pAcL4YZ8E3CtoaAW3jfJsbO+6m0AHo98S9yyqJBAk/+LO8gZCF7f5QjqyjwtT5p288f651ix/5Os6TAwj8f75JJwyCY9e0sTqKJa8+UhH/M5NL5zIt/QiTaZgk26jtR4zC7xR11vUToZ58WLJ2X+1McEI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776939644; c=relaxed/simple; bh=CQVFJ4wMQF0hgf5u2ec7VO1+/3jUN5TRf8lbubOO8vE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=pzA6SVoCBVYcISA792CawmdutzvY0HGFvQwa4SBi60PuyQDsioExjZv55eEWg7S8xw2MvgUkv/PmKdklIuPKTaezTJsLKoFykscOjkd8yFj2QjuB1m+yRYZYjunxTPozyDWEzKSMMZ1x2S7TtgpJ3vkY7Z9S1gYLfLDRYIy1F0E= 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=cSH2+rP8; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=bIsWI9UH; 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="cSH2+rP8"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="bIsWI9UH" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63N8uLX0987837 for ; Thu, 23 Apr 2026 10:20:41 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=K2aCxihMjpa uQgN1WTh46/Nuz1bB7Gm7H4WECMbk68w=; b=cSH2+rP8CtzI+Nu2o7nGcTYa5W4 YLRhl9mtZ39Q6SONJq4hZPaj3obAxR1Rv8yNahrFulx0V59fBfGu6709kmwicPc7 NSBMWVx1Ikeu5yzO7IUw18yrXQgHeMzScLXua+K1w250mYFBW36VfCrgxkRl0bkm kN+QzZSkAYZZO0lzlnuHITWal2n8g3o742EToQhs9ii5zIqE8XCGtfa25ifhLeEd wgHkPEpjIsseOHVWGRhLExZkCK19y+ru23uJtheMivuIseWcsKRksqGPVLB7RcYl 3PGJIKiM/5BdT9JZDG6m8Uouc8l4vUtxPKfzZDTGz1AQ9p3Fyw9DOpYkdWg== Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dq16q3f5t-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 23 Apr 2026 10:20:40 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-35fbaada2f3so11969821a91.0 for ; Thu, 23 Apr 2026 03:20:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776939640; x=1777544440; 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=K2aCxihMjpauQgN1WTh46/Nuz1bB7Gm7H4WECMbk68w=; b=bIsWI9UHknfM2IOfKRbsYXL770SpH1MBKMqasnZ7Qtj+lDvgc27COWzhAMNJmJ8vgP 5f/vJ3FRTFcQ72DjqWvWmfyulcuQ45FzXMIlLTt9RgKIZan396ypysk4G06+7zGbPLOX sdPIXmpZwajI8ywx24YQvDUm+7wE9VD+6rzV4y3EOQrCrzlF3tgCstmlE1leOC2yq295 lycRCoECMyQb0Cl0qbYdACuXdA7ssRkCVdepnB1T2iMTCZikeMFbt+/HPZiO85G93Xct kkWduq+GysKc7SCYJBsSIu2KUSPqnJKqXY+rGmyxKidnk8QcX7Qv2gYWOsW9wlmbTmpe Pqjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776939640; x=1777544440; 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=K2aCxihMjpauQgN1WTh46/Nuz1bB7Gm7H4WECMbk68w=; b=VpKfC1sWp8wxvYaqM7IOl9471dyboSZn6Db09ErcBULVsXBe0XAJTUmka2ZOkJwsTl tnOHPwYLrIx0Mfl3PzHR+iK9+q4eK9hPtihpVcUQz37PjWJ8ogQ0U1cpNpGnucMPViN8 9o1degcRR85Y+R+hXVqhi7WUGBNyGwMelZzx6MkOqDd0YYd90Ue7aZjmqqUNuBckDNKf 8oVv9JIEluWCq3j6aGwLUxspzL27YHUNNWsoUMx3BgeSanv7EcMhcG5Oe8X4BDl6AK8Z xzE0EevgwX8HwsnBYSbsHImG2JLBmlZPsRWcTIEfDZeyF/i//ONV8jka4TjKzNt3GssF jPTw== X-Forwarded-Encrypted: i=1; AFNElJ82pnvqUBLAJxUltl6jbFWwlnfYSy63lTp1NMYqss9OtQN9iFBqfVvCtxatmifjVFg2nFwL2/HfdZm8S+Y=@vger.kernel.org X-Gm-Message-State: AOJu0YzxLywcYfLh0yQ7O+C/DKrlq3UUlkRdEm5KUKruYcy1wx0Sm2R3 Vs9bA+LXtcg57bCuBuxvN3zmf5Ws2AdUvGg52oCnyhHV5SYjHjqWJGyz4DfnIVKWSRHSzVeZbDY AIL073oyKBNXyJSBTIJ9seVxyBsoUU63dZDSHnpzwSEiWn3QUapAh4P/qPbuullSaNmM= X-Gm-Gg: AeBDievb3cv9nGEBK4ha4pgnEocWMSW1iu1rFIhyG42EdYvSHRfOhy1UVbUiWXkObdl GrUQ6cVOKxjRHceDpMT6tnfhWhHNo2jDHhhUqNkDZsiTVlookWTwgJAZwwY2N+6n5N/RYL1I0iw bxBwO1gveOaWrfL8ejUPnBpjFU5RtGNcqN/ydlLhqcIxOTWNa10rVx4xUwciu5jebhraX3qVo6F kS1oFMoty4HJVFDdrwUEJGg5LTRs8dy6/crOCcDhPVkDcCT1Q/L4ZoP0EkwjWMpDxRjbkFizCGB PIfTRbmQddsno4NQN3LnlVFD+WvhY26mrt4K7kE69qDpOJhfjkWJBG+oZ2UcZzvYfnzq89t6kQY c/7qU6v8bhxq6wBaNIdyvQSTTsEHe0pz7adZhSpAXBO9s/yMwNEtd357maW8vTGXN X-Received: by 2002:a17:90b:5203:b0:35f:b9ea:8f9f with SMTP id 98e67ed59e1d1-36140464842mr23785775a91.16.1776939639920; Thu, 23 Apr 2026 03:20:39 -0700 (PDT) X-Received: by 2002:a17:90b:5203:b0:35f:b9ea:8f9f with SMTP id 98e67ed59e1d1-36140464842mr23785738a91.16.1776939639432; Thu, 23 Apr 2026 03:20:39 -0700 (PDT) Received: from hu-pkambar-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c7976f92183sm13944461a12.3.2026.04.23.03.20.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Apr 2026 03:20:38 -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 V7 1/2] ufs: core: Configure only active lanes during link Date: Thu, 23 Apr 2026 15:50:22 +0530 Message-Id: <20260423102023.3779489-2-palash.kambar@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260423102023.3779489-1-palash.kambar@oss.qualcomm.com> References: <20260423102023.3779489-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-Authority-Analysis: v=2.4 cv=KPNqylFo c=1 sm=1 tr=0 ts=69e9f279 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=N54-gffFAAAA:8 a=s8YR1HE3AAAA:8 a=VwQbUJbxAAAA:8 a=Z8YMyZzXpU5RQDwMThsA:9 a=mQ_c8vxmzFEMiUWkPHU9:22 a=jGH_LyMDp9YhSvY-UuyI:22 X-Proofpoint-GUID: EF7qbhvSyYqGTgjY7TVoPtZLkkJYuE1i X-Proofpoint-ORIG-GUID: EF7qbhvSyYqGTgjY7TVoPtZLkkJYuE1i X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDIzMDEwMSBTYWx0ZWRfX/xV4ozQCyDgk nr543pq/KtbRhRzOQ5Itdns+y7JJSpuvEba1LtKMO9IrQcGjmH3xIjyjitiLR7nTPVmDoY0HDq2 nLXyRAqfo3XoJgdXMhJV9LWvVQivVjdLoBFK12w50rRhqMZDLbMymWbIdRoZmJISG1QivsPMPSN YqT6aOVGc00aY/SL477xLRXScVkK0iNiGAHKffzJwAA4cmyDr8cmXi9AbUwzKcQ/nCrAEzGfUp3 f3ZhceuauOj577QKOIEtzi5TnhorBlK8lnsySQhy8yssPaOhCeMW1FtMidfwTVBSW0OjPzmkAqx p3mfoL35TlzCRIAlsiZ9ny96+KVOgI1so34aHX362x7gK35eSTwRMZrd1HNLIg941iifwTB5s6H v6O6WuCjIohHWHPtzrrPK/ZwPA5GsEpDlRvelDWu6ki3jU9XlMK/xqdcdMmhSYY33VhPMItkjou TggdEKL1fHaCMNpP3fQ== 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_02,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 malwarescore=0 bulkscore=0 priorityscore=1501 suspectscore=0 spamscore=0 adultscore=0 phishscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604230101 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 | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index 31950fc51a4c..81a71616230a 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -5035,6 +5035,35 @@ 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); + return -ENOLINK; + } + + 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); + return -ENOLINK; + } + + return 0; +} + /** * ufshcd_link_startup - Initialize unipro link startup * @hba: per adapter instance @@ -5108,6 +5137,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 10 21:39:58 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 A3AE53E3DB7 for ; Thu, 23 Apr 2026 10:20:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776939649; cv=none; b=MWvueA5+lvQNNIzNBrcK0ufAnYppYppK2Phvvx8Ed/AgwmnrYacCAQnJrgtaAgnHQE2GDo13a/lh1mGQIs7eoeiDq9+ykpXEU/XCrwxIuceapZm0peKs0g6uJ2Duc9fatDEDH7cjZB2bJKOZ2rD7PKxh8mlbMqK55dwIy51P+gg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776939649; c=relaxed/simple; bh=8bFKWayiOD8BO35QIE783r7n0Cddq+lbSeqnN278Nuc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=sGKwczAdwmlPW278PedzcGnZS7iQusmIYGyNlCBf1cmc85b1NC+BLEzf9z/fn80hr/HC5xGHUdMJTzz5zxanLRwWwig6jGcpWz6yxVVzh4wknWDKKXSuq4pMCYd/pN/Qrcy+Y9rUUumwcgaaat+dwLJAoW4PsNp1wG6y+1/Uvnw= 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=Jd6If4sk; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Kbz3+8sX; arc=none smtp.client-ip=205.220.168.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="Jd6If4sk"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Kbz3+8sX" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63N8uJUE3413388 for ; Thu, 23 Apr 2026 10:20:47 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=Jd6If4skLJKxMkzvI3cifZfjM6c su9JryZCBXInEQPD5Mffcf3CDVVUHAWPkzuUEte5jVkm6ixj5htq5wWBbxUq6CJV 2ZNabBimSgPwmNbNEtX3bj3QuHsl6q0ZcXoyOgbPf8MgNuqi9nOklTAxycbPByYy GdeW+8MGLhWWGBPBsDZjg8les6ArA4FUFHkiJZ484gRYwRXS5YgMJWH+gohSJOSZ xCOU+L0XXjQN/iCOYYSeOR7IIRWMWiz99R3Ipx5jZDDzkhMtV/WZlu102E6+BnhW x/2VvZbzy+IIC2++TeIfmmDyBLpB3z/5kqRj8t2KZ3uL7TIkJ2S8hr2+JaA== Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dq1h6bdpw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 23 Apr 2026 10:20:46 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-35641c14663so7886763a91.2 for ; Thu, 23 Apr 2026 03:20:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776939646; x=1777544446; 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=Kbz3+8sXMps061oJyIyrmBFSQ2HcV4VYPTXqhDZEEF4EOgbeU5BJpK5cqhTNIK4400 kRQCH/z8j2iGn/h/XIcKUpdwu1a1ZrqOGO+6o1NAluHfGLPSGMDQRWYKFr61FNt+ewG3 EBFOHtKHiLTP6Ip9z7lg2JpKeJxB7XJbZs1I1ngN67myFGeQOlAspBvWx6DqI89upgU9 FAR2X+62Og58KJWxSzLQBmYvlpSuqYfwwD8GTGsaeWca0pPEhQMf9o5E6Y5EcQf38R8Y cjktopLDa3+s8cdpmOETJ2eXDfgOaV+c8lqch5/jxCWTsYZ8fxSh0u3OfA+W2BqFMVoV sqHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776939646; x=1777544446; 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=PUcQRxcEll348DZQ5O5bpGA4ovFYuEGt9tFAZuWtQ5FTmRdjzeWFyEcCnOFg5Pri05 XKGBePooONGnBJpjoqZC3YZxuBUFawKT/rM3jFkXWfcxuYD1Lr0Jod5jn9QeMJH4u4+b nAf42USpIJ4HamDzPGhRmnJ8B0xxC6Jq/38nzozTznJJ0WSq9BCrqqZlSf5VBT+33X1s 6+fwewmd/bA255KIocbVfWqQI3tudcE/XK53f6AGIK4yIGLfsvNMBvNN+dHuXWafPM8X 9MNTBwNx9g1gVkOxMxWEYe2D8n7hGyymGWhEKlLY/pjH1egJX1YY2khgq1Gxj89jvPUC 4+Ig== X-Forwarded-Encrypted: i=1; AFNElJ919FwczuUC3LTNL5ayedDc3s803fXpT/VEKLso0190uQ9X1zyvhh8z36JlqZU5vU5MK+Wk8xqtSPXHfVw=@vger.kernel.org X-Gm-Message-State: AOJu0YznX3t78LeYh/I9v/U3VCLn0YPScWe3kUgSIcxosnmrUD5U9aZ9 NPP+QJNcF36FYEdwcNZMEOEMa5kjtNb2qNu4CJdRnDnFPln4M1PVKbn7dm21UKQDhqg/EvFGbFr ZpxftlbNde0CVBJ8VqWrmpBbSbVaF5J4z4AteoQXfXRR47mvGITS3hlwkQOMOVBsrvYU= X-Gm-Gg: AeBDiesGMHMBtoKUSwAWDENep6yEpSVVvXZc74XdJtfVI/lalDkqLPY/12xtKxJwql5 Q0gTf1Oa8VIm24Pjz3jwoJerUYdHuMRt4eb43ki9HC+v7Z2xjzqBSMlBkCBVuhf6He5lNmkgbSP 8GmTRqmJDDKBNVKw9fi/ZSCLQfa2HCMvlewKyqn4Oo8nm1WVERnlmH4ajzoeqCJp6FNLMmx6ni4 Aqx7XanFlLIY0gBl5pWHm8nUirxZ7R1yXIjrV1Jne2sP19PnMAfxnNQPf1XjWK1+NbzXgwZQBJn MF4BOvxbbnJ3+1mQl36Dxb7IfDNycmTF9Io5vGuIUJcmc/a9CGeuFYXztWFfKbjujYd4od84+JE 4N3Preu6/ypaIqM2hYM9Nuy3t6FQXoWJiA/6/38GabwsISZrlh48tAC+uyPrPS1k+ X-Received: by 2002:a05:6a20:6a13:b0:39f:a42:9243 with SMTP id adf61e73a8af0-3a08d67e277mr31070882637.3.1776939646086; Thu, 23 Apr 2026 03:20:46 -0700 (PDT) X-Received: by 2002:a05:6a20:6a13:b0:39f:a42:9243 with SMTP id adf61e73a8af0-3a08d67e277mr31070854637.3.1776939645617; Thu, 23 Apr 2026 03:20:45 -0700 (PDT) Received: from hu-pkambar-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c7976f92183sm13944461a12.3.2026.04.23.03.20.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Apr 2026 03:20:44 -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 V7 2/2] ufs: ufs-qcom: Enable Auto Hibern8 clock request support Date: Thu, 23 Apr 2026 15:50:23 +0530 Message-Id: <20260423102023.3779489-3-palash.kambar@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260423102023.3779489-1-palash.kambar@oss.qualcomm.com> References: <20260423102023.3779489-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-Authority-Analysis: v=2.4 cv=f4Z4wuyM c=1 sm=1 tr=0 ts=69e9f27e cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=gce-7N_bzMkFAa6Kq10A:9 a=mQ_c8vxmzFEMiUWkPHU9:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDIzMDEwMiBTYWx0ZWRfX3UTrc2NyN3U/ d2fsjFSxYkNYtvI/LaQ6VXuYvnxd/su7+roN2LgBXbiIxj5Ln/4S/5lSg3jC9VaZS7kFsIq1JBo hGLntfL5FPUrJwXDOJO7hH6J+F+sVwD9VLqd2ng9zH+D+Ga/dausXz7aPPW6lpFkk0PyjokM9tg MboVc/vI1Pq8oUYi2T30SNkQiO0zFuLkpWNDA9ckuUG+pTOaaOyM38czwH9xqqLuHXRvLZZEYqx 3sN0Ytg3Xo4sQpXVOyRMpNf15HuRW1GC9eS6jNUMDRufZeVDgoDlfPAUglMr1LR7mQ/LvYEd1QD oi5LWLGF7Xo9+yxqsv50KKzsMc0WmlVS1r62NeJae59ZhbIa4sFlixt0TgRsmUnzibj2MCa5XOq cmJERH4yHkELS6sZon3LEioDN3AwMp0MH/eRvZAP3uwzf7F72akctwmGm4IctL+vdhcqmTKVe8l DqKh+R6nsgqD9RTtoyw== X-Proofpoint-GUID: LbQicEzJLvcQntY00fumCarEBiXF-dvI X-Proofpoint-ORIG-GUID: LbQicEzJLvcQntY00fumCarEBiXF-dvI 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_02,2026-04-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 phishscore=0 bulkscore=0 malwarescore=0 clxscore=1015 spamscore=0 suspectscore=0 adultscore=0 priorityscore=1501 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604230102 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 Reviewed-by: Bart Van Assche --- 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