[PATCH v5 0/3] Introduce the request_atomic() for the host

From: Baolin Wang
Date: Sun Apr 12 2020 - 22:47:01 EST


This patch set introduces a new request_atomic() interface for the
MMC host controller, which is used to submit a request to host in
the atomic context, such as in the irq hard handler, to reduce the
request latency.

Note, this patch set is based on Adrian's patch set:
https://www.spinics.net/lists/linux-mmc/msg58529.html

Any comments are welcome. Thanks.

Changes from v4:
- Remove redundant checking when warning the return value of request_atomic().
- Add acked tag from Adrian for patch 1.
- Re-implement the request_atomic() based on the Adrian's patch set.

Changes from v3:
- Move patch 3 of V3 patch set into patch 1.
- Add a warning for unexpected return value of request_atomic().
- Remove redundant checking of ops->request().

Changes from v2:
- Return busy flag if encountering unusual card busy state
instead of polling in interrupt context.
- Add a work for HSQ to try again in non-atomic context if the host
returns busy flag.

Changes from v1:
- Re-split the changes to make them more clear suggested by Ulf.
- Factor out the auto CMD23 checking into a separate function.

Baolin Wang (3):
mmc: host: Introduce the request_atomic() for the host
mmc: host: sdhci: Implement the request_atomic() API
mmc: host: sdhci-sprd: Implement the request_atomic() API

drivers/mmc/host/mmc_hsq.c | 29 ++++++++++++++++++++++++++++-
drivers/mmc/host/mmc_hsq.h | 1 +
drivers/mmc/host/sdhci-sprd.c | 23 ++++++++++++++++++++---
drivers/mmc/host/sdhci.c | 34 ++++++++++++++++++++++++++++++++++
drivers/mmc/host/sdhci.h | 1 +
include/linux/mmc/host.h | 3 +++
6 files changed, 87 insertions(+), 4 deletions(-)

--
2.17.1