diff options
| author | Seungwon Jeon <tgih.jun@samsung.com> | 2013-08-30 11:14:05 -0400 |
|---|---|---|
| committer | Chris Ball <cjb@laptop.org> | 2013-09-25 21:35:40 -0400 |
| commit | 90c2143a8f6d0cd1dbae1ea32fcd1befb81e4b0d (patch) | |
| tree | 719fb73b4dd807f0aa673207ed62cbd170d2628d /include/linux | |
| parent | 71abb1339436160b6ab0ae2f816a4046c7328f28 (diff) | |
mmc: dw_mmc: guarantee stop-abort cmd in data errors
In error cases, DTO interrupt may or may not be generated depending
on remained data. Stop/Abort command ensures DTO generation for that
situation. Currently if 'stop' field of data is empty, there is no
stop/abort command. So, it could hang waiting DTO. This change
reinforces these cases.
Signed-off-by: Seungwon Jeon <tgih.jun@samsung.com>
Tested-by: Alim Akhtar <alim.akhtar@samsung.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/mmc/dw_mmc.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/mmc/dw_mmc.h b/include/linux/mmc/dw_mmc.h index a829f7ee28c8..6ce7d2cd3c7a 100644 --- a/include/linux/mmc/dw_mmc.h +++ b/include/linux/mmc/dw_mmc.h | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | #define LINUX_MMC_DW_MMC_H | 15 | #define LINUX_MMC_DW_MMC_H |
| 16 | 16 | ||
| 17 | #include <linux/scatterlist.h> | 17 | #include <linux/scatterlist.h> |
| 18 | #include <linux/mmc/core.h> | ||
| 18 | 19 | ||
| 19 | #define MAX_MCI_SLOTS 2 | 20 | #define MAX_MCI_SLOTS 2 |
| 20 | 21 | ||
| @@ -129,6 +130,7 @@ struct dw_mci { | |||
| 129 | struct mmc_request *mrq; | 130 | struct mmc_request *mrq; |
| 130 | struct mmc_command *cmd; | 131 | struct mmc_command *cmd; |
| 131 | struct mmc_data *data; | 132 | struct mmc_data *data; |
| 133 | struct mmc_command stop_abort; | ||
| 132 | unsigned int prev_blksz; | 134 | unsigned int prev_blksz; |
| 133 | unsigned char timing; | 135 | unsigned char timing; |
| 134 | struct workqueue_struct *card_workqueue; | 136 | struct workqueue_struct *card_workqueue; |
