goto probe_error_v4l2_ctrl_handler_free;
        }
 
+       /* Set the device's state to active if it's in D0 state. */
+       if (full_power)
+               pm_runtime_set_active(&client->dev);
+       pm_runtime_enable(&client->dev);
+       pm_runtime_idle(&client->dev);
+
        ret = v4l2_async_register_subdev_sensor(&ov2740->sd);
        if (ret < 0) {
                dev_err_probe(dev, ret, "failed to register V4L2 subdev\n");
        if (ret)
                dev_warn(&client->dev, "register nvmem failed, ret %d\n", ret);
 
-       /* Set the device's state to active if it's in D0 state. */
-       if (full_power)
-               pm_runtime_set_active(&client->dev);
-       pm_runtime_enable(&client->dev);
-       pm_runtime_idle(&client->dev);
-
        return 0;
 
 probe_error_media_entity_cleanup:
        media_entity_cleanup(&ov2740->sd.entity);
+       pm_runtime_disable(&client->dev);
+       pm_runtime_set_suspended(&client->dev);
 
 probe_error_v4l2_ctrl_handler_free:
        v4l2_ctrl_handler_free(ov2740->sd.ctrl_handler);