for (i = 0; i < vsp1->info->wpf_count; ++i) {
                /* Connect the video device to the WPF. All connections are
-                * immutable except for the WPF0 source link if a LIF is
-                * present.
+                * immutable.
                 */
                struct vsp1_rwpf *wpf = vsp1->wpf[i];
-               unsigned int flags = MEDIA_LNK_FL_ENABLED;
-
-               if (!(vsp1->info->features & VSP1_HAS_LIF) || i != 0)
-                       flags |= MEDIA_LNK_FL_IMMUTABLE;
 
                ret = media_create_pad_link(&wpf->entity.subdev.entity,
                                            RWPF_PAD_SOURCE,
                                            &wpf->video->video.entity, 0,
-                                           flags);
+                                           MEDIA_LNK_FL_IMMUTABLE |
+                                           MEDIA_LNK_FL_ENABLED);
                if (ret < 0)
                        return ret;
        }
 
        list_add_tail(&vsp1->hst->entity.list_dev, &vsp1->entities);
 
-       if (vsp1->info->features & VSP1_HAS_LIF) {
+       /* The LIF is only supported when used in conjunction with the DU, in
+        * which case the userspace API is disabled. If the userspace API is
+        * enabled skip the LIF, even when present.
+        */
+       if (vsp1->info->features & VSP1_HAS_LIF && !vsp1->info->uapi) {
                vsp1->lif = vsp1_lif_create(vsp1);
                if (IS_ERR(vsp1->lif)) {
                        ret = PTR_ERR(vsp1->lif);