Hi Mauro, Thank you for the patch. On Sunday 30 August 2015 00:06:47 Mauro Carvalho Chehab wrote: > This driver is abusing MEDIA_ENT_T_V4L2_SUBDEV: > > - it uses a hack to check if the remote entity is a subdev; Same comment as for "omap4iss: stop MEDIA_ENT_T_V4L2_SUBDEV abuse", this isn't a hack. > - it still uses the legacy entity subtype check macro, that > will be removed soon. > > Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx> > > diff --git a/drivers/staging/media/davinci_vpfe/dm365_ipipe.c > b/drivers/staging/media/davinci_vpfe/dm365_ipipe.c index > b89a057b8b7e..7fd78329e3e1 100644 > --- a/drivers/staging/media/davinci_vpfe/dm365_ipipe.c > +++ b/drivers/staging/media/davinci_vpfe/dm365_ipipe.c > @@ -1711,8 +1711,11 @@ ipipe_link_setup(struct media_entity *entity, const > struct media_pad *local, struct vpfe_device *vpfe_dev = > to_vpfe_device(ipipe); > u16 ipipeif_sink = vpfe_dev->vpfe_ipipeif.input; > > - 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; You can drop the check (even though the implementation in the switch looks dubious to me, but that's not your fault). > + switch (local->index) { > + case IPIPE_PAD_SINK: > if (!(flags & MEDIA_LNK_FL_ENABLED)) { > ipipe->input = IPIPE_INPUT_NONE; > break; > @@ -1725,7 +1728,7 @@ ipipe_link_setup(struct media_entity *entity, const > struct media_pad *local, ipipe->input = IPIPE_INPUT_CCDC; > break; > > - case IPIPE_PAD_SOURCE | MEDIA_ENT_T_V4L2_SUBDEV: > + case IPIPE_PAD_SOURCE: > /* out to RESIZER */ > if (flags & MEDIA_LNK_FL_ENABLED) > ipipe->output = IPIPE_OUTPUT_RESIZER; > diff --git a/drivers/staging/media/davinci_vpfe/vpfe_video.c > b/drivers/staging/media/davinci_vpfe/vpfe_video.c index > 9eef64e0f0ab..2dbf14b9bb5f 100644 > --- a/drivers/staging/media/davinci_vpfe/vpfe_video.c > +++ b/drivers/staging/media/davinci_vpfe/vpfe_video.c > @@ -88,7 +88,7 @@ vpfe_video_remote_subdev(struct vpfe_video_device *video, > u32 *pad) { > struct media_pad *remote = media_entity_remote_pad(&video->pad); > > - if (remote == NULL || remote->entity->type != MEDIA_ENT_T_V4L2_SUBDEV) > + if (!remote || !is_media_entity_v4l2_subdev(remote->entity)) > return NULL; > if (pad) > *pad = remote->index; > @@ -243,8 +243,7 @@ static int vpfe_video_validate_pipeline(struct > vpfe_pipeline *pipe) > > /* Retrieve the source format */ > pad = media_entity_remote_pad(pad); > - if (pad == NULL || > - pad->entity->type != MEDIA_ENT_T_V4L2_SUBDEV) > + if (!pad || !is_media_entity_v4l2_subdev(pad->entity)) > break; > > subdev = media_entity_to_v4l2_subdev(pad->entity); -- Regards, Laurent Pinchart _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel