Loading drivers/mmc/mmci.c +8 −4 Original line number Original line Diff line number Diff line Loading @@ -69,12 +69,13 @@ static void mmci_start_data(struct mmci_host *host, struct mmc_data *data) unsigned int datactrl, timeout, irqmask; unsigned int datactrl, timeout, irqmask; unsigned long long clks; unsigned long long clks; void __iomem *base; void __iomem *base; int blksz_bits; DBG(host, "blksz %04x blks %04x flags %08x\n", DBG(host, "blksz %04x blks %04x flags %08x\n", 1 << data->blksz_bits, data->blocks, data->flags); data->blksz, data->blocks, data->flags); host->data = data; host->data = data; host->size = data->blocks << data->blksz_bits; host->size = data->blksz; host->data_xfered = 0; host->data_xfered = 0; mmci_init_sg(host, data); mmci_init_sg(host, data); Loading @@ -88,7 +89,10 @@ static void mmci_start_data(struct mmci_host *host, struct mmc_data *data) writel(timeout, base + MMCIDATATIMER); writel(timeout, base + MMCIDATATIMER); writel(host->size, base + MMCIDATALENGTH); writel(host->size, base + MMCIDATALENGTH); datactrl = MCI_DPSM_ENABLE | data->blksz_bits << 4; blksz_bits = ffs(data->blksz) - 1; BUG_ON(1 << blksz_bits != data->blksz); datactrl = MCI_DPSM_ENABLE | blksz_bits << 4; if (data->flags & MMC_DATA_READ) { if (data->flags & MMC_DATA_READ) { datactrl |= MCI_DPSM_DIRECTION; datactrl |= MCI_DPSM_DIRECTION; irqmask = MCI_RXFIFOHALFFULLMASK; irqmask = MCI_RXFIFOHALFFULLMASK; Loading Loading @@ -145,7 +149,7 @@ mmci_data_irq(struct mmci_host *host, struct mmc_data *data, unsigned int status) unsigned int status) { { if (status & MCI_DATABLOCKEND) { if (status & MCI_DATABLOCKEND) { host->data_xfered += 1 << data->blksz_bits; host->data_xfered += data->blksz; } } if (status & (MCI_DATACRCFAIL|MCI_DATATIMEOUT|MCI_TXUNDERRUN|MCI_RXOVERRUN)) { if (status & (MCI_DATACRCFAIL|MCI_DATATIMEOUT|MCI_TXUNDERRUN|MCI_RXOVERRUN)) { if (status & MCI_DATACRCFAIL) if (status & MCI_DATACRCFAIL) Loading Loading
drivers/mmc/mmci.c +8 −4 Original line number Original line Diff line number Diff line Loading @@ -69,12 +69,13 @@ static void mmci_start_data(struct mmci_host *host, struct mmc_data *data) unsigned int datactrl, timeout, irqmask; unsigned int datactrl, timeout, irqmask; unsigned long long clks; unsigned long long clks; void __iomem *base; void __iomem *base; int blksz_bits; DBG(host, "blksz %04x blks %04x flags %08x\n", DBG(host, "blksz %04x blks %04x flags %08x\n", 1 << data->blksz_bits, data->blocks, data->flags); data->blksz, data->blocks, data->flags); host->data = data; host->data = data; host->size = data->blocks << data->blksz_bits; host->size = data->blksz; host->data_xfered = 0; host->data_xfered = 0; mmci_init_sg(host, data); mmci_init_sg(host, data); Loading @@ -88,7 +89,10 @@ static void mmci_start_data(struct mmci_host *host, struct mmc_data *data) writel(timeout, base + MMCIDATATIMER); writel(timeout, base + MMCIDATATIMER); writel(host->size, base + MMCIDATALENGTH); writel(host->size, base + MMCIDATALENGTH); datactrl = MCI_DPSM_ENABLE | data->blksz_bits << 4; blksz_bits = ffs(data->blksz) - 1; BUG_ON(1 << blksz_bits != data->blksz); datactrl = MCI_DPSM_ENABLE | blksz_bits << 4; if (data->flags & MMC_DATA_READ) { if (data->flags & MMC_DATA_READ) { datactrl |= MCI_DPSM_DIRECTION; datactrl |= MCI_DPSM_DIRECTION; irqmask = MCI_RXFIFOHALFFULLMASK; irqmask = MCI_RXFIFOHALFFULLMASK; Loading Loading @@ -145,7 +149,7 @@ mmci_data_irq(struct mmci_host *host, struct mmc_data *data, unsigned int status) unsigned int status) { { if (status & MCI_DATABLOCKEND) { if (status & MCI_DATABLOCKEND) { host->data_xfered += 1 << data->blksz_bits; host->data_xfered += data->blksz; } } if (status & (MCI_DATACRCFAIL|MCI_DATATIMEOUT|MCI_TXUNDERRUN|MCI_RXOVERRUN)) { if (status & (MCI_DATACRCFAIL|MCI_DATATIMEOUT|MCI_TXUNDERRUN|MCI_RXOVERRUN)) { if (status & MCI_DATACRCFAIL) if (status & MCI_DATACRCFAIL) Loading