Re: [PATCH] mmc: sdhci-msm: Add quirk to disable CQE for ICE legacy mode
From: Eric Biggers
Date: Sun Dec 28 2025 - 15:21:10 EST
On Wed, Dec 24, 2025 at 03:40:50PM +0530, Md Sadre Alam wrote:
> Some hosts require Inline Crypto Engine (ICE) to operate in legacy mode
> instead of Command Queue Engine (CQE) mode for platform-specific
> requirements or compatibility reasons. Introduce a host-level quirk
> `host_disable_cqe` to forcefully disable CQE negotiation and allow ICE
> to function through the legacy request path.
>
> When the device tree omits the "supports-cqe" property, the driver sets
> `host_disable_cqe = true` and avoids enabling MMC_CAP2_CQE during card
> initialization. This ensures that even CQE-capable hardware falls back
> to legacy SDHCI request handling. A minimal `cqhci_disable_ops` is
> provided with `.cqe_enable = cqhci_host_disable` returning -EINVAL to
> force the fallback. Other ops are left NULL for safe defaults.
>
> For builds without CONFIG_MMC_CRYPTO, the driver uses standard
> sdhci_add_host() to avoid unnecessary CQE infrastructure initialization.
>
> This allows platforms to forcefully opt out of CQE usage and ensure ICE
> operates reliably in legacy mode, providing stable crypto operations
> without command queuing complexity.
>
> Signed-off-by: Md Sadre Alam <quic_mdalam@xxxxxxxxxxx>
I'm confused. If CQE isn't supported by the hardware, surely it would
make more sense for the driver to not advertise the host as being
CQE-capable at all? This patch seems to introduce an ambiguous middle
ground, where the host is CQE-capable but not really.
- Eric