PKGBUILDs/core/linux-armv7/0004-fix-mvsdio-eMMC-timing.patch

39 lines
1.4 KiB
Diff
Raw Normal View History

2017-04-11 00:24:33 +00:00
From 0188343b28b4019a7502ca492f55fb2e7f9eb6f2 Mon Sep 17 00:00:00 2001
2014-10-07 06:07:09 +00:00
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Fri, 5 Sep 2014 15:43:56 -0600
2017-04-11 00:24:33 +00:00
Subject: [PATCH 4/9] fix mvsdio eMMC timing
2014-10-07 06:07:09 +00:00
These changes from Globalscale change the MMC timing to allow the eMMC versions
of the Mirabox and SMILE Plug to work.
Signed-off-by: Kevin Mihelich <kevin@archlinuxarm.org>
---
drivers/mmc/host/mvsdio.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/mmc/host/mvsdio.c b/drivers/mmc/host/mvsdio.c
2017-02-22 01:37:50 +00:00
index 42296e55b9de..e5ce6d27ec82 100644
2014-10-07 06:07:09 +00:00
--- a/drivers/mmc/host/mvsdio.c
+++ b/drivers/mmc/host/mvsdio.c
2016-03-16 00:02:32 +00:00
@@ -93,7 +93,7 @@ static int mvsd_setup_data(struct mvsd_host *host, struct mmc_data *data)
2014-10-07 06:07:09 +00:00
tmout_index = fls(tmout - 1) - 12;
if (tmout_index < 0)
tmout_index = 0;
- if (tmout_index > MVSD_HOST_CTRL_TMOUT_MAX)
+// if (tmout_index > MVSD_HOST_CTRL_TMOUT_MAX) //by steven, try to setup the timeout to maximum value
tmout_index = MVSD_HOST_CTRL_TMOUT_MAX;
dev_dbg(host->dev, "data %s at 0x%08x: blocks=%d blksz=%d tmout=%u (%d)\n",
2016-03-16 00:02:32 +00:00
@@ -615,6 +615,8 @@ static void mvsd_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
2014-10-07 06:07:09 +00:00
u32 m = DIV_ROUND_UP(host->base_clock, ios->clock) - 1;
if (m > MVSD_BASE_DIV_MAX)
m = MVSD_BASE_DIV_MAX;
+ if(ios->clock==50000000 ) //by steven
+ m=1;
mvsd_write(MVSD_CLK_DIV, m);
host->clock = ios->clock;
host->ns_per_clk = 1000000000 / (host->base_clock / (m+1));
--
2017-04-11 00:24:33 +00:00
2.12.1
2014-10-07 06:07:09 +00:00