aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mmc
diff options
context:
space:
mode:
authorJames Hogan <james.hogan@imgtec.com>2011-06-24 08:55:55 -0400
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 55d9909c7abd..dea48475c436 100644
--- a/include/linux/mmc/dw_mmc.h
+++ b/include/linux/mmc/dw_mmc.h
@@ -131,7 +131,7 @@ struct dw_mci {
131 u32 stop_cmdr; 131 u32 stop_cmdr;
132 u32 dir_status; 132 u32 dir_status;
133 struct tasklet_struct tasklet; 133 struct tasklet_struct tasklet;
134 struct tasklet_struct card_tasklet; 134 struct work_struct card_work;
135 unsigned long pending_events; 135 unsigned long pending_events;
136 unsigned long completed_events; 136 unsigned long completed_events;
137 enum dw_mci_state state; 137 enum dw_mci_state state;