MMC core provides a checking function that checks if the reset
has happended.  Add a test to use that function.

Signed-off-by: Adrian Hunter <[email protected]>
---
 drivers/mmc/card/mmc_test.c |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/drivers/mmc/card/mmc_test.c b/drivers/mmc/card/mmc_test.c
index 2bf229a..9cdce63 100644
--- a/drivers/mmc/card/mmc_test.c
+++ b/drivers/mmc/card/mmc_test.c
@@ -2328,6 +2328,31 @@ static int mmc_test_profile_sglen_r_nonblock_perf(struct 
mmc_test_card *test)
        return mmc_test_rw_multiple_sg_len(test, &test_data);
 }
 
+/*
+ * eMMC hardware reset.
+ */
+static int mmc_test_hw_reset(struct mmc_test_card *test)
+{
+       struct mmc_card *card = test->card;
+       struct mmc_host *host = card->host;
+       int err;
+
+       err = mmc_hw_reset_check(host);
+       if (!err)
+               return RESULT_OK;
+
+       if (err == -ENOSYS)
+               return RESULT_FAIL;
+
+       if (err != -EOPNOTSUPP)
+               return err;
+
+       if (!mmc_can_reset(card))
+               return RESULT_UNSUP_CARD;
+
+       return RESULT_UNSUP_HOST;
+}
+
 static const struct mmc_test_case mmc_test_cases[] = {
        {
                .name = "Basic write (no data verification)",
@@ -2650,6 +2675,11 @@ static const struct mmc_test_case mmc_test_cases[] = {
                .run = mmc_test_profile_sglen_r_nonblock_perf,
                .cleanup = mmc_test_area_cleanup,
        },
+
+       {
+               .name = "eMMC hardware reset",
+               .run = mmc_test_hw_reset,
+       },
 };
 
 static DEFINE_MUTEX(mmc_test_lock);
-- 
1.7.6

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to