mutex_init(&sensor->lock);
 
-       ret = ov2680_v4l2_init(sensor);
+       ret = ov2680_check_id(sensor);
        if (ret < 0)
                goto lock_destroy;
 
-       ret = ov2680_check_id(sensor);
+       ret = ov2680_v4l2_init(sensor);
        if (ret < 0)
-               goto error_cleanup;
+               goto lock_destroy;
 
        dev_info(dev, "ov2680 init correctly\n");
 
        return 0;
 
-error_cleanup:
-       dev_err(dev, "ov2680 init fail: %d\n", ret);
-
-       media_entity_cleanup(&sensor->sd.entity);
-       v4l2_async_unregister_subdev(&sensor->sd);
-       v4l2_ctrl_handler_free(&sensor->ctrls.handler);
-
 lock_destroy:
+       dev_err(dev, "ov2680 init fail: %d\n", ret);
        mutex_destroy(&sensor->lock);
 
        return ret;