mmc: only ctrl_all_reset if slot state really changed
authorlintao <lintao@rock-chips.com>
Thu, 9 Oct 2014 08:56:35 +0000 (16:56 +0800)
committerlintao <lintao@rock-chips.com>
Thu, 9 Oct 2014 08:57:06 +0000 (16:57 +0800)
drivers/mmc/host/rk_sdmmc.c

index 553d780e0e24dff9041ad78d523430cbf7dd9c69..cc1272daf03d0cedc370e7421b8c98911aed756c 100755 (executable)
@@ -2957,7 +2957,6 @@ static void dw_mci_work_routine_card(struct work_struct *work)
                int present;
 
                present = dw_mci_get_cd(mmc);
-               dw_mci_ctrl_all_reset(host);
 
                 /* Stop edma when rountine card triggered */
                 if(cpu_is_rk3036() || cpu_is_rk312x())
@@ -2970,6 +2969,7 @@ static void dw_mci_work_routine_card(struct work_struct *work)
                        MMC_DBG_BOOT_FUNC(mmc, "  The card is %s.  ===!!!!!!==[%s]\n",
                                present ? "inserted" : "removed.", mmc_hostname(mmc));
        
+                       dw_mci_ctrl_all_reset(host);
                        rk_send_wakeup_key();//wake up system
                        spin_lock_bh(&host->lock);