From: Adrian Hunter <adrian.hun...@intel.com>

[ Upstream commit 23a185254ace8e63dc4ca36e0315aed9440ae749 ]

mmc_test disables the command queue because none of the tests use the
command queue. However the Reset Test will re-enable it, so disable it in
that case too.

Fixes: 9d4579a85c84 ("mmc: mmc_test: Disable Command Queue while mmc_test is 
used")
Signed-off-by: Adrian Hunter <adrian.hun...@intel.com>
Signed-off-by: Ulf Hansson <ulf.hans...@linaro.org>
Signed-off-by: Sasha Levin <alexander.le...@microsoft.com>
---
 drivers/mmc/core/mmc_test.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/mmc/core/mmc_test.c b/drivers/mmc/core/mmc_test.c
index 478869805b96..789afef66fce 100644
--- a/drivers/mmc/core/mmc_test.c
+++ b/drivers/mmc/core/mmc_test.c
@@ -2328,10 +2328,17 @@ static int mmc_test_reset(struct mmc_test_card *test)
        int err;
 
        err = mmc_hw_reset(host);
-       if (!err)
+       if (!err) {
+               /*
+                * Reset will re-enable the card's command queue, but tests
+                * expect it to be disabled.
+                */
+               if (card->ext_csd.cmdq_en)
+                       mmc_cmdq_disable(card);
                return RESULT_OK;
-       else if (err == -EOPNOTSUPP)
+       } else if (err == -EOPNOTSUPP) {
                return RESULT_UNSUP_HOST;
+       }
 
        return RESULT_FAIL;
 }
-- 
2.14.1

Reply via email to