if (dev->power.syscore)
                return 0;
 
-       WARN_ON(!pm_runtime_enabled(dev) &&
-               dev_pm_test_driver_flags(dev, DPM_FLAG_SMART_SUSPEND |
-                                             DPM_FLAG_LEAVE_SUSPENDED));
-
        /*
         * If a device's parent goes into runtime suspend at the wrong time,
         * it won't be possible to resume the device.  To prevent this we
         */
        spin_lock_irq(&dev->power.lock);
        dev->power.direct_complete = state.event == PM_EVENT_SUSPEND &&
-               ((pm_runtime_suspended(dev) && ret > 0) ||
-                dev->power.no_pm_callbacks) &&
+               (ret > 0 || dev->power.no_pm_callbacks) &&
                !dev_pm_test_driver_flags(dev, DPM_FLAG_NEVER_SKIP);
        spin_unlock_irq(&dev->power.lock);
        return 0;