From nobody Mon Sep 28 04:51:25 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 BE457388394 for ; Wed, 26 Aug 2026 09:52:32 +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=1787737954; cv=none; b=tWKBr70AV1i3eTX6Q5EQeEFklNGIZCGcgIik2OswJxl87IwQxFXoRp+Y+2eWybKuoud3E1eMDRDZiCoke0g3x6Dohm7Q5lctY8GFpdwQ4GaZAs9jLUAeVEwOHIrfpFwbGLPLlPsBskS2KbtEoykHG5jazitLknZ6eeBQGf4LsSA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787737954; c=relaxed/simple; bh=adkMKR1iXVx+DwmZ3065YpyXhuugVWY0+cU+LJwva4U=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=DKkxcLoM1VQQelcvkkRQ7Y5gm3Evm2QgHjo7X2ZzKz2cH4dL7qklS6cktz0EkqeDmOhQ/gl03l1iMvcEWCUcIuQ9R4N1L92I9BlWW4cvUA+qyjsMOAQg0ZyCpwsWfihx3cP6P7LskNytire5AtAZP/hRDStnwisJHl4ViCkn2s8= 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=D3cRx8Hn; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=TWya9nvm; 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="D3cRx8Hn"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="TWya9nvm" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67Q9CYoB371462 for ; Wed, 26 Aug 2026 09:52:31 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=rb0nIYYamBu gMkUBgoIqbypSuVTrhDhDqU1MT4y2vJo=; b=D3cRx8HniHZnBJj9V9jZT/zl9zl 0tWvrA41ZOzraB1SrDgT0nPg87/3EUgP0vWISGbdJHIsndFqyyZUQRnhpCtChHaI 8pwE5ZJdw4NtCvHDlUHixS33rz2wn+sh1Wyh2v+wW9Ik/dciTiC+iH4Z/RfBLJzY HN7qo0sa8BUDB0Fze8PhWsScMfQpH824LOho2/fYJeq4tHOWrVTeiClRFTnp5DSx 29QG02pDi+SNvsLdr+WRQQZNFB72z8o6DOs+ZCwtt7Wfv96uhF450xf5jz8+YRie rvaBaJ8w5jwsHG3gafJZxmC+teBLNVrLz5NmG3gcXsniatEH5yejwCmUphg== 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 4g9cgpv475-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 26 Aug 2026 09:52:31 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-38e25e4b41cso1653601a91.0 for ; Wed, 26 Aug 2026 02:52:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787737950; x=1788342750; 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:content-type; bh=rb0nIYYamBugMkUBgoIqbypSuVTrhDhDqU1MT4y2vJo=; b=TWya9nvmJgB1G4G0T2fqMQOF5HqHPlbhegH0+4UHVdYGSnVM9nMlfcHgnr1KjUbSP7 aSrNXhnBe4szKa2E14cdn5p1X7MSn0NcTqqsG7Md337Hh+GQxkiRrU99Pa2oPahbIOnJ vu+UmpbCzD6uEFL/qmMbfhYmooEaMyTDhbVrDYIXZ8Zz1CRKuHl3lHuDmyHgTlPWglu+ maaEp2Pue3UX9nHFIwbFYy48VpSbJvz/pgOJOF7PK2cQ0bR+BWCFPoPOPiZA4GIsTTa4 euFgYhPSsKh+sIkfbfJd9vwP9PfM5rCBhf9x8KRk7G03DPasPR71MFp8o6Y4c/aJxQbM wKCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787737950; x=1788342750; 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:content-type; bh=rb0nIYYamBugMkUBgoIqbypSuVTrhDhDqU1MT4y2vJo=; b=O1Gko6Fsf90Owi82+kRIk62fFjO4BZQnsA7X72P0Kw7xGWqYWUgi83/JBeLqVpFWfs MxIUf4nbrXgp3B2udSz9SSgWmJdTO7Jd8YABoechljuN/q3REThr1Cx7Ck6vzuyZUX47 UYpzCCS4/IWzPc+o7DaiTQoi4ZhyX3Tb+o4yrb/dFa+b0tca2IJXxiQb9Ra5QI7xvLgI d1ClfTKz8A3+zaSThRR8KKo/p3SF/0YevFjPgjWec9XXnN6D1kaKx9bLtLsSGNf7Nfhk 2quDkwCkv4Xv4hjdRy417Xxfz/uNZPrJgwZyz7MAwQ94vvPoE9Uk4rM/RagXEUnsvx5R NEIw== X-Forwarded-Encrypted: i=1; AHgh+Rr3GSf+NIW+ul2MmWCgrkE4m8HlYc1QnV4czWxwGomcx+P266VBLUh7+tSDFY4X8NF2ONVkJITwbr66oLc=@vger.kernel.org X-Gm-Message-State: AFuF++lBiKRP15XXkXvn/QBGciSdTkCfPjCTFBhR1W7H26BKaVP5QQLa QNx/ZMwDyvyoZw3bL51OXza1PfnpcJmX+7dKeUp9yzNpe9DVk/dEvDa/hoT1QVFxC7dD7o0R3jM IOaliZ9Dhu58GGA7/t+JiDBabMpmkUQGRmaKcwY9r6yYWVvfAXcc/z7ZZTFSVUDsdZ/U= X-Gm-Gg: AR+sD12brz8ntNUv0RhcbcgEdG1QCXKBiOXsz/gA2PQFfws369ooNyl2dsFECCjG7Xq zaacsUJX89Us311dZf0yupT2BEvU2EP7cWjwU2UuccrD2bmSwoRvF7w+lfU/lnjF7DHoZCp6uKJ FDfhvTibFZGZn8hFPlK3ZvR1OlDruoC4Ofe8oow64+Zr9mH5O8cz/eW7dHJ0hKNZwfWCNIs2I0c SVwzy6K/XcC33UBunSvMtOEVIR4qIizx1gzZbIydS6uHhUiVB78RDKvq9I/yDoFTCjUKZqlhSkX Lhy9lA3QM5KNG91dgIhpCHSUH6a31FTz8hf52EDXbRa6MEJavkkSQJcYGfZ24Sr24tRqf+0kmNn TvN9EdedWk7ZBwB65Za0cV02Iah+jT28= X-Received: by 2002:a17:90b:1809:b0:38f:7f60:ba35 with SMTP id 98e67ed59e1d1-3966d199247mr11051976a91.5.1787737950465; Wed, 26 Aug 2026 02:52:30 -0700 (PDT) X-Received: by 2002:a17:90b:1809:b0:38f:7f60:ba35 with SMTP id 98e67ed59e1d1-3966d199247mr11051885a91.5.1787737950031; Wed, 26 Aug 2026 02:52:30 -0700 (PDT) Received: from hu-neersoni-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-141a8eefd98sm12587158c88.3.2026.08.26.02.52.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 02:52:29 -0700 (PDT) From: Neeraj Soni To: ebiggers@kernel.org, ulf.hansson@linaro.org, adrian.hunter@intel.com Cc: quic_dmukhopa@quicinc.com, quic_rampraka@quicinc.com, quic_nitirawa@quicinc.com, quic_sachgupt@quicinc.com, quic_bhaskarv@quicinc.com, quic_gaurkash@quicinc.com, quic_sartgarg@quicinc.com, ram.gupta@oss.qualcomm.com, linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, neeraj.soni@oss.qualcomm.com Subject: [PATCH v8 1/2] mmc: Allow host driver to control the re-programming of crypto keys Date: Wed, 26 Aug 2026 15:22:16 +0530 Message-Id: <20260826095217.2885229-2-neeraj.soni@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260826095217.2885229-1-neeraj.soni@oss.qualcomm.com> References: <20260826095217.2885229-1-neeraj.soni@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: P28qyT9lV3IfkdrLUYf-Jix5htnALxJ1 X-Proofpoint-ORIG-GUID: P28qyT9lV3IfkdrLUYf-Jix5htnALxJ1 X-Authority-Analysis: v=2.4 cv=I+NVgtgg c=1 sm=1 tr=0 ts=6a8eb75f cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=COk6AnOGAAAA:8 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=gPkh30t4SdGlgi7DwewA:9 a=uKXjsCUrEbL0IQVhDsJ9:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODI2MDA4MSBTYWx0ZWRfX0l9/TW3y6uc1 TROwlNlJky8ijdnOJSJffE7XnhX+J5ju4kSI5gLdxBU3r5JvTmSIlueG+I/2R0kmGGvM4x/OX0a S8VJ8vOoYfoQvYb35qr0iKWunUHPGTgHDcGygKM2Ho8rN/vsbsIItB8fx9N2HzK9U4MZBCFaUMN /4tt0ArsGqOXUiipOtFDOZakoVdQeJrp32Vvkg2k3JWZvcwkX32tS5fVlDrmpBiwra+siaFYsWv MTET0hPafm9p7PcN3G7XfygMrv8o7vnJEiV/gvnKh0uOphW1pBWU+FzKv6NZ7Zxz3i+7H1Vw8ja gqNpr6SNO3TytIKSNQ+8fkuafUwry3oysIE9gNkY1Pagau00MPUI4vSvGM4sDQSUwwee3G7KhyL lrEp3plMw2uMiyDyeC6elGHZab7G/MCOZVOTFslyetUmLz6YdyR88QWA33VenigsTlCz7rMtIE3 ASOrqg9xfDk/SqDgK+Q== X-Proofpoint-Spam-Info: AW1haW4tMjYwODI2MDA4MSBTYWx0ZWRfX9xJMKyYDeo/X qQrwDy3N6/WW/rPUcnG2bySsjR9XsWzNWlkqtAomKKC50YnSkCibQsSg7K5qi8oSZirzV1w+9u+ UIP/rSdcxfMg+CLk1p3vlCowpBlFGrI= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-26_02,2026-08-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 bulkscore=0 suspectscore=0 malwarescore=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608260081 Content-Type: text/plain; charset="utf-8" The register context for the crypto profile belongs to the sdhci/cqhci host and not the mmc card, hence re-programming should be managed by the host driver itself. Add the flag MMC_CAP2_CRYPTO_NO_REPROG as part of host->caps2 to control reprogramming keys to crypto engine for SoCs which do not require this feature. Signed-off-by: Seshu Madhavi Puppala Co-developed-by: Ram Prakash Gupta Signed-off-by: Ram Prakash Gupta Co-developed-by: Sarthak Garg Signed-off-by: Sarthak Garg Signed-off-by: Debraj Mukhopadhyay Reviewed-by: Eric Biggers Signed-off-by: Neeraj Soni --- drivers/mmc/core/crypto.c | 2 +- include/linux/mmc/host.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/core/crypto.c b/drivers/mmc/core/crypto.c index fec4fbf16a5b..a5a90bfc634e 100644 --- a/drivers/mmc/core/crypto.c +++ b/drivers/mmc/core/crypto.c @@ -15,7 +15,7 @@ void mmc_crypto_set_initial_state(struct mmc_host *host) { /* Reset might clear all keys, so reprogram all the keys. */ - if (host->caps2 & MMC_CAP2_CRYPTO) + if ((host->caps2 & MMC_CAP2_CRYPTO) && !(host->caps2 & MMC_CAP2_CRYPTO_NO= _REPROG)) blk_crypto_reprogram_all_keys(&host->crypto_profile); } =20 diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index ba84f02c2a10..3c3c45fdf39b 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h @@ -463,6 +463,7 @@ struct mmc_host { #define MMC_CAP2_CRYPTO 0 #endif #define MMC_CAP2_ALT_GPT_TEGRA (1 << 28) /* Host with eMMC that has GPT en= try at a non-standard location */ +#define MMC_CAP2_CRYPTO_NO_REPROG (1 << 29) /* Host handles inline crypto = key reprogramming */ =20 bool uhs2_sd_tran; /* UHS-II flag for SD_TRAN state */ bool uhs2_app_cmd; /* UHS-II flag for APP command */ --=20 2.34.1 From nobody Mon Sep 28 04:51:25 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 37DC13C3F70 for ; Wed, 26 Aug 2026 09:52:37 +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=1787737958; cv=none; b=adu1+8OaZhSorpG5k4Zh8MUhki4xDrNcYPy4rDU4/mPJHB9aGlddrAEZ5MZC+MiFGJmKwI2sAAzkLqajLjsAysR0SoKa/U2f2gDN87l1NvZ1dVA6YTAfqfNJH2sG+pg8YAwU0lr3c7HTDmHAtRDhzTZXeR1QMy5YOoYJSnziKWY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787737958; c=relaxed/simple; bh=iVu+NF1da8ge5STKrzpoaGm8xww07KnRYKGppRIoKzc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=aicD616UFPl7KX5S99/DLsh2fs0Tds09PNaM60x9WTyWjgECAEQcztcFWQk8P8O3CP9e1Ax/e/Q/SHO+RC3+7LFsXjDz/5UIecb8yuS//Qy4c84x+j9/hiAEyPGeP0pT3h2UgWtAceyzF7M3TzRcwdndeCyxRTmMv2MUbPf9ZWg= 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=TYUlwb6t; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Crz4wH4s; 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="TYUlwb6t"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Crz4wH4s" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67Q9CZDK1062579 for ; Wed, 26 Aug 2026 09:52:36 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=qE2REapfAYD Zy9NT8nsdiXs7OXYUT8M5lf3ietPwzVk=; b=TYUlwb6tjNLYP6lMRNJ3kb2PGKm dddyqF2Yn5P0d2f9rB/56OuWaYvmMfn9OEWeNdErL3LNEu350rNEFAl/UgM1JCu2 HtiDnLwhScRcijjiMCwudKzRbK8lRcbEy9/YA2c+4+RXkOzm6IzYYRFB/KDpns2T gBoTKeXp6w+csLw9g38kEa6LLE1J3ZhMTgSclAZ4adYmhqkfPLzWaNPvnSWHsu7b 4L5wNkyhh4kZy7xLum7DLKtMvJSHzxhwc5i2s0lBijZ8YuR7Ww+SX5Em1pnhJa4O 4NwycL4qanu4yuNVTwi060+NRRjDgU54LueFA7WLyz7SmC0bYXy+oExgGlg== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g9fgxk9wj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 26 Aug 2026 09:52:36 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2d52734fc41so18201705ad.1 for ; Wed, 26 Aug 2026 02:52:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787737956; x=1788342756; 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:content-type; bh=qE2REapfAYDZy9NT8nsdiXs7OXYUT8M5lf3ietPwzVk=; b=Crz4wH4s4WQYVUuPPDYIAC15wj5IO0QhnCYJLBQF4RznQFaVrGhod3WmGI4CDesIuR gKhthYDf+XtTRlP0ZinU90CsrZC9rc6zX1t2JoSh3eiPxrsWLe995zqNJBnhXpz0apU1 wPHeA8ZFvfbnibuMdqk2M6ivToiwgQHBEVQnWXcIvkL/ztxRPBIgKSKIFBnHYxLkMDxC BEzl56P4gu7RDiexJGm85eIgT11mmL7amVJ2nJQfcf0SJ9q7eUBFqORyFDQmT1Lrty5I qrU6jtoPxNluGvMGbGKpL36eAzfuylOKheo5N7C5cmnXiLM/mrC3Z0XXFnmCQJmzVChs dWmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787737956; x=1788342756; 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:content-type; bh=qE2REapfAYDZy9NT8nsdiXs7OXYUT8M5lf3ietPwzVk=; b=Gcb3pgglafHHzt3fqO0UvvF+7XhejCoHVTBKWv5Udpnj3lRQb0iXLAkSF0eDd+87An /pXSU3P4pYJqsm/7/veZJNEK/2hbPbWxJ7r8uiGOsQQpfdIu7BCTSQakK15Ihk7RGm2V n6d9bcVoqIOK0YM256IZdjkRAN6DgXMWWM/oTj6fDbhE3AwbVW9AhQmvFtRV3IuXLWYt WMYMWnDO9lZFnvYQGipmlT3rFhq3NSEYJL3SvZWSDM3xVIFMJ+LK/raBlt9UKB/iKEdk a3amy1EAYnV19FFbRadaeW9tUuvDh2PF7bZKxCWPjdxlKcAPjcVVjYW9bBCJNlkUYeDn W4Cg== X-Forwarded-Encrypted: i=1; AHgh+Ron/Q+pCDaMQULRnr26Wyfy+vtMO6gIERb24hZ1t5xK57R6AXr5i4Scfye+xZdanNqhjHYbpT0Wjazl2F8=@vger.kernel.org X-Gm-Message-State: AFuF++n1V4InJg63xb8uqQ+SYksZoXB6gCnxZt7Tclj6goZ3kgU6rNw8 gee8MBekFRrl5ZyioemaZ8W96qOh/7JneRcBNqLHxljAAlzUm2DU7N3wbjVtOljRbvqBAnMMXAk 509P2QXqVGiLbClGTQymJ/0NErKHg8Y1jio27ZPFFXg11qhXoFvWf8iFpygvTsDWWLos= X-Gm-Gg: AR+sD13nNLlxi5pPzWqdL6depdA3qaxYWHvhiKrYXP+Eyq83miWtsqnAMRUOaOzIkWo 9AVxhPFkTKdxnwHrStNb8x8ov5VzdmAjNP1LSCVdxoyfRInV5c8k7FCAWRwFTDMVy+vGyqbe/WA gpFyfxSmUkdgRAjVV0hdOJ3Az3EiK8nH4k53IShaZ+lYxArz8XNE5QuazoJa5TZZw9b9HuAPt8Q v84O5ziZDDM8hTykbvHD7xwZvOLsvL9FpFkp4cgB0OPpwMfKWxy3S4ZIZWl7PCUD59KDNz57ubF i9isXoI/xUci8M0q3sJyqE1LvwDndVwFJvdssMxIfEVPlTCJC2nMrfJ3iGhn3GXkJEB+8QdViZf 7s1M2rWCXVdTvTSa1gYTdt/znwififBY= X-Received: by 2002:a17:90b:5543:b0:38f:5869:387b with SMTP id 98e67ed59e1d1-3966d5d9ad8mr12387181a91.9.1787737955650; Wed, 26 Aug 2026 02:52:35 -0700 (PDT) X-Received: by 2002:a17:90b:5543:b0:38f:5869:387b with SMTP id 98e67ed59e1d1-3966d5d9ad8mr12387127a91.9.1787737955244; Wed, 26 Aug 2026 02:52:35 -0700 (PDT) Received: from hu-neersoni-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-141a8eefd98sm12587158c88.3.2026.08.26.02.52.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 02:52:34 -0700 (PDT) From: Neeraj Soni To: ebiggers@kernel.org, ulf.hansson@linaro.org, adrian.hunter@intel.com Cc: quic_dmukhopa@quicinc.com, quic_rampraka@quicinc.com, quic_nitirawa@quicinc.com, quic_sachgupt@quicinc.com, quic_bhaskarv@quicinc.com, quic_gaurkash@quicinc.com, quic_sartgarg@quicinc.com, ram.gupta@oss.qualcomm.com, linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, neeraj.soni@oss.qualcomm.com Subject: [PATCH v8 2/2] mmc: sdhci-msm: Use pm ops instead of macro to restore crypto keys Date: Wed, 26 Aug 2026 15:22:17 +0530 Message-Id: <20260826095217.2885229-3-neeraj.soni@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260826095217.2885229-1-neeraj.soni@oss.qualcomm.com> References: <20260826095217.2885229-1-neeraj.soni@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=MqZiLWae c=1 sm=1 tr=0 ts=6a8eb764 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=c8uX7mJuq6A9Pmbnve8A:9 a=uG9DUKGECoFWVXl0Dc02:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: ozwyCW__t-FE5DHdPuedQSHec5AspkKU X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODI2MDA4MSBTYWx0ZWRfX2ws3yFwCfJYU 2zyb02wFt+IvArtocssIBwJ59E2Dfxg2qB4QXipdMJ+lFEy7fcR0AMFjBoSMtVZTGWMOBF5tXfA N5Nl5rSHOmA06oOJZX0Czm30j6UVPCQK/oQQ2R0ZRTJB8VmJoGbaD1L+uPKrMUasAZYJB+pypA3 7MnyY0wxMffQr9Q8sTPoxrMYlv1jj+0f4obna6xi/IqbAoV6fEbo/oZzpu68ZksANbjsJVd19eK pW7kjkL1tXP8I4gIdxwYdHoFHNAiQhSDGS8uC2+pnS9jxmnTpP/l/N55uItQSMd5vKtwq1f/fTS IHQ0o9n5ZlxLMXJuiXQ8hxuIfHp4lOLRok6ISIzSThh79T2NcHPVXlqU2xiaRu6pWHjni/Wqvu+ mGcdnek2pGKg0pAMY+KOHf/+6fI1Er3x9cI5O84fmqQyBxNdjMPpyLDoMWcPx7EsuWoYM2+N3aY dqyyLzmqSqrGtwYOHVw== X-Proofpoint-GUID: ozwyCW__t-FE5DHdPuedQSHec5AspkKU X-Proofpoint-Spam-Info: AW1haW4tMjYwODI2MDA4MSBTYWx0ZWRfX83fLn8Q7Z/Hu bte59N3mnLSOxUcilOhvj5tjI6sBljil/tcgIkRuVbeeBNrEyATE+NdSo6frR3whj+xTeC3a4Jr ZS9SBkLmjsC5u//c07TBGioRrekogqA= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-26_02,2026-08-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 impostorscore=0 suspectscore=0 malwarescore=0 bulkscore=0 adultscore=0 clxscore=1015 phishscore=0 lowpriorityscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608260081 Content-Type: text/plain; charset="utf-8" From: Ram Prakash Gupta Inline Crypto Engine (ICE) keys are lost after hibernation entry and this needs to be restored when hibernation exits. ICE keys are re-programmed during sdhci_msm_ice_init() but it may not cover cases where the hibernation image is already restored. Unwrap the pm ops and use directly in driver to add the call to restore Inline Crypto Engine (ICE) keys. This ensures that ICE is brought into same state as before hibernation. If hibernation image creation itself fails then device boots through normal flow where there is no need to reprogram the keys. Also set MMC_CAP2_CRYPTO_NO_REPROG to indicate that re-programming of ICE keys is not needed during MMC runtime suspend/resume or suspend-to-RAM since the rail powering the ICE will not be turned off. During CQE recovery, key would be lost only when BCR reset is performed which do not happen right now and will be taken up once it is fixed as part of recovery flow. Signed-off-by: Ram Prakash Gupta Signed-off-by: Seshu Madhavi Puppala Co-developed-by: Ram Prakash Gupta Signed-off-by: Ram Prakash Gupta Co-developed-by: Sarthak Garg Signed-off-by: Sarthak Garg Signed-off-by: Debraj Mukhopadhyay Signed-off-by: Neeraj Soni --- drivers/mmc/host/sdhci-msm.c | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c index 4aff965f0e2e..460994164d2d 100644 --- a/drivers/mmc/host/sdhci-msm.c +++ b/drivers/mmc/host/sdhci-msm.c @@ -1959,6 +1959,7 @@ static int sdhci_msm_ice_init(struct sdhci_msm_host *= msm_host, } =20 mmc->caps2 |=3D MMC_CAP2_CRYPTO; + mmc->caps2 |=3D MMC_CAP2_CRYPTO_NO_REPROG; return 0; } =20 @@ -2055,6 +2056,12 @@ static int sdhci_msm_ice_prepare_key(struct blk_cryp= to_profile *profile, return qcom_ice_prepare_key(msm_host->ice, lt_key, lt_key_size, eph_key); } =20 +static void sdhci_msm_ice_restore(struct sdhci_host *host) +{ + if (host->mmc->caps2 & MMC_CAP2_CRYPTO) + blk_crypto_reprogram_all_keys(&host->mmc->crypto_profile); +} + static void sdhci_msm_non_cqe_ice_init(struct sdhci_host *host) { struct sdhci_pltfm_host *pltfm_host =3D sdhci_priv(host); @@ -2149,6 +2156,10 @@ sdhci_msm_ice_suspend(struct sdhci_msm_host *msm_hos= t) { return 0; } + +static inline void sdhci_msm_ice_restore(struct sdhci_host *host) +{ +} #endif /* !CONFIG_MMC_CRYPTO */ =20 /*************************************************************************= ****\ @@ -2983,9 +2994,28 @@ static int sdhci_msm_runtime_resume(struct device *d= ev) return ret; } =20 +static int sdhci_msm_restore(struct device *dev) +{ + struct sdhci_host *host =3D dev_get_drvdata(dev); + int ret; + + ret =3D pm_runtime_force_resume(dev); + if (ret) + return ret; + + sdhci_msm_ice_restore(host); + + return ret; +} + static const struct dev_pm_ops sdhci_msm_pm_ops =3D { - SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume) RUNTIME_PM_OPS(sdhci_msm_runtime_suspend, sdhci_msm_runtime_resume, NULL) + .suspend =3D pm_sleep_ptr(pm_runtime_force_suspend), + .resume =3D pm_sleep_ptr(pm_runtime_force_resume), + .freeze =3D pm_sleep_ptr(pm_runtime_force_suspend), + .restore =3D pm_sleep_ptr(sdhci_msm_restore), + .thaw =3D pm_sleep_ptr(pm_runtime_force_resume), + .poweroff =3D pm_sleep_ptr(pm_runtime_force_suspend), }; =20 static struct platform_driver sdhci_msm_driver =3D { --=20 2.34.1