Index: sys/arch/arm/sunxi/sunxi_mmc.c
===================================================================
RCS file: /cvsroot/src/sys/arch/arm/sunxi/sunxi_mmc.c,v
retrieving revision 1.48
diff -p -u -r1.48 sunxi_mmc.c
--- sys/arch/arm/sunxi/sunxi_mmc.c	7 Aug 2021 16:18:45 -0000	1.48
+++ sys/arch/arm/sunxi/sunxi_mmc.c	10 Dec 2025 07:43:59 -0000
@@ -1160,7 +1160,7 @@ sunxi_mmc_exec_command(sdmmc_chipset_han
 		if (nblks == 0 || (cmd->c_datalen % cmd->c_blklen) != 0)
 			++nblks;
 
-		if (nblks > 1) {
+		if (nblks > 1 && !ISSET(cmd->c_flags, SCF_NO_STOP)) {
 			cmdval |= SUNXI_MMC_CMD_SEND_AUTO_STOP;
 			imask |= SUNXI_MMC_INT_AUTO_CMD_DONE;
 		} else {
Index: sys/dev/ic/dwc_mmc.c
===================================================================
RCS file: /cvsroot/src/sys/dev/ic/dwc_mmc.c,v
retrieving revision 1.31
diff -p -u -r1.31 dwc_mmc.c
--- sys/dev/ic/dwc_mmc.c	9 Feb 2024 17:16:42 -0000	1.31
+++ sys/dev/ic/dwc_mmc.c	10 Dec 2025 07:44:00 -0000
@@ -668,7 +668,7 @@ dwc_mmc_exec_command(sdmmc_chipset_handl
 		if (nblks == 0 || (cmd->c_datalen % cmd->c_blklen) != 0)
 			++nblks;
 
-		if (nblks > 1 && cmd->c_opcode != SD_IO_RW_EXTENDED) {
+		if (nblks > 1 && !ISSET(cmd->c_flags, SCF_NO_STOP)) {
 			cmdval |= DWC_MMC_CMD_SEND_AUTO_STOP;
 			imask |= DWC_MMC_INT_AUTO_CMD_DONE;
 		} else {
Index: sys/dev/sdmmc/sdhc.c
===================================================================
RCS file: /cvsroot/src/sys/dev/sdmmc/sdhc.c,v
retrieving revision 1.123
diff -p -u -r1.123 sdhc.c
--- sys/dev/sdmmc/sdhc.c	6 Dec 2025 16:00:23 -0000	1.123
+++ sys/dev/sdmmc/sdhc.c	10 Dec 2025 07:44:00 -0000
@@ -43,7 +43,6 @@ __KERNEL_RCSID(0, "$NetBSD: sdhc.c,v 1.1
 #include <dev/sdmmc/sdmmcchip.h>
 #include <dev/sdmmc/sdmmcreg.h>
 #include <dev/sdmmc/sdmmcvar.h>
-#include <dev/sdmmc/sdmmc_ioreg.h>
 
 #ifdef SDHC_DEBUG
 int sdhcdebug = 1;
@@ -1753,8 +1752,7 @@ sdhc_start_command(struct sdhc_host *hp,
 		mode |= SDHC_BLOCK_COUNT_ENABLE;
 		if (blkcount > 1) {
 			mode |= SDHC_MULTI_BLOCK_MODE;
-			if (cmd->c_opcode != SD_IO_RW_EXTENDED
-			    && !ISSET(sc->sc_flags, SDHC_FLAG_NO_AUTO_STOP)
+			if (!ISSET(sc->sc_flags, SDHC_FLAG_NO_AUTO_STOP)
 			    && !ISSET(cmd->c_flags, SCF_NO_STOP))
 				mode |= SDHC_AUTO_CMD12_ENABLE;
 		}
Index: sys/dev/sdmmc/sdmmc_io.c
===================================================================
RCS file: /cvsroot/src/sys/dev/sdmmc/sdmmc_io.c,v
retrieving revision 1.22
diff -p -u -r1.22 sdmmc_io.c
--- sys/dev/sdmmc/sdmmc_io.c	6 Dec 2025 16:03:39 -0000	1.22
+++ sys/dev/sdmmc/sdmmc_io.c	10 Dec 2025 07:44:00 -0000
@@ -414,7 +414,7 @@ sdmmc_io_rw_extended(struct sdmmc_softc 
 	memset(&cmd, 0, sizeof cmd);
 	cmd.c_opcode = SD_IO_RW_EXTENDED;
 	cmd.c_arg = arg;
-	cmd.c_flags = SCF_CMD_ADTC | SCF_RSP_R5;
+	cmd.c_flags = SCF_CMD_ADTC | SCF_RSP_R5 | SCF_NO_STOP;
 	cmd.c_data = datap;
 	if (ISSET(arg, SD_ARG_CMD53_BLOCK_MODE)) {
 		cmd.c_datalen = len * sf->blklen;
