Hi Can, > Hi Stanley, > > I see skipping ufshcd_set_ufs_dev_active() in ufshcd_probe_hba() > if it is called from ufshcd_resume() path is the purpose here. > > If so, then ufshcd_set_dev_pwr_mode() would be called, meaning > SSU command will be sent. Why is this SSU command needed to be > sent after a full host reset and restore? Is ufshcd_probe_hba() > not enough to make UFS device fully functional? After resume (for both runtime resume and system resume), device power mode shall be back to "Active" to service incoming requests. I see two cases need device power mode transition during resume flow 1. Device Power Mode = Sleep 2. Device Power Mode = PowerDown For 1, ufshcd_probe_hba() is not invoked during resume flow, hba->curr_dev_pwr_mode = SLEEP, thus ufshcd_resume() can invoke ufshcd_set_dev_pwr_mode() to change device power mode. For 2, ufshcd_probe_hba() is invoked during resume flow, before this fix, hba->curr_dev_pwr_mode will be set to ACTIVE (note that only this flag is set as ACTIVE, but device may be still in PowerDown state if device power is not fully shutdown or device HW reset is not executed before resume), in the end, ufshcd_resume() will not invoke ufshcd_set_dev_pwr_mode() to send SSU command to make device change back to Active power mode. But if device is fully reset before resume (not by current mainstream driver), device can be already in "Active" power mode after power on again during resume flow. In this case, it is OK to set hba->curr_dev_pwr_mode as ACTIVE in ufshcd_probe_hba() and SSU command is not necessary. Thanks, Stanley > _______________________________________________ > Linux-mediatek mailing list > Linux-mediatek@xxxxxxxxxxxxxxxxxxx > http://lists.infradead.org/mailman/listinfo/linux-mediatek