struct iss_ipipe_device *ipipe = v4l2_get_subdevdata(sd);
        struct iss_device *iss = to_iss_device(ipipe);
 
-       switch (local->index | media_entity_type(remote->entity)) {
-       case IPIPE_PAD_SINK | MEDIA_ENT_T_V4L2_SUBDEV:
+       if (!is_media_entity_v4l2_subdev(remote->entity))
+               return -EINVAL;
+
+       switch (local->index) {
+       case IPIPE_PAD_SINK:
                /* Read from IPIPEIF. */
                if (!(flags & MEDIA_LNK_FL_ENABLED)) {
                        ipipe->input = IPIPE_INPUT_NONE;
 
                break;
 
-       case IPIPE_PAD_SOURCE_VP | MEDIA_ENT_T_V4L2_SUBDEV:
+       case IPIPE_PAD_SOURCE_VP:
                /* Send to RESIZER */
                if (flags & MEDIA_LNK_FL_ENABLED) {
                        if (ipipe->output & ~IPIPE_OUTPUT_VP)