diff options
author | James Hogan <james.hogan@imgtec.com> | 2011-06-24 16:55:55 +0400 |
---|---|---|
committer | Chris Ball <cjb@laptop.org> | 2011-07-21 01:20:58 +0400 |
commit | 1791b13ea4d97a6a7c162edd54485e932ad92f1b (patch) | |
tree | 0012ece1a9b0bf403f759d5f552fc34c6d8c82d1 /include/linux/mmc/dw_mmc.h | |
parent | 7456caae37396fc1bc6f8e9461d07664b8c2f280 (diff) | |
download | linux-1791b13ea4d97a6a7c162edd54485e932ad92f1b.tar.xz |
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/dw_mmc.h')
-rw-r--r-- | include/linux/mmc/dw_mmc.h | 2 |
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 { 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; |