From nobody Sat Feb 7 15:35:29 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 8B51A3542F2; Mon, 2 Feb 2026 08:26:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770020763; cv=none; b=d7yHsZXkD0buYwdyOxMhmUr82eJ2XlM8svr4u8hR4gU1blhsxRO2/Pfb2tVvqRlanx28InUMk811dWo4VFEkLK0NRFQmIKyj0a0zX9qyuVqM7iD5ZVQN5b+H67xt+tqKZLkemVuLeI6rmLvaEwfdD6js4qMMyHa9gly3G4TwCtk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770020763; c=relaxed/simple; bh=wLsIkUQ80ugHrd+qzKIWtsSm6XESD5tBTskvqZcZ+wQ=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=MM7tyuGXSEWWKoKNTHH+rl0zAcaNMbkoHkLd1LKi2WWwjtA5tXkCqsUQ0xkwvDlMpLT4YtJSqcjcVosB+sPllTNGzFfzxt0VzuqiSme6wktkbCREGM8dPnB0EmPrFNZqfRkgJQ7fifpZP5SgiSv/k2LVdreM4qwBqKhAdFkPHtY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HXJzc/QL; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="HXJzc/QL" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CD5E2C116C6; Mon, 2 Feb 2026 08:25:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770020762; bh=wLsIkUQ80ugHrd+qzKIWtsSm6XESD5tBTskvqZcZ+wQ=; h=From:To:Cc:Subject:Date:From; b=HXJzc/QLrdjsNp7PA3AY2/MCc8uut1TkMU5V/TErBkWHYkLzstoIhTd+LN8ohXwgh wvHFKEmKsVORM9jzK/Cmcb6DTb+JOro/ZGuLPGTKqGRJUDy4EFfhKwLB/0McWUcbf+ GG1PCxQPfWkdN4fLB+F51aTLWtrpAJ1/4Fqteu64EVNFLKh2dkjPfZPFAcfnhj5JEU tmppgWTEj9Hr7HzOJn1KQsbSLTRFUBQhjCZBHLUZpWMvcb+7fbRevo52CcwiKkXAgh o6U96vmk86BKWwEWjjvIo/HZhl2tPXWAdfLECC0cQzydvHSm5Wgu8/WH9AH+JxK698 lCXoXIRXNIoTA== From: Sumit Garg To: linux-arm-msm@vger.kernel.org Cc: andersson@kernel.org, konradybcio@kernel.org, konrad.dybcio@oss.qualcomm.com, robh+dt@kernel.org, abelvesa@kernel.org, mani@kernel.org, linux-kernel@vger.kernel.org, Sumit Garg Subject: [PATCH v2] soc: qcom: ice: Stop probe deferring once ICE isn't detected Date: Mon, 2 Feb 2026 13:55:34 +0530 Message-ID: <20260202082534.121042-1-sumit.garg@kernel.org> X-Mailer: git-send-email 2.51.0 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 Content-Type: text/plain; charset="utf-8" From: Sumit Garg ICE related SCM calls may not be supported in every TZ environment like OP-TEE or a no-TZ environment too. So let's try to stop probe deferring when it's known that ICE feature isn't supported. This problem only came to notice after the inline encryption drivers were enabled in the arm64 defconfig by: commit 5f37788adedd ("arm64: defconfig: Enable SCSI UFS Crypto and Block Inline encryption drivers"). Fixes: 2afbf43a4aec ("soc: qcom: Make the Qualcomm UFS/SDCC ICE a dedicated= driver") Signed-off-by: Sumit Garg --- Changes in v2: - Keep the probe deferring intact but stop it once it's know ICE SCM calls aren't supported by the TZ firmware. drivers/soc/qcom/ice.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/soc/qcom/ice.c b/drivers/soc/qcom/ice.c index b203bc685cad..5a630c9010ee 100644 --- a/drivers/soc/qcom/ice.c +++ b/drivers/soc/qcom/ice.c @@ -559,7 +559,7 @@ static struct qcom_ice *qcom_ice_create(struct device *= dev, =20 if (!qcom_scm_ice_available()) { dev_warn(dev, "ICE SCM interface not found\n"); - return NULL; + return ERR_PTR(-EOPNOTSUPP); } =20 engine =3D devm_kzalloc(dev, sizeof(*engine), GFP_KERNEL); @@ -648,11 +648,14 @@ static struct qcom_ice *of_qcom_ice_get(struct device= *dev) } =20 ice =3D platform_get_drvdata(pdev); - if (!ice) { + if (IS_ERR_OR_NULL(ice)) { dev_err(dev, "Cannot get ice instance from %s\n", dev_name(&pdev->dev)); platform_device_put(pdev); - return ERR_PTR(-EPROBE_DEFER); + if (PTR_ERR(ice) =3D=3D -EOPNOTSUPP) + return NULL; + else + return ERR_PTR(-EPROBE_DEFER); } =20 link =3D device_link_add(dev, &pdev->dev, DL_FLAG_AUTOREMOVE_SUPPLIER); @@ -726,7 +729,7 @@ static int qcom_ice_probe(struct platform_device *pdev) } =20 engine =3D qcom_ice_create(&pdev->dev, base); - if (IS_ERR(engine)) + if (IS_ERR(engine) && PTR_ERR(engine) !=3D -EOPNOTSUPP) return PTR_ERR(engine); =20 platform_set_drvdata(pdev, engine); --=20 2.51.0