summaryrefslogtreecommitdiff
path: root/board/st/u8500/mmc_host.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/st/u8500/mmc_host.c')
-rw-r--r--board/st/u8500/mmc_host.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/board/st/u8500/mmc_host.c b/board/st/u8500/mmc_host.c
index df46eb02c..92ff6510e 100644
--- a/board/st/u8500/mmc_host.c
+++ b/board/st/u8500/mmc_host.c
@@ -21,6 +21,8 @@
#include <malloc.h>
#include <div64.h>
#include "mmc_fifo.h"
+#include "itp.h"
+
struct mmc_host {
struct sdi_registers *base;
@@ -608,6 +610,21 @@ int board_mmc_init(bd_t *bis)
debugX(DBG_LVL_VERBOSE, "registered emmc interface number is:%d\n",
dev->block_dev.dev);
+
+ mmc_init(dev);
+
+ /*
+ * In a perfect world itp_load_itp shouldn't be here but we want ITP
+ * to be loaded as quickly as possible and putting it here will get the
+ * shortest time to start loading ITP. Time saved by putting it here
+ * compared to later is somewhere between 0.3-0.7s. That is enough to be
+ * able to justify putting it here.
+ */
+
+#ifdef CONFIG_ITP_LOAD
+ itp_load_itp(&dev->block_dev);
+#endif
+
dev = alloc_mmc_struct();
if (!dev)
return -1;