Hi Asutosh, > I see that there's a get_sync done before. > So, how would the suspend be triggered in that case? > Would you mean pm_runtime_get_sync() in ufshcd_init()? If yes, it will only happen during initialization. The runtime resume path may go through ufshcd_probe_hba() without ufshcd_init() invoked before, for example, ufshcd_probe_hba+0xe10/0x1874 ufshcd_host_reset_and_restore+0x114/0x1a4 ufshcd_resume+0x1d0/0x480 ufshcd_runtime_resume+0x40/0x188 ufshcd_pltfrm_runtime_resume+0x10/0x18 pm_generic_runtime_resume+0x24/0x44 __rpm_callback+0x100/0x250 rpm_resume+0x548/0x7c8 rpm_resume+0x2b4/0x7c8 rpm_resume+0x2b4/0x7c8 rpm_resume+0x2b4/0x7c8 pm_runtime_work+0x9c/0xa0 process_one_work+0x210/0x4e0 worker_thread+0x390/0x520 kthread+0x154/0x18c ret_from_fork+0x10/0x18 This case happens if link is in "off" state while resume. Thanks, Stanley