media_entity_cleanup(&sd->entity);
        v4l2_ctrl_handler_free(sd->ctrl_handler);
        pm_runtime_disable(&client->dev);
+       pm_runtime_set_suspended(&client->dev);
        mutex_destroy(&ov9734->mutex);
 }
 
                goto probe_error_v4l2_ctrl_handler_free;
        }
 
-       ret = v4l2_async_register_subdev_sensor(&ov9734->sd);
-       if (ret < 0) {
-               dev_err(&client->dev, "failed to register V4L2 subdev: %d",
-                       ret);
-               goto probe_error_media_entity_cleanup;
-       }
-
        /*
         * Device is already turned on by i2c-core with ACPI domain PM.
         * Enable runtime PM and turn off the device.
        pm_runtime_enable(&client->dev);
        pm_runtime_idle(&client->dev);
 
+       ret = v4l2_async_register_subdev_sensor(&ov9734->sd);
+       if (ret < 0) {
+               dev_err(&client->dev, "failed to register V4L2 subdev: %d",
+                       ret);
+               goto probe_error_media_entity_cleanup_pm;
+       }
+
        return 0;
 
-probe_error_media_entity_cleanup:
+probe_error_media_entity_cleanup_pm:
+       pm_runtime_disable(&client->dev);
+       pm_runtime_set_suspended(&client->dev);
        media_entity_cleanup(&ov9734->sd.entity);
 
 probe_error_v4l2_ctrl_handler_free: