struct resources *r = &this->resources;
        int ret;
 
-       ret = pm_runtime_get_sync(this->dev);
-       if (ret < 0) {
-               pm_runtime_put_noidle(this->dev);
+       ret = pm_runtime_resume_and_get(this->dev);
+       if (ret < 0)
                return ret;
-       }
 
        ret = gpmi_reset_block(r->gpmi_regs, false);
        if (ret)
        for (i = 0; i < GPMI_MAX_TRANSFERS; i++)
                this->transfers[i].direction = DMA_NONE;
 
-       ret = pm_runtime_get_sync(this->dev);
-       if (ret < 0) {
-               pm_runtime_put_noidle(this->dev);
+       ret = pm_runtime_resume_and_get(this->dev);
+       if (ret < 0)
                return ret;
-       }
 
        /*
         * This driver currently supports only one NAND chip. Plus, dies share