|
@@ -26,6 +26,7 @@
|
|
|
#include <linux/stat.h>
|
|
|
|
|
|
#include <linux/mmc/host.h>
|
|
|
+#include <linux/mmc/sdio.h>
|
|
|
|
|
|
#include <mach/atmel-mci.h>
|
|
|
#include <linux/atmel-mci.h>
|
|
@@ -532,12 +533,17 @@ static u32 atmci_prepare_command(struct mmc_host *mmc,
|
|
|
data = cmd->data;
|
|
|
if (data) {
|
|
|
cmdr |= MCI_CMDR_START_XFER;
|
|
|
- if (data->flags & MMC_DATA_STREAM)
|
|
|
- cmdr |= MCI_CMDR_STREAM;
|
|
|
- else if (data->blocks > 1)
|
|
|
- cmdr |= MCI_CMDR_MULTI_BLOCK;
|
|
|
- else
|
|
|
- cmdr |= MCI_CMDR_BLOCK;
|
|
|
+
|
|
|
+ if (cmd->opcode == SD_IO_RW_EXTENDED) {
|
|
|
+ cmdr |= MCI_CMDR_SDIO_BLOCK;
|
|
|
+ } else {
|
|
|
+ if (data->flags & MMC_DATA_STREAM)
|
|
|
+ cmdr |= MCI_CMDR_STREAM;
|
|
|
+ else if (data->blocks > 1)
|
|
|
+ cmdr |= MCI_CMDR_MULTI_BLOCK;
|
|
|
+ else
|
|
|
+ cmdr |= MCI_CMDR_BLOCK;
|
|
|
+ }
|
|
|
|
|
|
if (data->flags & MMC_DATA_READ)
|
|
|
cmdr |= MCI_CMDR_TRDIR_READ;
|