aboutsummaryrefslogtreecommitdiff
path: root/include/linux/mmc
diff options
context:
space:
mode:
authorJames Hogan <james.hogan@imgtec.com>2011-06-24 13:55:55 +0100
committerChris Ball <cjb@laptop.org>2011-07-20 17:20:58 -0400
commit1791b13ea4d97a6a7c162edd54485e932ad92f1b (patch)
tree0012ece1a9b0bf403f759d5f552fc34c6d8c82d1 /include/linux/mmc
parent7456caae37396fc1bc6f8e9461d07664b8c2f280 (diff)
mmc: dw_mmc: convert card tasklet to workqueue
Convert the card insert/remove tasklet to a workqueue, and call the setpower platform specific callback without the spinlock held. This means neither of the setpower or get_cd callbacks are called from atomic context which allows them to sleep. Signed-off-by: James Hogan <james.hogan@imgtec.com> Acked-by: Will Newton <will.newton@imgtec.com> Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'include/linux/mmc')
-rw-r--r--include/linux/mmc/dw_mmc.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/mmc/dw_mmc.h b/include/linux/mmc/dw_mmc.h
index 55d9909c7ab..dea48475c43 100644
--- a/include/linux/mmc/dw_mmc.h
+++ b/include/linux/mmc/dw_mmc.h
@@ -131,7 +131,7 @@ struct dw_mci {
u32 stop_cmdr;
u32 dir_status;
struct tasklet_struct tasklet;
- struct tasklet_struct card_tasklet;
+ struct work_struct card_work;
unsigned long pending_events;
unsigned long completed_events;
enum dw_mci_state state;