/*
         * Need to send CMD12 if -
-        * a) open-ended multiblock transfer (no CMD23)
+        * a) open-ended multiblock transfer not using auto CMD12 (no CMD23)
         * b) error in multiblock transfer
         */
        if (data->stop &&
-           (data->error ||
-            !data->mrq->sbc)) {
+           ((!data->mrq->sbc && !sdhci_auto_cmd12(host, data->mrq)) ||
+            data->error)) {
                /*
                 * 'cap_cmd_during_tfr' request must not use the command line
                 * after mmc_command_done() has been called. It is upper layer's
 
        sdhci_led_activate(host);
 
-       /*
-        * Ensure we don't send the STOP for non-SET_BLOCK_COUNTED
-        * requests if Auto-CMD12 is enabled.
-        */
-       if (sdhci_auto_cmd12(host, mrq)) {
-               if (mrq->stop) {
-                       mrq->data->stop = NULL;
-                       mrq->stop = NULL;
-               }
-       }
-
        if (!present || host->flags & SDHCI_DEVICE_DEAD) {
                mrq->cmd->error = -ENOMEDIUM;
                sdhci_finish_mrq(host, mrq);