summaryrefslogtreecommitdiff
path: root/~emulatorman/linux-libre-dtb/0004-fix-mvsdio-eMMC-timing.patch
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <emulatorman@parabola.nu>2015-09-21 15:45:45 -0300
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2015-09-21 16:21:10 -0300
commitb16d50a21274437da1d49a6a146dc602242f97c8 (patch)
tree8f1ce6d2d04d6285cbd70a16ebac54274f93e31d /~emulatorman/linux-libre-dtb/0004-fix-mvsdio-eMMC-timing.patch
parent8fea3ee0368ff4feb42c07b728efd1e70cf0fea4 (diff)
linux-libre: add some changes based on linux-armv7 to adapt for u-Boot usage
* rename vmlinuz-linux-libre to zImage * rename uImage-linux-libre-{armada-{370-smileplug,370-mirabox,xp-openblocks-ax3-4},dove-{d3plug,cubox}} to uImage * backup linux-libre-dtb and previous linux-libre armv7h changes to ~emulatorman for GRUB armv7h porting and avoid conflicts with another kernel installed
Diffstat (limited to '~emulatorman/linux-libre-dtb/0004-fix-mvsdio-eMMC-timing.patch')
-rw-r--r--~emulatorman/linux-libre-dtb/0004-fix-mvsdio-eMMC-timing.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/~emulatorman/linux-libre-dtb/0004-fix-mvsdio-eMMC-timing.patch b/~emulatorman/linux-libre-dtb/0004-fix-mvsdio-eMMC-timing.patch
new file mode 100644
index 000000000..a147f3bc0
--- /dev/null
+++ b/~emulatorman/linux-libre-dtb/0004-fix-mvsdio-eMMC-timing.patch
@@ -0,0 +1,37 @@
+From 3fe82206833efc04b2625c60eb7f3ea6972d5a53 Mon Sep 17 00:00:00 2001
+From: Kevin Mihelich <kevin@archlinuxarm.org>
+Date: Fri, 5 Sep 2014 15:43:56 -0600
+Subject: [PATCH 4/8] fix mvsdio eMMC timing
+
+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
+index a448498..14441a6 100644
+--- a/drivers/mmc/host/mvsdio.c
++++ b/drivers/mmc/host/mvsdio.c
+@@ -96,7 +96,7 @@ static int mvsd_setup_data(struct mvsd_host *host, struct mmc_data *data)
+ 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",
+@@ -618,6 +618,8 @@ static void mvsd_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
+ 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));
+--
+2.4.4