diff options
author | 2018-05-25 00:04:11 +0000 | |
---|---|---|
committer | 2018-05-25 00:04:11 +0000 | |
commit | 402f30ee6af40ed77fa536e14bc97a891a41ed29 (patch) | |
tree | 2c7eb07439ac133abdcb7d4106664a51702ddcd5 /sys/dev/sdmmc | |
parent | three forgotten s/-literal/-unfilled/ (diff) | |
download | wireguard-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.c | 7 |
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 && |