+#ifdef SDMMC_WAIT_FOR_UNBUSY
+ unsigned long time_loop = jiffies + msecs_to_jiffies(SDMMC_WAIT_FOR_UNBUSY);
+ bool ret=0;
+
+ if(!test_bit(DW_MMC_CARD_PRESENT, &slot->flags)){
+ printk("%d..%s: no card. [%s]\n", \
+ __LINE__, __FUNCTION__, mmc_hostname(mmc));
+ goto EXIT_POWER;
+ }
+
+ while (ret=time_before(jiffies, time_loop)) {
+ regs = mci_readl(slot->host, STATUS);
+ if (!(regs & (SDMMC_STAUTS_DATA_BUSY|SDMMC_STAUTS_MC_BUSY)))
+ break;
+ } ;
+ if(!ret)
+ {
+ printk("slot->flags=%d ", slot->flags);
+ dump_stack();
+ printk("%d..%s: wait for unbusy timeout.......[%s]\n", \
+ __LINE__, __FUNCTION__, mmc_hostname(mmc));
+ }
+#endif