* It may be long delays between requests.
         * Device might go to off mode to save power.
         */
-       err = pm_runtime_get_sync(dd->dev);
+       err = pm_runtime_resume_and_get(dd->dev);
        if (err < 0) {
-               pm_runtime_put_noidle(dd->dev);
                dev_err(dd->dev, "%s: failed to get_sync(%d)\n", __func__, err);
                return err;
        }
        pm_runtime_set_autosuspend_delay(dev, DEFAULT_AUTOSUSPEND_DELAY);
 
        pm_runtime_enable(dev);
-       err = pm_runtime_get_sync(dev);
+       err = pm_runtime_resume_and_get(dev);
        if (err < 0) {
-               pm_runtime_put_noidle(dev);
                dev_err(dd->dev, "%s: failed to get_sync(%d)\n", __func__, err);
                goto err_get;
        }
 {
        int err;
 
-       err = pm_runtime_get_sync(dev);
+       err = pm_runtime_resume_and_get(dev);
        if (err < 0) {
-               pm_runtime_put_noidle(dev);
                dev_err(dev, "%s: failed to get_sync(%d)\n", __func__, err);
                return err;
        }