init: wait emmc ready before root
authorYonghui Yu <yonghui.yu@amlogic.com>
Thu, 16 Aug 2018 16:11:35 +0000 (00:11 +0800)
committerJianxin Pan <jianxin.pan@amlogic.com>
Mon, 20 Aug 2018 02:12:34 +0000 (19:12 -0700)
PD#171658: init: wait emmc ready before root

A temporary ugly patch

Change-Id: I9a75fabf7460f92b0b9ae51992ac0d3c964798d2
Signed-off-by: Yonghui Yu <yonghui.yu@amlogic.com>
init/do_mounts.c

index 1902a1c..9245c5b 100644 (file)
@@ -549,13 +549,23 @@ void __init mount_root(void)
 void __init prepare_namespace(void)
 {
        int is_floppy;
-
+#ifdef CONFIG_AMLOGIC_MODIFY
+       dev_t res = 0;
+       int wait = 80; /* 8s max wait*/
+#endif /* CONFIG_AMLOGIC_MODIFY */
        if (root_delay) {
                printk(KERN_INFO "Waiting %d sec before mounting root device...\n",
                       root_delay);
                ssleep(root_delay);
        }
-
+#ifdef CONFIG_AMLOGIC_MODIFY
+       /* A ugly patch for system as root wait emmc ready. */
+       while (!res && wait--) {
+               res = blk_lookup_devt("mmcblk0", 0);
+               msleep(100);
+       };
+       pr_info("%s() wait %d\n", __func__, wait);
+#endif /* CONFIG_AMLOGIC_MODIFY */
        /*
         * wait for the known devices to complete their probing
         *