Commit a82642fa authored by Linus Torvalds's avatar Linus Torvalds

Merge master.kernel.org:/home/rmk/linux-2.6-mmc

* master.kernel.org:/home/rmk/linux-2.6-mmc:
  [MMC] pxamci: fix data timeout calculation
parents 58f8236b 3d63abe5
...@@ -65,11 +65,6 @@ struct pxamci_host { ...@@ -65,11 +65,6 @@ struct pxamci_host {
unsigned int dma_dir; unsigned int dma_dir;
}; };
static inline unsigned int ns_to_clocks(unsigned int ns)
{
return (ns * (CLOCKRATE / 1000000) + 999) / 1000;
}
static void pxamci_stop_clock(struct pxamci_host *host) static void pxamci_stop_clock(struct pxamci_host *host)
{ {
if (readl(host->base + MMC_STAT) & STAT_CLK_EN) { if (readl(host->base + MMC_STAT) & STAT_CLK_EN) {
...@@ -113,6 +108,7 @@ static void pxamci_disable_irq(struct pxamci_host *host, unsigned int mask) ...@@ -113,6 +108,7 @@ static void pxamci_disable_irq(struct pxamci_host *host, unsigned int mask)
static void pxamci_setup_data(struct pxamci_host *host, struct mmc_data *data) static void pxamci_setup_data(struct pxamci_host *host, struct mmc_data *data)
{ {
unsigned int nob = data->blocks; unsigned int nob = data->blocks;
unsigned long long clks;
unsigned int timeout; unsigned int timeout;
u32 dcmd; u32 dcmd;
int i; int i;
...@@ -125,7 +121,9 @@ static void pxamci_setup_data(struct pxamci_host *host, struct mmc_data *data) ...@@ -125,7 +121,9 @@ static void pxamci_setup_data(struct pxamci_host *host, struct mmc_data *data)
writel(nob, host->base + MMC_NOB); writel(nob, host->base + MMC_NOB);
writel(1 << data->blksz_bits, host->base + MMC_BLKLEN); writel(1 << data->blksz_bits, host->base + MMC_BLKLEN);
timeout = ns_to_clocks(data->timeout_ns) + data->timeout_clks; clks = (unsigned long long)data->timeout_ns * CLOCKRATE;
do_div(clks, 1000000000UL);
timeout = (unsigned int)clks + (data->timeout_clks << host->clkrt);
writel((timeout + 255) / 256, host->base + MMC_RDTO); writel((timeout + 255) / 256, host->base + MMC_RDTO);
if (data->flags & MMC_DATA_READ) { if (data->flags & MMC_DATA_READ) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment