From nobody Mon Jun 15 22:03:50 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 940BB3C3452 for ; Tue, 14 Apr 2026 09:31:55 +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=1776159116; cv=none; b=uj27BUTmnzHlnuH38s9qtheDo3Y5wBgzUc62YT6XqNVyJPeU5Kw280LBQ0dOuMzfXd/EGfacaF4FMxIxHpGls4/SyJXq5yDXcDUw+vuriw/sxo1CI3n+ucPiyf5+8Q/nz4cK4ywuFRj5XoYFvg3uG4drnA9XcuRSKJ29g6cTgcw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776159116; c=relaxed/simple; bh=rz5+GoubMhAQGVFxb80Ed4CW4c9+EipbDJvn3lW9Fcc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=sJuEwkPwq6I1UNnWiywszvMitz9SmhV8bgcRvRZ6b0yLNMzm0X27vL7IjVyrSewdX6DQ8H3yrPYm2g1GGZDIE9+yjvsy6QqCIosbQdqOVQ03hd7Qk6wn/96j6R1ci/Ajtasfvs1+lPaeirUr9eq5Aytsllm4ny0sbCSpeDBKgjE= 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=XXPBsaxs; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=kC7Nmjg3; 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="XXPBsaxs"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="kC7Nmjg3" 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 63E6XeXR281661 for ; Tue, 14 Apr 2026 09:31:54 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=IFe+vV5UrZO 2TbK2XUaK/lXdSgZTCas250r6F207btA=; b=XXPBsaxs4wzSeq+zdrYABNNlQdV 9wrIyDTi2xaD/ATnjdaVLK+JRnElu9k0I+f8e7c3TgBUrEuajwpI3+WNq1Ruzcqa 8PdVC2tCdb4s3TP67gHpzsMJEEhfV5qtwhuxMxRpORWY3d5YcF97qG5CPABnZsVu GihQIWXF6p9OrJWn1/X26OQZ8zKQBOHzttHZ9cN/YATpIPaDkioUVP2enT7YUBD3 AUr+fS9kdR93soJ5ta2eokMBYcevCZmceBuWM16yzTgJp57jH0saIDGvXjalCIy9 VmclvPF1hoagrA3kVOrtsjSz9/aJfZvxOvYTvU6a/fqszRusN7KIDclLPFQ== Received: from mail-pf1-f200.google.com (mail-pf1-f200.google.com [209.85.210.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dh86vj335-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 14 Apr 2026 09:31:54 +0000 (GMT) Received: by mail-pf1-f200.google.com with SMTP id d2e1a72fcca58-82f0e12d375so2207524b3a.1 for ; Tue, 14 Apr 2026 02:31:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776159114; x=1776763914; 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=IFe+vV5UrZO2TbK2XUaK/lXdSgZTCas250r6F207btA=; b=kC7Nmjg3GVSdpZqLpOHmuEvruyj2UzqKbem9Z+nwLIdACEIwNF6N/Z4xi4p1JULyrE woiOVZO1EG+yuketehwDIHxojOitQh+B2QBxv0RrpQosSjKhC1ZU/zPa7le0JanwLhPv 7bZrYxkkgwGai+sh0N4VaQOnw1YCtgAPswuHvNPIjcthkDmbnZbo6R6Zvl35moYG80Ag i+c1LxJKauAvaCDmkcaqmYgKUrSvkaDo1+0LWggnLjDyJ1Z673d0/rGVegHrVGvG9eNo U0xCHQuCEV0KKpND80HGBuMK3kl2XcySa3PbHdVpWcOhREMRlf6AXGtCf2HpqeHV4hma i/6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776159114; x=1776763914; 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=IFe+vV5UrZO2TbK2XUaK/lXdSgZTCas250r6F207btA=; b=Ge4NgChzQXjb1v2tk2klvclFdX0+QFIoe1DVTVDMr50XKwe1KA0ySveFrcQs3HTAHU poOreIDwoQZdu4xGt2rqh8OP1LPZX9EcOdRh9NMCY/BXRZbcLi8HVWnVuUXytcXM0mds 2irqSgGkBAMkFoSvN96+3otd3Sb1wIa3BReR/fJjSrt9W/MRbrTYwfeWcAgB3YZ2P4j2 SE8EJPkWCEEoGYz8Z2Yt3JhY7yiMS/opn58fWtAyY1QEXExQfidA0z06DgQ1jbJQThkE WoslvBnKaRVcAinm/HCU7D3pFEXxomZt4o4QQCaH/wgL+tPkjVhum04UxlRHqG29HJtl m4Yw== X-Forwarded-Encrypted: i=1; AFNElJ/d4YC17M0VwniUnZviorNLS5Y9pDx6XU5IKtEwhtd97Zekd4pWpxyt4VaeZL62VUzeYgyI9LbB72vCXCU=@vger.kernel.org X-Gm-Message-State: AOJu0Yx2/J40lXcFxX6ORL1/jioGRWlkw8ngkRnjd0/DEwG75A7ceOip 3T2f+W0gBUZz897z7AGF2mjSDDOnz6y4fzJGZAmziEyjMxF8OBa0UH+iaCPG+Orun4I5PcWnEu5 /15TsTH4/J1RqRKlcWCueM57x4FnOklqQGb1LqLv8oBV6TgtwlAdnKHdwFbunR3RcsVY= X-Gm-Gg: AeBDies94wXfbtfzAcji6VGwihvavWs29FTz+Edd0rOB2dwxBug3Ucpm1nAzM0V55Vu 5p9LL8hws1pQZo+hFvze9U23l4M+WE8G+poczlMhQ07WcCvY4WoeMoyemReAstfZV6SqKAZuMwL xUQUh0b8JTgBqSdZ+MNwpde0RHOejU2QwjNlahMa0J8evcP/tDpZf/RAhrElRWlgFOORHxXxCsD ftJsyAfDB0DPry2ekykNhTbidRskTW0AhZJW7Vh7EM1nSUcohwCYxuUQOCE41HBH8uVRyMAKpyD KHolcmJGXVo1DqIP9+EoRdVWaT4kCfLTMyTLOY0XtkFlU6PhkjycGJyn/b3kGhNQZE6mbS2v9eg AyDjigofGmrwPl/GcsSJM1W7lrPVUQ2BhsNJEVCUICuxut/57v6WBcA== X-Received: by 2002:a05:6a00:12dd:b0:82c:215d:5e9d with SMTP id d2e1a72fcca58-82f0c2f73a5mr17278349b3a.32.1776159113551; Tue, 14 Apr 2026 02:31:53 -0700 (PDT) X-Received: by 2002:a05:6a00:12dd:b0:82c:215d:5e9d with SMTP id d2e1a72fcca58-82f0c2f73a5mr17278315b3a.32.1776159112947; Tue, 14 Apr 2026 02:31:52 -0700 (PDT) Received: from hu-pkambar-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82f0c35194asm17321642b3a.20.2026.04.14.02.31.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2026 02:31:52 -0700 (PDT) From: palash.kambar@oss.qualcomm.com To: mani@kernel.org, James.Bottomley@HansenPartnership.com, martin.petersen@oracle.com, bvanassche@acm.org, shawn.lin@rock-chips.com Cc: linux-arm-msm@vger.kernel.org, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, nitin.rawat@oss.qualcomm.com, Palash Kambar Subject: [PATCH V3 1/2] ufs: core: Configure only active lanes during link Date: Tue, 14 Apr 2026 15:01:34 +0530 Message-Id: <20260414093135.660725-2-palash.kambar@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260414093135.660725-1-palash.kambar@oss.qualcomm.com> References: <20260414093135.660725-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-GUID: BVQDK3mHVvA6jhc1WQrNZiz_Owo0mZXB X-Authority-Analysis: v=2.4 cv=cffiaHDM c=1 sm=1 tr=0 ts=69de098a cx=c_pps a=mDZGXZTwRPZaeRUbqKGCBw==: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=Z8YMyZzXpU5RQDwMThsA:9 a=zc0IvFSfCIW2DFIPzwfm:22 X-Proofpoint-ORIG-GUID: BVQDK3mHVvA6jhc1WQrNZiz_Owo0mZXB X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDE0MDA4OCBTYWx0ZWRfX6z/JJU4YkMZV m6vqaGVGOQ7cSGw+92a48YgEWWUZr4efkAbu1xqio9gRc2hok9rU0nmd9pJ3IcuaejFCx1jrD9S vhKfSbivLFcAhmYsiHC88zx1wC6iK2Qd0yghvZv/eYrj0EFX6MOTZtDv8iapfaTMGu6A8bGmzwK yCMxAy4ydKhIIBPMaRdv/yZ0kSyYimlbQ2KNABMTh2nDtjyrr4vrqz580kHZfSV7Mro1NVmsS3d mAMRvKgGfUfULz3O9QWRwEBbY6o3ktNdER7AByzXs3ZFGofjbxy2dVYYKbepzta4aWzn1W4sQyy NnN2+3hkC9KafsfPdo+et4A0GiT4WPM0IVgDgc0IikpTh2YmCMGDSsNSmXPX0pKqOiAF6uKXO7t UctahS2CAPg7QROiVJHLqqTKrTX7y97EAal+P8WcEx48l9ReNscRdrIdu5RaTXIqwACyWTaST5E FukqQGMIdPUlsw5+WeA== 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-14_02,2026-04-13_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 adultscore=0 malwarescore=0 bulkscore=0 clxscore=1015 lowpriorityscore=0 suspectscore=0 spamscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604140088 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 --- drivers/ufs/core/ufshcd.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index 31950fc51a4c..754bf4df3016 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -5035,6 +5035,38 @@ 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; + int 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; + } + +out: + return ret; +} + /** * ufshcd_link_startup - Initialize unipro link startup * @hba: per adapter instance @@ -5108,6 +5140,11 @@ static int ufshcd_link_startup(struct ufs_hba *hba) goto out; } =20 + /* Check successfully detected lanes */ + 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 Mon Jun 15 22:03:50 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 8DD833C5523 for ; Tue, 14 Apr 2026 09:32:00 +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=1776159121; cv=none; b=jzqfi4qzVt6+CrfJSdBoynqeN0wjVpoTioW+hLPIAy81q+SeDLI8DW0eK8rqgVh0jImo5BjovfehC6s0fR6japLcTyzwGXARaRcydXp4OJ3V9Np7/GxQ+zcCFloMEy92x9U1fqqB3sJW3yyguVfVpOoJrzg+rCX7VfCgeoTGtoA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776159121; c=relaxed/simple; bh=93ZtNV79vuouAa8eL2edT1/Lmp8ZOeyQQhyPpBYjjwU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ZOCYLSMqN3yNxI2USuTBYnmsR60R9BsT12XuDccGA8u4raQ413WKkUcIP8EoprK2qxDwgWMPIjBzf222y/PoSFfg0eXGHawlyAYWEuq0l3G7LG7oZjsxY7bLei8NtrgF0//H299T76KG9TQuxV3q9LMpULn8mmMx5y03neMCcWA= 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=NCWU3kSV; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=I4qB78Py; 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="NCWU3kSV"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="I4qB78Py" 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 63E6bsAs395270 for ; Tue, 14 Apr 2026 09:31:59 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=NCWU3kSV2Fi4p8qSK7XreOSVhlT iPrxydAJE1efW36AqNdu+oOfptY8S8pb28DSgkQBC3bDuSOmP768+zhHZsPqmjJ5 LAq5TXgTmVqStIsxJ7RYMT3aeyXaDiRDhxJZKJPBa1iU0Z8poEKQPsu22+Do2sA8 6hXhfK8geHwTP/HE0kVhToF82gec/OrskSDMp1+/4dTnAMyPPtGQshDUJIFJBeL7 9OD0slzUg1jZc3Tf46MXJZ/JWFkUNPl6eUAQux7KJQAwc/il38GlCLCV5cHdkjKt aIRgoHGinWZugBzuDPRB02qWTAkc4bVGg0q1Z0ah6lZCRQY6EHoZr0c+ibA== Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dh870t3yq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 14 Apr 2026 09:31:59 +0000 (GMT) Received: by mail-pf1-f198.google.com with SMTP id d2e1a72fcca58-82ca8323edbso5279988b3a.1 for ; Tue, 14 Apr 2026 02:31:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776159119; x=1776763919; 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=I4qB78PyTeQwWRnifrRRiYI/U4ffeRXBs0zGX9mxwGo2G/kyCmOqoE5ma6mtSkc/va TwFd6C+T7+yqIf2YBVaQkio9Ruvr6zfXxvgHHB6fjfyA5A5mjVl0gRtirTGSu71pEFnj Z5hH/LMM/yiyeIO6/y+bU0mO15a2RIsLmGYgCu9+1hsI+/3XwMvKvl/gXXs41bPh8j94 1Ym+CWlqqUb8jXP2q+Q1b8C1/0vsE/dtajzVL7aN9fcmxcEmFGgy7rpt8FRfOTgj1Ho9 5dn44ZTNm/u2EDO9NG9iU7zDuFEPPtjIpcgwKiw5Cepvirfrv5uQYmaYLrRspox13eqh 9yCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776159119; x=1776763919; 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=py1kYmsPrAvmLe/fl8SkDIWm+sKk0NmcpLPa7plBhxgxzyyvO1q0mLEFy99JO2sxPs 2OkZcathQj/A3jdyiEhQ+k3lMaUQ9dsoQDVRet+/PqcwIwRR6SNEf8ACGAb/audU69pa MJlzUVRTHrKMHdod6Mz7WPGoby97vPhC/1L8+uBX+2+PXGNLX++vTM/ISAa187iLONKk rUNAnBOkDu3ZV9hG8Y2IEmeH80RhOr/0pI0QBpY0S6QusLn9Djy04pNUJfwhmg6hUqwX J0ToQm9qMbuE7xjiYjY0TTJzErRvurvCJxJKgXJdxpC1hBxgGVZJ55J13V7/3xz2a9iK 2Ddw== X-Forwarded-Encrypted: i=1; AFNElJ+G7Nd2hbt97lSAfV/5h/vFlbQu1Uqp1Zp6dFjNXg9NU/FdFSR9lydthm6ZmkzKcxeibZ6SmiDdhK/Z/6I=@vger.kernel.org X-Gm-Message-State: AOJu0Yx4JjVZqXUpVX/DlZlep7J/Zh7VVvgaIYGi+Bh973LE/VRMpxT1 Yr9Jf07aP6sE60pFoInmNvvz6cDJyaMApmxzQffk/h1zLw/BlQSSqKn4+6ooI+j+WmmJ2wd9IHH kxg5xXjsUr4Z3deS2EeK4MkRQy39gexq6h18cgzaQ1muzG+H0dVNwCFMv82qvJxaxE7k= X-Gm-Gg: AeBDievxKjETUFOotcQMVlHD4NBrAdeeXPksdpO09AKeIY2wn1oZ1JRfKyvB6CpLdNI sbSmhz0ume+dVnV/BBnp3WAjV8gP3o63y51v3WU26pRGbC2Kw38UWAjXpFeZD1xkHyIdQ5oNg7c 2OzGVONmdJYZRczpSfXa0nQeWtoFAQO5O630i8q+ia7tUPC13kEde7eQSdompQ9uRlUdJ8lJmwa Hdj6mi8nj51Apqklqu9hkYxEAv3D++7BGEowSWbGoLm9feZ6ZaVqP0tCoqbCxZuBxm/fQ+vwSuK 38YYC6oRxkzNgUXC+595RQ3Yg8t/uwcQLI5KKCwS63H1hcSp1RqXM0qelnxzePlfcmMR0AXIl+g TuR3mtM/jTkkc02+UQUEVYHoMEFrmHrG/gLWqpCTm6R+uV1JLka7uMw== X-Received: by 2002:a05:6a00:3c86:b0:82f:5051:f022 with SMTP id d2e1a72fcca58-82f5051f702mr3913340b3a.32.1776159118696; Tue, 14 Apr 2026 02:31:58 -0700 (PDT) X-Received: by 2002:a05:6a00:3c86:b0:82f:5051:f022 with SMTP id d2e1a72fcca58-82f5051f702mr3913312b3a.32.1776159118224; Tue, 14 Apr 2026 02:31:58 -0700 (PDT) Received: from hu-pkambar-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82f0c35194asm17321642b3a.20.2026.04.14.02.31.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2026 02:31:57 -0700 (PDT) From: palash.kambar@oss.qualcomm.com To: mani@kernel.org, James.Bottomley@HansenPartnership.com, martin.petersen@oracle.com, bvanassche@acm.org, shawn.lin@rock-chips.com Cc: linux-arm-msm@vger.kernel.org, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, nitin.rawat@oss.qualcomm.com, Palash Kambar Subject: [PATCH V3 2/2] ufs: ufs-qcom: Enable Auto Hibern8 clock request support Date: Tue, 14 Apr 2026 15:01:35 +0530 Message-Id: <20260414093135.660725-3-palash.kambar@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260414093135.660725-1-palash.kambar@oss.qualcomm.com> References: <20260414093135.660725-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: iSJ8yUjAyHjvkx6DBpXxREdUGklpL40S X-Proofpoint-GUID: iSJ8yUjAyHjvkx6DBpXxREdUGklpL40S X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDE0MDA4OCBTYWx0ZWRfX23ERoQA+e+kB aaCpnKcd0u4bAkJl7pYnlJfwU2NO0StNEe7D5pBOgNAkEW/TgnlABG5XrEO4WRNYPdtUWerpD0h dwPK+UDg1KGely2Lrh48ICHF3g/cyeUrCQBy3GblCKiX6htJMXdcV7ek8Caw4EWMae4t5PdQrPB QjmL9AwpfgrJZ3R8wvCH9YZbqQv3geJ7mKSZ16/jfEqLaBPRm2MY6aqgBY2+Ta9ZXkqJYEZOBOY bu1e15P+6WOKe8h7RVVZ8PWY3eKcd58LxowIakdh9Se8T4IVbNJOqxpIcl1u7A5mBouk+iAQAbz XynvEoPc5MSWra8TV88rCHJu/bzBZvsTMxP3yBFvW0h/ElKhZ05iz3EiSKyX19QRs4GgFHL4hpM hzKxr3b3zeKb17R7RSNmHjhQ/FjTYtpPzkVnKdq9quAM5bx+jDNlSmOvW6KCHxoHzAGX5TMKPbf LdO8pDDetZizqm9CQJQ== X-Authority-Analysis: v=2.4 cv=MK9QXsZl c=1 sm=1 tr=0 ts=69de098f cx=c_pps a=m5Vt/hrsBiPMCU0y4gIsQw==: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=gce-7N_bzMkFAa6Kq10A:9 a=IoOABgeZipijB_acs4fv: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-14_02,2026-04-13_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 clxscore=1015 suspectscore=0 spamscore=0 bulkscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604140088 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