vdev->queue = q;
 
+       ret = media_entity_pads_init(&vdev->entity, 1, &node->pad);
+       if (ret)
+               return ret;
+
        ret = video_register_device(vdev, VFL_TYPE_VIDEO, -1);
        if (ret) {
                dev_err(cap->rkisp1->dev,
                        "failed to register %s, ret=%d\n", vdev->name, ret);
-               return ret;
+               goto error;
        }
+
        v4l2_info(v4l2_dev, "registered %s as /dev/video%d\n", vdev->name,
                  vdev->num);
 
-       ret = media_entity_pads_init(&vdev->entity, 1, &node->pad);
-       if (ret) {
-               video_unregister_device(vdev);
-               return ret;
-       }
-
        return 0;
+
+error:
+       media_entity_cleanup(&vdev->entity);
+       return ret;
 }
 
 static void