if (dev->flags & ACCESS_NO_IRQ_SUSPEND) {
                dev_pm_set_driver_flags(&pdev->dev,
-                                       DPM_FLAG_SMART_PREPARE |
-                                       DPM_FLAG_MAY_SKIP_RESUME);
+                                       DPM_FLAG_SMART_PREPARE);
        } else {
                dev_pm_set_driver_flags(&pdev->dev,
                                        DPM_FLAG_SMART_PREPARE |
-                                       DPM_FLAG_SMART_SUSPEND |
-                                       DPM_FLAG_MAY_SKIP_RESUME);
+                                       DPM_FLAG_SMART_SUSPEND);
        }
 
        device_enable_async_suspend(&pdev->dev);
         */
        return !has_acpi_companion(dev);
 }
-
-static void dw_i2c_plat_complete(struct device *dev)
-{
-       /*
-        * The device can only be in runtime suspend at this point if it has not
-        * been resumed throughout the ending system suspend/resume cycle, so if
-        * the platform firmware might mess up with it, request the runtime PM
-        * framework to resume it.
-        */
-       if (pm_runtime_suspended(dev) && pm_resume_via_firmware())
-               pm_request_resume(dev);
-}
 #else
 #define dw_i2c_plat_prepare    NULL
-#define dw_i2c_plat_complete   NULL
 #endif
 
 #ifdef CONFIG_PM
 
 static const struct dev_pm_ops dw_i2c_dev_pm_ops = {
        .prepare = dw_i2c_plat_prepare,
-       .complete = dw_i2c_plat_complete,
        SET_LATE_SYSTEM_SLEEP_PM_OPS(dw_i2c_plat_suspend, dw_i2c_plat_resume)
        SET_RUNTIME_PM_OPS(dw_i2c_plat_runtime_suspend, dw_i2c_plat_runtime_resume, NULL)
 };