diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c index 120e4577b678..50b8a4bda7b2 100644 --- a/drivers/mmc/card/block.c +++ b/drivers/mmc/card/block.c @@ -3002,18 +3002,19 @@ static void mmc_blk_cmdq_shutdown(struct mmc_queue *mq) } /* disable CQ mode in card */ - err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, - EXT_CSD_CMDQ, 0, - card->ext_csd.generic_cmd6_time); - if (err) { - pr_err("%s: failed to switch card to legacy mode: %d\n", - __func__, err); - goto out; - } else { + if (mmc_card_cmdq(card)) { + err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, + EXT_CSD_CMDQ, 0, + card->ext_csd.generic_cmd6_time); + if (err) { + pr_err("%s: failed to switch card to legacy mode: %d\n", + __func__, err); + goto out; + } mmc_card_clr_cmdq(card); - host->cmdq_ops->disable(host, false); - host->card->cmdq_init = false; } + host->cmdq_ops->disable(host, false); + host->card->cmdq_init = false; out: mmc_host_clk_release(host); mmc_put_card(card);