From: 柯飞雄 <kfx@rock-chips.com> Date: Fri, 28 May 2010 15:38:51 +0000 (+0000) Subject: mod sdmmc X-Git-Tag: firefly_0821_release~11445 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=9baec8d577446d861db670c07063ffbc04a9ac9d;p=firefly-linux-kernel-4.4.55.git mod sdmmc --- diff --git a/drivers/mmc/host/rk2818-sdmmc.c b/drivers/mmc/host/rk2818-sdmmc.c index b2ed1ed97cab..21dd06453217 100644 --- a/drivers/mmc/host/rk2818-sdmmc.c +++ b/drivers/mmc/host/rk2818-sdmmc.c @@ -370,7 +370,7 @@ static int rk2818_sdmmc_submit_data_dma(struct rk2818_sdmmc_host *host, struct m { struct scatterlist *sg; unsigned int i; - + dev_dbg(host->dev, "sg_len=%d\n", data->sg_len); host->dma_chn = -1; if(host->use_dma == 0) return -ENOSYS; @@ -422,7 +422,7 @@ static void rk2818_sdmmc_submit_data(struct rk2818_sdmmc_host *host, struct mmc_ host->dir_status = RK2818_MCI_RECV_STATUS; else host->dir_status = RK2818_MCI_SEND_STATUS; - writel(readl(host->regs + SDMMC_CTRL) | SDMMC_CTRL_DMA_ENABLE, + writel(readl(host->regs + SDMMC_CTRL) & ~SDMMC_CTRL_DMA_ENABLE, host->regs +SDMMC_CTRL); } } @@ -753,13 +753,7 @@ static void rk2818_sdmmc_tasklet_func(unsigned long priv) if (!rk2818_sdmmc_test_and_clear_pending(host, EVENT_XFER_COMPLETE)) - { - if(host-> no_detect == 1 && - host->dir_status == RK2818_MCI_RECV_STATUS && - host->dma_chn == -1) - rk2818_sdmmc_read_data_pio(host); break; - } rk2818_sdmmc_set_completed(host, EVENT_XFER_COMPLETE); prev_state = state = STATE_DATA_BUSY; /* fall through */ @@ -839,7 +833,7 @@ inline static void rk2818_sdmmc_push_data(struct rk2818_sdmmc_host *host, void * dev_dbg(host->dev, "push data(cnt=%d)\n",cnt); if (cnt % 4 != 0) - printk("error not align 4\n"); + dev_info(host->dev, "error not align 4\n"); cnt = cnt >> 2; while (cnt > 0) { @@ -855,7 +849,7 @@ inline static void rk2818_sdmmc_pull_data(struct rk2818_sdmmc_host *host, void * dev_dbg(host->dev, "pull data(cnt=%d)\n",cnt); if (cnt % 4 != 0) - printk("error not align 4\n"); + dev_info(host->dev, "error not align 4\n"); cnt = cnt >> 2; while (cnt > 0) { *pData++ = readl(host->regs + SDMMC_DATA);