[PATCH v2 0/3] iommu: Enable non-strict DMA on QCom SD/MMC

From: Douglas Anderson
Date: Thu Jun 24 2021 - 13:18:28 EST



The goal of this patch series is to get better SD/MMC performance on
Qualcomm eMMC controllers and in generally nudge us forward on the
path of allowing some devices to be in strict mode and others to be in
non-strict mode. This patch series doesn't save the world but
hopefully at least moves us in the right direction while accomplishing
something useful. Specifically:
- No attempt is made to touch the PCI subsystem or cleanup the way
that it requests strict vs. non-strict.
- No fully generic mechanism is come up with that makes it super easy
for everyone to be in non-strict mode.

This patch conflicts with a few other patch series that are in
flight. I've tried to call them out "after the cut" in patches. I
assume other in flight patches will land before this one, so I'd
expect to send a rebased version when that happens, assuming that this
series isn't NAKed into the ground.

Changes in v2:
- No longer based on changes adding strictness to "struct device"
- Updated kernel-parameters docs.
- Patch moving check for strictness in arm-smmu new for v2.
- Now accomplish the goal by putting rules in the IOMMU driver.
- Reworded commit message to clarify things pointed out by Greg.

Douglas Anderson (3):
iommu: Add per-domain strictness and combine with the global default
iommu/arm-smmu: Check for strictness after calling
impl->init_context()
mmc: sdhci-msm: Request non-strict IOMMU mode

.../admin-guide/kernel-parameters.txt | 5 ++-
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 19 ++++++++
drivers/iommu/arm/arm-smmu/arm-smmu.c | 6 +--
drivers/iommu/iommu.c | 43 +++++++++++++++----
include/linux/iommu.h | 7 +++
5 files changed, 67 insertions(+), 13 deletions(-)

--
2.32.0.93.g670b81a890-goog