Add a routine to invoke hpi command after invoking host controller abort. Signed-off-by: Venkatraman S <svenkatr@xxxxxx> --- drivers/mmc/core/core.c | 15 +++++++++++++++ include/linux/mmc/core.h | 2 ++ 2 files changed, 17 insertions(+) diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c index 1963305..7230a26 100644 --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c @@ -467,6 +467,21 @@ out: } EXPORT_SYMBOL(mmc_interrupt_hpi); +int mmc_preempt_foreground_request(struct mmc_card *card, + struct mmc_request *req) +{ + int ret; + + ret = mmc_abort_req(card->host, req); + if (ret) + pr_err("%s: Host Abort failed %d\n", + mmc_hostname(card->host), ret); + else + ret = mmc_interrupt_hpi(card); + return ret; +} +EXPORT_SYMBOL(mmc_preempt_foreground_request); + /** * mmc_wait_for_cmd - start a command and wait for completion * @host: MMC host to start command diff --git a/include/linux/mmc/core.h b/include/linux/mmc/core.h index d86144e..e2d55c6 100644 --- a/include/linux/mmc/core.h +++ b/include/linux/mmc/core.h @@ -144,6 +144,8 @@ extern struct mmc_async_req *mmc_start_req(struct mmc_host *, extern int mmc_interrupt_hpi(struct mmc_card *); extern void mmc_wait_for_req(struct mmc_host *, struct mmc_request *); extern int mmc_wait_for_cmd(struct mmc_host *, struct mmc_command *, int); +extern int mmc_preempt_foreground_request(struct mmc_card *card, + struct mmc_request *req); extern int mmc_app_cmd(struct mmc_host *, struct mmc_card *); extern int mmc_wait_for_app_cmd(struct mmc_host *, struct mmc_card *, struct mmc_command *, int); -- 1.7.10.rc2 -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html