]> git.proxmox.com Git - mirror_ubuntu-kernels.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)
commit6db96e5810e0a6a345b7d78549de7676ae5b2662
tree68ffebfbb396fc42d0ddc168f67411a1b32a2e0a
parent845c939ee22943786a6eb1d13d03c77b19fcc2c8
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