summaryrefslogtreecommitdiffstats
path: root/drivers/mmc/host/mmci.h
diff options
context:
space:
mode:
authorLudovic Barre <ludovic.barre@st.com>2019-12-11 14:39:34 +0100
committerUlf Hansson <ulf.hansson@linaro.org>2019-12-18 14:05:31 +0100
commitee157abebc0c8ddb1de9c7cb2b8d8a06c69ce17d (patch)
treebb4ac0c712c06d5586394ebe9b485f62e8880cd5 /drivers/mmc/host/mmci.h
parentd0052ad90e712aaa76190e05fc1b0a8acb3b449e (diff)
downloadlinux-ee157abebc0c8ddb1de9c7cb2b8d8a06c69ce17d.tar.bz2
mmc: mmci: add threaded irq to abort DPSM of non-functional state
The stm32_sdmmc variant has build-in support for datatimeout for R1B requests. If a corresponding IRQ is raised, this triggers the DPSM to stay busy and remains in a non-functional state. Only a reset can bring it back to a functional state. Because a reset must be issued from non-atomic context, let's defer this to be managed from a threaded IRQ handler. Besides the reset, the threaded handler also calls mmc_request_done(), to finally complete the request. Signed-off-by: Ludovic Barre <ludovic.barre@st.com> Link: https://lore.kernel.org/r/20191211133934.16932-1-ludovic.Barre@st.com [Ulf: A few minor updates to the changelog/comments] Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers/mmc/host/mmci.h')
-rw-r--r--drivers/mmc/host/mmci.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/mmc/host/mmci.h b/drivers/mmc/host/mmci.h
index 12d4ed8af88a..be6cd1df2bf3 100644
--- a/drivers/mmc/host/mmci.h
+++ b/drivers/mmc/host/mmci.h
@@ -411,6 +411,7 @@ struct mmci_host {
struct timer_list timer;
unsigned int oldstat;
+ u32 irq_action;
/* pio stuff */
struct sg_mapping_iter sg_miter;