From nobody Thu Apr 2 17:16:38 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 321A13D16EA for ; Fri, 27 Mar 2026 09:04:02 +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=1774602244; cv=none; b=O+e4gjc2TJYeJKEBUJ+RxmxST4jLeuMbTwjFKxSm47BbvF12qInsiaTkHMaT9wfitj2TeW7IZCieoiqA3aaAaTUjZAcW+BEhY8KI+O1L5YMbOZXa0YBS5c100g452Y+jf4rAohOOo8CUSlb88kwAO9hu53Ofxf+oWONexM6q5Yc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774602244; c=relaxed/simple; bh=sijOfDCZP5Ip0DhMoFL0SnSyLmFbSo4NH5UDAkeNO/o=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=BPaISvtQS9qpwFvO7gFxUhAnHiGJ5fxoPb7Rjddt7y6KLcXoVLyimMmOVUoCuxiggwcWci2pMpXohbPi1h1aZenorSZrWKgM94iD7vMausvwoneSFhBKDKO3gny+S31NoC/9rY1jZWKpVXLZ/08YHHhygMgEc/mq1KeIs7iUMqQ= 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=GpObczxi; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=RlpouOA5; 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="GpObczxi"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="RlpouOA5" 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 62R6w8em3132258 for ; Fri, 27 Mar 2026 09:04:02 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=BsP/Cz6pi3D /C1lGz2QDJeYO4Xmqw8Q51D0LRWGF6nY=; b=GpObczxiW+hQHa7sdKWJ6hxVIj6 vsXcQnWfYqyXxW1+NN1v9Me6FVgaDAyj4TiFtbqnpXyyDd7/BJUlQonMJYaWTGoD Iwd4KH0G5LyJxTeI0qDp2oz8zpt451EdFolNJxnEOWh0j9IRWoQd0k4T9hEwvUus QO/y+OM4OKt8Tan0Yz67j+as/jWNl8JF0Wp/0WPu/d1Mi/pkBPitZGviZOsu4/gS aYiewnbAK5150RdcWfJZWMqomNNNvubxfbMbtw6ws3jkIoYwcpT/5gpWcn+sGb63 mZqcG4+7FAgTMK4nUQbhRuPu7JeQSQnJm3+dnKHk+zlSd5GPhwM4lCkDa0g== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d59s42r59-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Mar 2026 09:04:02 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-35c1107da15so297793a91.2 for ; Fri, 27 Mar 2026 02:04:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774602241; x=1775207041; 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=BsP/Cz6pi3D/C1lGz2QDJeYO4Xmqw8Q51D0LRWGF6nY=; b=RlpouOA5avY7/xsr7P3Ieh+m37SWh8eYvgShBCqUwcUW4lMnxfx9PVsVBNram9jrUS OZe6UsPVamZO/VpY0tq9TgKb0rCtL+0wuxqoTzkH7Yg4ZJnqYhcUjoH0y/oKB/lPn9F7 1A28T93b/i3mRVjR/WVHEaYQEVN1n5XMAQGe9GYI9P8rpH9AaRKzsIRHc7GQhyFNmUh3 hCoQbQN7wEe70iS6DmcT/RfWGggcLpaiN7td4RaeU+iiUYon0XUagv1W2NJ1U2MCNUk4 oij0l5dKdKFbgx1aC7f9hg+AuSfyXr8TbcYnDE+U2DIV1Mi/VxanNkEOBWHyFlnswaLE FbAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774602241; x=1775207041; 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=BsP/Cz6pi3D/C1lGz2QDJeYO4Xmqw8Q51D0LRWGF6nY=; b=svcH16E5fqmu3BRkZoQOLEIjSKQ3RmCWpy2nQlxxDbes0S56AwA3X55zuem3UUVI4v S80lTRDcn6nqa9oOW9Zp0vk0zWUmU4QwlkI0vQ9NiYzv6hO33KdZvVN09Eg+8d3NA0t9 f0y6y5kInl4NkCG+04cK6jM5ejyR1e4JVdaLV6e2NDLZtA79zaQ48SaDojQhPWK6xK8b 7uDn5jLrhI3hxQeiuxCcjCpDNyH1uj3pxpAZpBisSXLmlFau8QXreLfKLXPYX1XN0ZfR WHYXdO8IBNo/glAbttt1SQWgT43Z4kgJ+sm+FAYSTxXVxGkAbQqkfkcdQsF7BNadAwbA p3lA== X-Forwarded-Encrypted: i=1; AJvYcCULFfvo7a2NNmu2V43506r4pz0BkpaFXdn84VtXLJFp3OT2U8BApuptvqqWVZy/VA/PkiW7o2VWxSF1boE=@vger.kernel.org X-Gm-Message-State: AOJu0Yx9wMsq3/FL1dYCxrIIoytPaNt0iAbLBg9Ofhjsb12nh9cZF++m 5HoBUvMUjsjNvW41E0OJI4Ut4dIvp21cKKVCWSasNyRsnD9wOMyYFQz/CbrRhxFOrmmhdOR7g1z Uq5XzKfwo8Hrn3Jrjgp7qm+JEwzZEzM2L/GGxydU5rvIwb1NE4qXqgnHE5QfMABVMBos= X-Gm-Gg: ATEYQzyEUsCRFLPB7bPo3IBLOq1+Hchi/kalkAKIP21/hYlNxmeQ4s6FWptZ/gshfzQ 935P+xc6/L7mN1kYOp8fkL4xazFA/2BRBdIsL13kDiYTbNwtcBf5Ojtc3PqCeTBIm4DjVOVgjGB y1Ba6Y0c1fQid/bQ0dIQ03VQUPlnxV2p2MUkCBbLjM/G6hfpIJv/sfofdZiTNo3Hcxb1/nHuU+o 3YTNLXsC3KI2RloAbnJ0/kFpwRio0QoLcG8k+ARRevy3j28A16amn60sHwC4mlK7ZG/EBIdgOz0 E9L/lBz5x9M8Tl3j9JOiVysRLYIA18JZQ+I9ntfHRE3jE5V2bB5YiaRcajMXJ52v79Ot2XuHbsL /kd8l07oX2+9Y3ctvUj3rLhgyMgJCrzGmmKGVZpO4CiN/rQZIEkK15A== X-Received: by 2002:a17:90b:2ecb:b0:35c:2c03:430a with SMTP id 98e67ed59e1d1-35c2ff5074fmr1727788a91.4.1774602241073; Fri, 27 Mar 2026 02:04:01 -0700 (PDT) X-Received: by 2002:a17:90b:2ecb:b0:35c:2c03:430a with SMTP id 98e67ed59e1d1-35c2ff5074fmr1727757a91.4.1774602240516; Fri, 27 Mar 2026 02:04:00 -0700 (PDT) Received: from hu-pkambar-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-35c22a81744sm4230006a91.5.2026.03.27.02.03.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Mar 2026 02:04:00 -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 V2 1/2] ufs: core: Configure only active lanes during link Date: Fri, 27 Mar 2026 14:33:45 +0530 Message-Id: <20260327090346.656324-2-palash.kambar@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260327090346.656324-1-palash.kambar@oss.qualcomm.com> References: <20260327090346.656324-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: OPubkpIrAsqb7Kg2J83BjAdp6q5frt5T X-Proofpoint-GUID: OPubkpIrAsqb7Kg2J83BjAdp6q5frt5T X-Authority-Analysis: v=2.4 cv=CoGys34D c=1 sm=1 tr=0 ts=69c64802 cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=Z8YMyZzXpU5RQDwMThsA:9 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI3MDA2NiBTYWx0ZWRfX5Vrgt/RAsAsT 6gch9zFQ/Xl9cKXbFeWaYPBhSLqKiW+xgS+H0SQgSndRWBNwuypVFkbjoRyksaZwbw8W3tjB9iv wykqYUV1YE6yrDkI8EelKLbLUvnQRP4tFSM9lgUuJ8AZTmNbp4C6KN3vtHbjbcU4LLGSngIAhJ5 XnvRIv917sq4a6riQSC+/UNWC4d0uJI1Gx9wMg1MaVGdrG7OakPVgDL/DcKBppy0BWFyiaW4T7o x53uwtpVHtiLOahXUzpOHVWGUtr8GLbQJKKicGy0D6IrEFvAprRcFTZI+7NRNfhAxUC/tUAX6cc Vbh9URK02Uqez1+qJixX3A3MIXmkUbfs48Vyt8CmwBrX1zmN6FbzKDDOkVY3bTmcIsFxWkXhYYD B5jjoS8f98NhCDquNTcRa7ZEZMGNUiiDC4EgSDEMJV8+luc+HkR89JjTD+61jcR0/aNxVva6Kxs Mivb30xrB8iKrtDJaOg== 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-26_04,2026-03-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 adultscore=0 suspectscore=0 malwarescore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 priorityscore=1501 impostorscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603270066 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 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..cc291cae79f0 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 =3D 0; + int val =3D 0; + + 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; + } + + val =3D 0; + + 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 +5142,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 Thu Apr 2 17:16:38 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 1CE5F3DA7CE for ; Fri, 27 Mar 2026 09:04:08 +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=1774602249; cv=none; b=koW56KcNsLQsl56VeA4PW6rkUQLZ7mICMaJuQyPTk5XotEfEOsqfgIILHZCDVDoFPSysUe6lZVLmGPUODR6lJPr59OG8MmHYTKuyUI+35RJtF3p4P1uMi99sLPAX17xdcIJjWcG6X/Q6NINTmmEs38hZHeT7gE593uEuejTx+28= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774602249; c=relaxed/simple; bh=L22x1sAmNTPfVGmo45h6OxTwrRURMxryt2366AE58cQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=QIDSSmxsnDw3rCyK87AMqh8h0cWcJywn95Q+PnyqtP5SUG/rVw28UddXXuMkwXDCLeUVDP8ftyNn4+vKIynAVUSfwica0GFli0nyZRcbOjss0uXqjHTdnDzu+j7mWf1i0qvmvbQ3RKq+B0VoETRwhX5pA0Qi4V9DHzbpEkbldEc= 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=YyYUOzlI; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=d/NNvbYK; 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="YyYUOzlI"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="d/NNvbYK" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62R6wEFF1710544 for ; Fri, 27 Mar 2026 09:04:07 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=wUm1g75HVM1 ePzrrQoDeo9sTJxG42J2EjNdxBe1uf3c=; b=YyYUOzlIk9vqMY6mh4cpy7bl0e0 DIjyOWSM7552V6EA896uPxRz8YqxWhd0gl32fuwO3ZdSsoyrolbL4prfXelS5XHO uqCQNJygaSxwGHVzEiS/NQgfEs0sTkuO/MzHQ1lCIvcUXKRWj7EELYHn+cf5eOOu 2wXVg2f7hTvvmRjbx8Ff0tzISPudIXDMu1wOT5HWLDoK6ZdCOZhhX1bG/8RK0D/l jm7ts3ac7gMdKXuSJaO0mRHQyl6iQS87Ung80gQJRGr2doInjRM8QwDu/++h9/xl e+I7m8++ScGNNt0/J3xrUhzmFLASi3JkLzYENUKJh0rTtoMK5HLAYoegfOw== Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d5bxvj993-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Mar 2026 09:04:07 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-35c1874336aso5742659a91.3 for ; Fri, 27 Mar 2026 02:04:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774602246; x=1775207046; 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=wUm1g75HVM1ePzrrQoDeo9sTJxG42J2EjNdxBe1uf3c=; b=d/NNvbYKZkRfE0TzBzVWU7R8OHswSeLqksUOxyCM936FMGOMoOjeoIgDtDQbz7qjDf U2uhE5U5H/2rr8x9AQJUYQgKH54U211i4wAXjopnk2PZ9eIgVkh1z53oWcealkj9VpxY NSdRwQ3Km9lME9EBhAkyzh0dP1QYPgPAaD0NHBk1zdbW/oCo7th+Xkswje8ax4HbD2rE R22j6MVe6o6Prf8FyrJjxxwT49QHRDXE58Y0PfGyVHEVMw9K1igjjSU0DCE8uEz9TQTt YUGyXsFCQxX1TKEXOt4rLu3B8qvXEIdWL7ISo469TAZn/rRVzm2KW4LvI4YGc7i4mQOA 97cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774602246; x=1775207046; 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=wUm1g75HVM1ePzrrQoDeo9sTJxG42J2EjNdxBe1uf3c=; b=PT3x58CBTYBxiQZ0xzgVLXM/qlcrXUYJ3oLYCpzxUgpFcvrXVaCoHbkOy1JnYxx7+0 v04LtIRcp1oM95zualm1azGoqOb0o7kH1dH3aoyN4PBr9bOYq8b+Bj1Xu0U9Z3KbgtQc 4+IDd2gkKmGldc4+DvsDQBOJmL9qi1/7+ydyUy0cXqPNhXt1MEHuuwBXLGNfWcoS8Yhz iwiDh9BpfCciXQGWhEHok6XtdlGEJu05BdVnWTGw3JCJywogK4UzUPDbVCh6jp9ap0ry IOwpiMieoeG0ekUKppv/OIyPtPuxlWJhZLgkdkKmSD8+RtaiADlekA076UrbkoA10Rb7 cDUg== X-Forwarded-Encrypted: i=1; AJvYcCWq9Qwbr9Bf9Ew+OV+ShEovK2g0APZIzsyyr7gAeaN4Vj6nl5dQ5xxDQfpfgl0YXc1NeC+ihpwxb3eny6Q=@vger.kernel.org X-Gm-Message-State: AOJu0Yzh8+sDO4EFCRxkTnySmVjkKgOdLaP+vWwuIrMBCElQKwZShW8j lkiw2Zn/2NBcv8n+i5FWjfz7Im7PIIH5m2/bhgDyW5RA5ThXumh3uk128B6C9NmuvULk/gBaZCv dcE+cXS0G83s5VXK5ou/8VK2fKqy+VobsRsET/HuXmK4w8I5nLz22vv7CDhlTMbPjVRRmoCZuQv U= X-Gm-Gg: ATEYQzxUoZUcQamulMRkqDd59ft62Y7k/9DZ/LZMhuHzb2rtYSkKlMTEOBUGuEpuc31 /kdWz9Teo/+PysXLOXKs1m1PGpXrUfLEwHp16KyBV/6dht6U4fIn9kddKEUzHB5H6LrXcHaGa/v nKRKWZ/stHbkyXX0A1uCZ7oeRPiwz2+Lu/ACeuQxjYGH/CBQH55NUuzsegOA8zuS/flIbTglPsH F9J+BTi7iQaXPGgirklELz18/s/58/nSEAH5OGCuvbwfE7DjIp9tPbfb+AUsMg5Chz12s4sKT23 prdDVEJoUsEo4qQssiEU/yA46m7K1i24z0QUbxORUecerbLX3jzY6Ru0uBXLoE82w4nnKSPWL0R moLatYwPYMGQBaliWfCMrBuhqwztgBv5mCK/0kRA4nWPGKsLTr/XHKw== X-Received: by 2002:a17:90b:4c:b0:359:1130:1047 with SMTP id 98e67ed59e1d1-35c3005bb92mr1909516a91.17.1774602246436; Fri, 27 Mar 2026 02:04:06 -0700 (PDT) X-Received: by 2002:a17:90b:4c:b0:359:1130:1047 with SMTP id 98e67ed59e1d1-35c3005bb92mr1909490a91.17.1774602245965; Fri, 27 Mar 2026 02:04:05 -0700 (PDT) Received: from hu-pkambar-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-35c22a81744sm4230006a91.5.2026.03.27.02.04.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Mar 2026 02:04:05 -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 V2 2/2] ufs: ufs-qcom: Enable Auto Hibern8 clock request support Date: Fri, 27 Mar 2026 14:33:46 +0530 Message-Id: <20260327090346.656324-3-palash.kambar@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260327090346.656324-1-palash.kambar@oss.qualcomm.com> References: <20260327090346.656324-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: paXq1UX5qpB5PWJT7WhVi2Gspj9DjjM8 X-Proofpoint-ORIG-GUID: paXq1UX5qpB5PWJT7WhVi2Gspj9DjjM8 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI3MDA2NiBTYWx0ZWRfX8ZeK+j9fG+h1 NcXu/TL9swo6iSA0p5gAPD1cWnUyDv34cDMV07g5kuh4OZq8rJLZFC6HpdhNj8umr0/OBPjTQ91 ix6UFrQdTy1bClRNPyt0YrGYqyFLozxTkQQW3HIRiIuj9gqNMcV6nhhGwFlMj1wD5JO1C9Q5c6p trEBvkzMBg9lMwob2FKkB1mIfMLpFdEM25Wm2qOBftPKcbRQhqzYA40rWrBxh0IDpAWi/r225qV 5lS5FlFUqZ73LFPG1LsW2+A9pQz645Gbh64l2Fn8voN1iX2Qv7b9u6KTw/d4za2bGlutBRI+sLH ay0q78e1Bx0R9XV5W+O2EnQS0jodZfCQsp8U1hL7EXL2JzE6SlnFPhQhTnlYd9KK3461ZZr4SrW JuaGeBZ0W22qMJSeWxd/pkPWt6NF9JGEyBmsJNWKsFRTb50KC3V8Lu7WAN+5+zpFwIXSR0CEQ32 +usgRUbt4Ad0vAx+vHA== X-Authority-Analysis: v=2.4 cv=ToXrRTXh c=1 sm=1 tr=0 ts=69c64807 cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=gce-7N_bzMkFAa6Kq10A:9 a=rl5im9kqc5Lf4LNbBjHf: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-03-26_04,2026-03-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 malwarescore=0 spamscore=0 adultscore=0 bulkscore=0 suspectscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603270066 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 GCC when entering the Hibern8 state. This allows 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 --- drivers/ufs/host/ufs-qcom.c | 11 +++++++++++ drivers/ufs/host/ufs-qcom.h | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c index 8ebee0cc5313..0e653b34b00d 100644 --- a/drivers/ufs/host/ufs-qcom.c +++ b/drivers/ufs/host/ufs-qcom.c @@ -683,6 +683,14 @@ 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 +716,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