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. Any comments are welcome. Thanks. 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 | 65 ++++++++++++++++++++++++++++++++----------- drivers/mmc/host/sdhci.h | 4 ++- include/linux/mmc/host.h | 3 ++ 6 files changed, 103 insertions(+), 22 deletions(-) -- 1.9.1