video->vsp1 = vsp1;
        video->ops = &rpf_vdev_ops;
 
-       ret = vsp1_video_init(video, &rpf->entity);
+       ret = vsp1_video_init(video, rpf);
        if (ret < 0)
                goto error;
 
 
  * Initialization and Cleanup
  */
 
-int vsp1_video_init(struct vsp1_video *video, struct vsp1_entity *rwpf)
+int vsp1_video_init(struct vsp1_video *video, struct vsp1_rwpf *rwpf)
 {
        const char *direction;
        int ret;
        video->video.v4l2_dev = &video->vsp1->v4l2_dev;
        video->video.fops = &vsp1_video_fops;
        snprintf(video->video.name, sizeof(video->video.name), "%s %s",
-                rwpf->subdev.name, direction);
+                rwpf->entity.subdev.name, direction);
        video->video.vfl_type = VFL_TYPE_GRABBER;
        video->video.release = video_device_release_empty;
        video->video.ioctl_ops = &vsp1_video_ioctl_ops;
 
 #include <media/media-entity.h>
 #include <media/videobuf2-v4l2.h>
 
+struct vsp1_rwpf;
 struct vsp1_video;
 
 /*
 
 struct vsp1_video {
        struct vsp1_device *vsp1;
-       struct vsp1_entity *rwpf;
+       struct vsp1_rwpf *rwpf;
 
        const struct vsp1_video_operations *ops;
 
        return container_of(vdev, struct vsp1_video, video);
 }
 
-int vsp1_video_init(struct vsp1_video *video, struct vsp1_entity *rwpf);
+int vsp1_video_init(struct vsp1_video *video, struct vsp1_rwpf *rwpf);
 void vsp1_video_cleanup(struct vsp1_video *video);
 
 void vsp1_pipeline_frame_end(struct vsp1_pipeline *pipe);
 
        video->vsp1 = vsp1;
        video->ops = &wpf_vdev_ops;
 
-       ret = vsp1_video_init(video, &wpf->entity);
+       ret = vsp1_video_init(video, wpf);
        if (ret < 0)
                goto error;