|
@@ -346,10 +346,6 @@ static void mmc_davinci_start_command(struct mmc_davinci_host *host,
|
|
if (cmd->data)
|
|
if (cmd->data)
|
|
cmd_reg |= MMCCMD_WDATX;
|
|
cmd_reg |= MMCCMD_WDATX;
|
|
|
|
|
|
- /* Setting whether stream or block transfer */
|
|
|
|
- if (cmd->flags & MMC_DATA_STREAM)
|
|
|
|
- cmd_reg |= MMCCMD_STRMTP;
|
|
|
|
-
|
|
|
|
/* Setting whether data read or write */
|
|
/* Setting whether data read or write */
|
|
if (host->data_dir == DAVINCI_MMC_DATADIR_WRITE)
|
|
if (host->data_dir == DAVINCI_MMC_DATADIR_WRITE)
|
|
cmd_reg |= MMCCMD_DTRW;
|
|
cmd_reg |= MMCCMD_DTRW;
|
|
@@ -568,8 +564,7 @@ mmc_davinci_prepare_data(struct mmc_davinci_host *host, struct mmc_request *req)
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
- dev_dbg(mmc_dev(host->mmc), "%s %s, %d blocks of %d bytes\n",
|
|
|
|
- (data->flags & MMC_DATA_STREAM) ? "stream" : "block",
|
|
|
|
|
|
+ dev_dbg(mmc_dev(host->mmc), "%s, %d blocks of %d bytes\n",
|
|
(data->flags & MMC_DATA_WRITE) ? "write" : "read",
|
|
(data->flags & MMC_DATA_WRITE) ? "write" : "read",
|
|
data->blocks, data->blksz);
|
|
data->blocks, data->blksz);
|
|
dev_dbg(mmc_dev(host->mmc), " DTO %d cycles + %d ns\n",
|
|
dev_dbg(mmc_dev(host->mmc), " DTO %d cycles + %d ns\n",
|
|
@@ -584,22 +579,18 @@ mmc_davinci_prepare_data(struct mmc_davinci_host *host, struct mmc_request *req)
|
|
writel(data->blksz, host->base + DAVINCI_MMCBLEN);
|
|
writel(data->blksz, host->base + DAVINCI_MMCBLEN);
|
|
|
|
|
|
/* Configure the FIFO */
|
|
/* Configure the FIFO */
|
|
- switch (data->flags & MMC_DATA_WRITE) {
|
|
|
|
- case MMC_DATA_WRITE:
|
|
|
|
|
|
+ if (data->flags & MMC_DATA_WRITE) {
|
|
host->data_dir = DAVINCI_MMC_DATADIR_WRITE;
|
|
host->data_dir = DAVINCI_MMC_DATADIR_WRITE;
|
|
writel(fifo_lev | MMCFIFOCTL_FIFODIR_WR | MMCFIFOCTL_FIFORST,
|
|
writel(fifo_lev | MMCFIFOCTL_FIFODIR_WR | MMCFIFOCTL_FIFORST,
|
|
host->base + DAVINCI_MMCFIFOCTL);
|
|
host->base + DAVINCI_MMCFIFOCTL);
|
|
writel(fifo_lev | MMCFIFOCTL_FIFODIR_WR,
|
|
writel(fifo_lev | MMCFIFOCTL_FIFODIR_WR,
|
|
host->base + DAVINCI_MMCFIFOCTL);
|
|
host->base + DAVINCI_MMCFIFOCTL);
|
|
- break;
|
|
|
|
-
|
|
|
|
- default:
|
|
|
|
|
|
+ } else {
|
|
host->data_dir = DAVINCI_MMC_DATADIR_READ;
|
|
host->data_dir = DAVINCI_MMC_DATADIR_READ;
|
|
writel(fifo_lev | MMCFIFOCTL_FIFODIR_RD | MMCFIFOCTL_FIFORST,
|
|
writel(fifo_lev | MMCFIFOCTL_FIFODIR_RD | MMCFIFOCTL_FIFORST,
|
|
host->base + DAVINCI_MMCFIFOCTL);
|
|
host->base + DAVINCI_MMCFIFOCTL);
|
|
writel(fifo_lev | MMCFIFOCTL_FIFODIR_RD,
|
|
writel(fifo_lev | MMCFIFOCTL_FIFODIR_RD,
|
|
host->base + DAVINCI_MMCFIFOCTL);
|
|
host->base + DAVINCI_MMCFIFOCTL);
|
|
- break;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
host->buffer = NULL;
|
|
host->buffer = NULL;
|