summaryrefslogtreecommitdiffstats
path: root/sys/dev/sdmmc
diff options
context:
space:
mode:
authorpatrick <patrick@openbsd.org>2018-05-25 00:04:11 +0000
committerpatrick <patrick@openbsd.org>2018-05-25 00:04:11 +0000
commit402f30ee6af40ed77fa536e14bc97a891a41ed29 (patch)
tree2c7eb07439ac133abdcb7d4106664a51702ddcd5 /sys/dev/sdmmc
parentthree forgotten s/-literal/-unfilled/ (diff)
downloadwireguard-openbsd-402f30ee6af40ed77fa536e14bc97a891a41ed29.tar.xz
wireguard-openbsd-402f30ee6af40ed77fa536e14bc97a891a41ed29.zip
For SDIO multi-blocks we must not use the AUTO CMD12 feature,
this is only for memory card read/writes. ok kettenis@
Diffstat (limited to 'sys/dev/sdmmc')
-rw-r--r--sys/dev/sdmmc/sdhc.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/dev/sdmmc/sdhc.c b/sys/dev/sdmmc/sdhc.c
index bfb3596bcc3..b73368cb0c5 100644
--- a/sys/dev/sdmmc/sdhc.c
+++ b/sys/dev/sdmmc/sdhc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sdhc.c,v 1.58 2018/03/20 04:18:40 jmatthew Exp $ */
+/* $OpenBSD: sdhc.c,v 1.59 2018/05/25 00:04:12 patrick Exp $ */
/*
* Copyright (c) 2006 Uwe Stuehler <uwe@openbsd.org>
@@ -33,6 +33,7 @@
#include <dev/sdmmc/sdmmcchip.h>
#include <dev/sdmmc/sdmmcreg.h>
#include <dev/sdmmc/sdmmcvar.h>
+#include <dev/sdmmc/sdmmc_ioreg.h>
#define SDHC_COMMAND_TIMEOUT hz
#define SDHC_BUFFER_TIMEOUT hz
@@ -849,8 +850,8 @@ sdhc_start_command(struct sdhc_host *hp, struct sdmmc_command *cmd)
mode |= SDHC_BLOCK_COUNT_ENABLE;
if (blkcount > 1) {
mode |= SDHC_MULTI_BLOCK_MODE;
- /* XXX only for memory commands? */
- mode |= SDHC_AUTO_CMD12_ENABLE;
+ if (cmd->c_opcode != SD_IO_RW_EXTENDED)
+ mode |= SDHC_AUTO_CMD12_ENABLE;
}
}
if (cmd->c_dmamap && cmd->c_datalen > 0 &&