]> git.baikalelectronics.ru Git - kernel.git/commit
mmc: host: Introduce the request_atomic() for the host
authorBaolin Wang <baolin.wang7@gmail.com>
Mon, 13 Apr 2020 02:46:03 +0000 (10:46 +0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Thu, 28 May 2020 09:20:59 +0000 (11:20 +0200)
commit1a502eb27088e02ba0f34e0be9fb1c543709330b
tree68ffebfbb396fc42d0ddc168f67411a1b32a2e0a
parent1c3a585de886ac8ab3c10119c26e7906c18f9e12
mmc: host: Introduce the request_atomic() for the host

The SD host controller can process one request in the atomic context if
the card is nonremovable, which means we can submit next request in the
irq hard handler when using the MMC host software queue to reduce the
latency. Thus this patch adds a new API request_atomic() for the host
controller, as well as adding support for host software queue to submit
a request by the new request_atomic() API.

Moreover there is an unusual case that the card is busy when trying to
send a command, and we can not polling the card status in interrupt
context by using request_atomic() to dispatch requests. Thus we should
queue a work to try again in the non-atomic context in case the host
releases the busy signal later.

Suggested-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Baolin Wang <baolin.wang7@gmail.com>
Link: https://lore.kernel.org/r/a344e27e506cb2329073cbd5cf65e15cc3cbeba9.1586744073.git.baolin.wang7@gmail.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/mmc_hsq.c
drivers/mmc/host/mmc_hsq.h
include/linux/mmc/host.h