omap: mmc: Adjust dto to eliminate timeout errors
authorSteve Sakoman <steve@sakoman.com>
Wed, 12 Jan 2011 13:54:55 +0000 (05:54 -0800)
committerGrazvydas Ignotas <notasas@gmail.com>
Fri, 3 Jun 2011 22:25:57 +0000 (01:25 +0300)
A number of SD card types were experiencing timeout errors.  This
could also lead to data corruption in some cases.

This fix proposed by Sukumar Ghoral of TI.

drivers/mmc/host/omap_hsmmc.c

index 5d46021..4ba2f6c 100644 (file)
@@ -1405,6 +1405,7 @@ static void set_data_timeout(struct omap_hsmmc_host *host,
        cycle_ns = 1000000000 / (clk_get_rate(host->fclk) / clkd);
        timeout = timeout_ns / cycle_ns;
        timeout += timeout_clks;
+       timeout *= 2;
        if (timeout) {
                while ((timeout & 0x80000000) == 0) {
                        dto += 1;