From nobody Sat Jun 20 09:28:37 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 5E3B62FFDD5 for ; Fri, 17 Apr 2026 04:56:26 +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=1776401787; cv=none; b=Xrd5ZA4M1821+NPuSmTH5Msu7YJXkJsTItG4flwcrbmU1+ncbbIZn7HAbWsqiMe65u8uz9iU8V0ya5zkiHI/LTDkfABL1iDPzAPYNq/B1th8A9ZU8Bxn+k+FZ5cSWdRBfX6a4Jv7Dprk6IIcfb/qb+la5uKVgUvwAk9OFXJoaVQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776401787; c=relaxed/simple; bh=OT5u2ONptORC5MouS3fuNPzcbostP9NpKv1/r7MwhjY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=t/6eqBjVUk7OmY2a6Y/ju0XSXQxSpGGcsxWpO7ujwgE0J/q/8EIzVlfkXB9AbWLNQx/dvTgB+eN5MfIkxjbv13I0CR+TEQfSvzWyr383NQHjYVkMiDsYaT9TDWeRjd0Wd0pEb/klBbrElkJa/CKr4hs3a6mvqetGDfTDv537UTM= 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=QZNYkR1Q; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Bu0eBjDT; 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="QZNYkR1Q"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Bu0eBjDT" 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 63H0fkcK2593549 for ; Fri, 17 Apr 2026 04:56:25 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=Ayxjj0kFxM6 lXABDb6ZrdOtAZi6U3ltyOfDuAQr5w3o=; b=QZNYkR1Qq83MTZ8CNzyFDbVFgOH rLVWrM6UPyljJ7GQpEyi55Bb1+RjnsePtYljuq9m3Fg9gEHWA/Zph8/zxIb5zVlY M+bAfybgVvYx+pREqRPbY+aMqfhN0I4zRSk6HM7HxhC3WYYWxwP27fsP73sCPsBE 70QOorH/kJrZNhkxvTBb+DnpzURYhE5Ni9j8mDxc6n2AUn9+KK4mfcBUNqKMbUkz Xs5IViPdCUsqz8KnBhkchAlU2+OrQ49nU35Z3N/hvpuSNUtBxgL2oPT3zcM8tw0X 1kDRvDGFbPZbFrX7FzTYS20ztvmbb4YtZuFl66YsOM65QhGzcAmgKOMcCKQ== 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 4djtuym4yp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 17 Apr 2026 04:56:25 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-35d9e67f6dcso829585a91.1 for ; Thu, 16 Apr 2026 21:56:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776401784; x=1777006584; 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=Ayxjj0kFxM6lXABDb6ZrdOtAZi6U3ltyOfDuAQr5w3o=; b=Bu0eBjDTLq+EI/dfzwu+P6N9JAFl1d0mD8r4kH4GXIkAr+KiEKg36z0MCcc/l6x2as UfoM3S/gTWWnZov0rWut9ngkSN6pD/2gTzkZSTlRLWTH6u1q4+fPApAizG4ROTEnc3a4 XTL+1V80p0xxaFZUY8Ijg9eJOJZgKvOh8w4vNs501gs6YOegPJwWfPqfDm61vRnxM1vs lCGIUC2db53yFLd/AufZirypih4fj600PI1ln/Kd+GObBo+3CCWPMr8Gxh+t/j8+dIJv CGgMX/wa8JqlC8TlogCYJHryE/j6Mf+P/nlXIp3cnJssMeXn4vEHRNz0RdPdAPPsqN7F 0xFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776401784; x=1777006584; 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=Ayxjj0kFxM6lXABDb6ZrdOtAZi6U3ltyOfDuAQr5w3o=; b=RiHSXzNKiRLdajA1eng0a0t/Dp4M04QPU3chmylLcI17ST6WRM0j+eqwS8xxbOqtcc ToquAGoImNlIAzFefv3cQ0t23yoHYJO+HZQCbBGRwHydzEfnQXwE2C29dbAS2lE2lp2r 4fx02xqZGfU7WdeST94Yva863yehggG08E0BAu2BtWeIn6G3BViAZeSkr7bcQOj8tl97 0dYJT5hxFMiCgI1vJd1Of1jYU+yuY2iwZBzbhmLqToG15bR/OPZmdNrsXAsIBcgqHNkZ 77fcgDlU9CBTTS8M/sj5Bzt6vFoqn4nvViBdc+1OEqXGxOjNzkM9F3BmlTiG6hBwwsmN c+UA== X-Forwarded-Encrypted: i=1; AFNElJ9rcYzNt7wTvQHVI1lHJko6tIXexH5jWLhn9FpoEfv5a+3gHToKZSsrwBV7QVCfqP7f9X6ewN4gbVGeER4=@vger.kernel.org X-Gm-Message-State: AOJu0Yx4gm0O/sKlx175i8hMZNvkTc5lffdgb/lTBpmrYn/IVMCDJjVl D+K/Hf1jSWZdUESHFUZ/B9Z7thWQlzGImj+lu1cJGX0GJyxkHfTR3r4JOO2mn6UVETqrcYabPsG aD/ytgsap8BnRHRo1hQSQwO7M1vVRgvhiJMwFhCWv9moZkCkFAeXukRjaL+FFS2ICNCU= X-Gm-Gg: AeBDieuR16L2UxjxEx4LJA7nAew5jtguaIBqsoPRCEdVmBdbda2bPBHKJXKJqrASsCf znGPtq7fQLwUzLqkj4fM4At+FmSnQVjRy38Vol5ZeZ1Z+HNRqFNda+NTWTS0ic9OdKgQVv/OKj+ JYJqLlkoTwNhB5oS65t3tG/TAB1PBgBWVPRi8ETNc+tjNdnZ1EyYdq3u/wG0oG+1TIVtQODetlL yDmlEyJualDdAft/7kYbF1iAJm83Esm1U7pcziuYOHrKYAvmFuMGYab68mVkllsanOYNVE2wDMj xjpysnbjVi1FnpICJQxVT6OesiR8pXw/M6DINqecWnXN63ldfOun3au1cOcu6/cm8UN4shtWTG2 SdEaHjeB9D+lzM54OkV2xWHoerzpNjY5mtE5KYY3yjNtcQP2c8xOXleYeLG2AAzum X-Received: by 2002:a17:903:2b0c:b0:2b0:41eb:165e with SMTP id d9443c01a7336-2b5fa009d46mr14057545ad.38.1776401784321; Thu, 16 Apr 2026 21:56:24 -0700 (PDT) X-Received: by 2002:a17:903:2b0c:b0:2b0:41eb:165e with SMTP id d9443c01a7336-2b5fa009d46mr14057125ad.38.1776401783760; Thu, 16 Apr 2026 21:56:23 -0700 (PDT) Received: from hu-pkambar-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b5fa9ff3a8sm5702115ad.12.2026.04.16.21.56.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 21:56:23 -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, nitin.rawat@oss.qualcomm.com, shawn.lin@rock-chips.com, Palash Kambar Subject: [PATCH v4 1/2] ufs: core: Configure only active lanes during link Date: Fri, 17 Apr 2026 10:26:01 +0530 Message-Id: <20260417045602.3042928-2-palash.kambar@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260417045602.3042928-1-palash.kambar@oss.qualcomm.com> References: <20260417045602.3042928-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: AW1haW4tMjYwNDE3MDA0NiBTYWx0ZWRfX6sogslwAZsrJ rC7HsN5IHb3twQZaRe94+cpfiMrj0nZNh6PWBnC3TVQiGN5+6gNza66HFAhzvtgSR1QJwBGCPot dTNbDNi+lBpTX0L2Q5qcNL+3vHgsSeLRxHblIs/XOi2a1K5lttC4xKsZIpUrKj9z07W8cze4slX t1S3R3wYxsAvfgxbJCQcT2y+7b+qrzwQK4e02l3dWc1o7DqjxwB6jAZS5u3aXWBj0U03yM9iGVM U4OZae9JqtJ0fG0rGgK51y1BcgW6CFsmmyoc0vAwOYcVFVoZUZXiJGQ5/uuHgESuHuq8UUZVeYK u5gYXX3HBcfPau3N3X44DGfwwMQSXQTc/grF5EiSFvCqu0d3a2CB/Y0endF1Zdxnys/gXMg1w3L P8+R9qkGmJyCCQBl+cdzJWsbgjpWbTyQxvhp68e3e9SlryWIXBLpG4FwCQFI3KfuZEHIjztyH5I tFtm0P71uPCJfdQRy1w== X-Proofpoint-ORIG-GUID: 6h7yein1itYBooGD8uTsM2s22DX-rWyD X-Authority-Analysis: v=2.4 cv=Ipgutr/g c=1 sm=1 tr=0 ts=69e1bd79 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=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=Z8YMyZzXpU5RQDwMThsA:9 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-GUID: 6h7yein1itYBooGD8uTsM2s22DX-rWyD 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-16_04,2026-04-16_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 clxscore=1015 impostorscore=0 lowpriorityscore=0 adultscore=0 malwarescore=0 phishscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604170046 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. Signed-off-by: Palash Kambar Reviewed-by: Bart Van Assche Reviewed-by: Manivannan Sadhasivam Reviewed-by: Shawn Lin --- drivers/ufs/core/ufshcd.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index 31950fc51a4c..10f8d2b552be 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -5035,6 +5035,40 @@ 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) + goto out; + + 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; + goto out; + } + + ret =3D ufshcd_dme_get(hba, UIC_ARG_MIB(PA_CONNECTEDRXDATALANES), + &val); + if (ret) + goto out; + + 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; + goto out; + } + +return 0; + +out: + return ret; +} + /** * ufshcd_link_startup - Initialize unipro link startup * @hba: per adapter instance @@ -5108,6 +5142,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 Sat Jun 20 09:28:37 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 C34562C86D for ; Fri, 17 Apr 2026 04:56:31 +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=1776401793; cv=none; b=KO1WDSmoGFH18OMOPHuXEt+pD1HPOVKceVJRcxOoPBZawv11OYt8Tl7wJdtsBDtXzddpv4DYlIUELPa4vIrAgvG4tKzifJWQs928CKGdJWudQknXCFDoFqLASzas0w9ensM2AVuIJvk/8FwpM6sEVfH+tzPNhv32EaE8B8oiZSE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776401793; c=relaxed/simple; bh=93ZtNV79vuouAa8eL2edT1/Lmp8ZOeyQQhyPpBYjjwU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=iVsNbco7Pd9SlOz+/qzwDmsvCRu6l0Jvx1dvYC0u8UgfhPRgdmZflpcS1iubEFxVNijXPI00i1AzJsE2Jvw8oP+Pduz+50hrTh7Aiq/1m5NNFXKtnmSnguJVesEzmYmdML6eQVJWXxDLkQw7wlMIVtBrtuPRHfWXvG47uciw+IQ= 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=LYKquZT6; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=IRTg6+dN; 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="LYKquZT6"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="IRTg6+dN" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63H19HFJ670413 for ; Fri, 17 Apr 2026 04:56:30 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=9koPVHXl3Cu mpziFxyBQPxdRYBEiMaz/dETZ0RnYqIU=; b=LYKquZT6DgRnbyReSSpS9zk9Avr 4sIoljkK9dd0bGDBiP14IWfPXR4Igk0FB1+i1WHBnNLBG3VvDR8WzdLI5Ujv+KoQ RrOG0aCU8VkdMZfeTTrulS6IzZkAvbmQ2i89GueUxq/OjJCxfJB/7IhtiwqPTrN8 yxTd8kEnoUVoD0erkFLv1fWM3qr5RieJPAV4r2PMHZQz7IbtI+M489d/kEKg/xJ6 0/M5wqn5zb0sSj0ITXER+upZyS9LllFHipXr9BVBLXBSeznWwNxOxJG27VKRFPLV CWCqS7+QuOHHAQtM/FsESKcEaW6TRQV05jUSJhHIBAyM7pGv70JrUCe/2kg== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dkaxcrht3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 17 Apr 2026 04:56:30 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2b458add85aso3178375ad.2 for ; Thu, 16 Apr 2026 21:56:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776401790; x=1777006590; 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=9koPVHXl3CumpziFxyBQPxdRYBEiMaz/dETZ0RnYqIU=; b=IRTg6+dNtgaE1yg7GMK7Z9Prt1ZnUi61uAqaYJy7RtLhlfQTmtfbwkcNxlEjS0x85p PEQvT7nTrCDrSBFq3bu5/X+sb0j4chR6ZeIgBtt2T2y08HNQ6rheSu7DSc6ogREe8F+4 6YUA2eeTraTWxDsiT3LDF+SW5HJWRA4gn2k9Ud3CWwdzH3LcPwLLa/hT4arGGoYrc1Pt odPbkS+1w1qVG/tqYUQfltJF61RuwacGN26bB2gKbQxHXn6IIX9qpL8OfnUP6oZKya5O B9fBr4NrbcxVcHR6xIIkxIzr1+CXesC+yPMWwl2PSgfPJN/4cjFLH3x64UmYkS9C/r9x hEiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776401790; x=1777006590; 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=9koPVHXl3CumpziFxyBQPxdRYBEiMaz/dETZ0RnYqIU=; b=mxrUUeY6sWblwki6tpQkvMg5yYyMG5sDYbDK9wpbVcaWMx+ynQ+SfUEIJsOXTUqWQA lmnED0ylh79ZivFNSZXtjyqq/SDwwaBuR0ypl8khWBK8O6PdQsijyrSXFpCXb153ROO3 RvPWBAN3lxBcyp6UqBjTxzBpuImxqBolyXfykTUCkNA6xJ4ZgVQ69Yx/1yC6hapHtAQt dRTLJLrugdPAKYINI0ZiKU9SgBVviwMePu/vmPzk+NNeVVCgac8F25FlO2yAmb58+fjP +Jv/uHKefHdwndTcRLrbzf5qPrZUPo0BMNRJ7h5ZHS68H1bK8QKt1exnq0UmoCzVMvjY OsJg== X-Forwarded-Encrypted: i=1; AFNElJ9jYhKa1CoTDNDZTRzw1KZMghTTWA4cBOEADjiab2+32PzHklXuMW9RniI4IrHLna/g6P9BWlnT2sLnHuA=@vger.kernel.org X-Gm-Message-State: AOJu0YyfemyQsyarHH1YtfarNggO7zML9v0kprAAzMms9hrAOXWCz7x8 3hscWdHBBxruIK7V1qIBuSv0fAzJv1BrEqCW8JHi3Tk4JPgznYR5TZBGMybOGZeZPvX2HT1PmGK USX4J/PhZ0jiT5DYeGByC/kyPSCPecqdjzeV3IrI3VraY7ZjZJjksDB9kOj3t651VGps= X-Gm-Gg: AeBDiesgO6tUelfCPGjiSFRzi36U5FLNO0dHezi0eMTROtqmHMBn64jumi6LpWDGR7K XPsikV7+2XEcbzNEOm9H3gRNvQ4sB57iBQhnij7u8csn7YJG7WtMeA9Hd3y9MzfgRSA3xoqhVB8 liG3TIt++VTKHo4YfGgwZMpwZczya/i1o15A8pqS8N1rIDKffc1OslHOnLtoathFNFd+a2FiUvR +j4FOlZaYaVpCIJ5Bl/PsxJIA0yUIymUogWPCFYSp1uKGWvYXwtlQDLLqd2dpUVcVADKhRq70CX DrII5XBwN2HZcuPBHU4WkqLbBSRENCtawcZsGys67VnIxmu2nKc604Rk7EWKldN6gZnpMbtA/v8 6vyfywhxvZHyhWUob6Le0UTbVTafWtEt+0xy7lW1CPV8Uz4IrxEyMcFRG3Sz8lrEa X-Received: by 2002:a17:903:11ce:b0:2b4:5ff5:e51f with SMTP id d9443c01a7336-2b5f9f51dfemr15020065ad.36.1776401789767; Thu, 16 Apr 2026 21:56:29 -0700 (PDT) X-Received: by 2002:a17:903:11ce:b0:2b4:5ff5:e51f with SMTP id d9443c01a7336-2b5f9f51dfemr15019765ad.36.1776401789186; Thu, 16 Apr 2026 21:56:29 -0700 (PDT) Received: from hu-pkambar-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b5fa9ff3a8sm5702115ad.12.2026.04.16.21.56.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 21:56:28 -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, nitin.rawat@oss.qualcomm.com, shawn.lin@rock-chips.com, Palash Kambar Subject: [PATCH v4 2/2] ufs: ufs-qcom: Enable Auto Hibern8 clock request support Date: Fri, 17 Apr 2026 10:26:02 +0530 Message-Id: <20260417045602.3042928-3-palash.kambar@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260417045602.3042928-1-palash.kambar@oss.qualcomm.com> References: <20260417045602.3042928-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=JcqMa0KV c=1 sm=1 tr=0 ts=69e1bd7e cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=gce-7N_bzMkFAa6Kq10A:9 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDE3MDA0NiBTYWx0ZWRfX5T+0vK0vCITu mG/zQNlpjAOgSyU8fKJoyXBDQ3iCRHyNZnazOTfzmp8ytHia8ga5g53pS8d30czGBjjL22rdaxI NVTdpV0wdeyi8WYpqJDWs9qSiUt5s2B7RPT/U6Yz6aJ1sNdD++JjiElharGh68vjIrlGZHfFxVH BRkF/cpAuYOUIuvuORvhuj4KgXFEcAHbunfuMSCGUK9xCVTQo6hNK2ZMgvaT5/e3eoXpVmh8S5N aSJZrfXy0GKACbj1XwPhuY8EPSKSUryf2SZYr9Yqson1LS8ux91/uBzZDNtwIn/dzOHmKJLmPR8 Rp0tuh0+ADvtd9AlWh3V4erGifv1u9kcoaAA/vqZ8wucXUlk/mD+V97F1JnatTWfFx1Nv0a8ueE tWwUd3JeTpMEHVk1oY7Q78nsPeWM9wIbF/5ySbg1XpUttHkzORfsptFbwU4Q19K4DTGoFolbaLk vUf5YujPPdeR8n1ai9Q== X-Proofpoint-GUID: mfkHC7mCdDG3cpXRM4WbqN6Q7aoYH6y8 X-Proofpoint-ORIG-GUID: mfkHC7mCdDG3cpXRM4WbqN6Q7aoYH6y8 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-16_04,2026-04-16_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 adultscore=0 clxscore=1015 malwarescore=0 phishscore=0 suspectscore=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604170046 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. Signed-off-by: Palash Kambar Reviewed-by: Manivannan Sadhasivam --- 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