mmc: omap_hsmmc: fix cmd23 multiblock read/write
authorBalaji T K <balajitk@ti.com>
Fri, 9 May 2014 16:46:52 +0000 (22:16 +0530)
committerChris Ball <chris@printf.net>
Thu, 22 May 2014 12:40:43 +0000 (08:40 -0400)
Check for set block count command fails always since host->cmd is set
to NULL in the same function incorrectly. Correct host->cmd usage properly.

Signed-off-by: Balaji T K <balajitk@ti.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <chris@printf.net>
drivers/mmc/host/omap_hsmmc.c

index 140425c215ad67e900f5d22d9bb10b7cb51f123f..cba71d69a79c07996383fdafde03e31a5a204535 100644 (file)
@@ -920,16 +920,17 @@ omap_hsmmc_xfer_done(struct omap_hsmmc_host *host, struct mmc_data *data)
 static void
 omap_hsmmc_cmd_done(struct omap_hsmmc_host *host, struct mmc_command *cmd)
 {
-       host->cmd = NULL;
-
        if (host->mrq->sbc && (host->cmd == host->mrq->sbc) &&
            !host->mrq->sbc->error && !(host->flags & AUTO_CMD23)) {
+               host->cmd = NULL;
                omap_hsmmc_start_dma_transfer(host);
                omap_hsmmc_start_command(host, host->mrq->cmd,
                                                host->mrq->data);
                return;
        }
 
+       host->cmd = NULL;
+
        if (cmd->flags & MMC_RSP_PRESENT) {
                if (cmd->flags & MMC_RSP_136) {
                        /* response type 2 */