All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Cc: Linux Media Mailing List <linux-media@vger.kernel.org>,
	Mauro Carvalho Chehab <mchehab@infradead.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Hans Verkuil <hans.verkuil@cisco.com>,
	Sakari Ailus <sakari.ailus@linux.intel.com>,
	Prabhakar Lad <prabhakar.csengg@gmail.com>,
	Haneen Mohammed <hamohammed.sa@gmail.com>,
	Tapasweni Pathak <tapaswenipathak@gmail.com>,
	Boris BREZILLON <boris.brezillon@free-electrons.com>,
	Mahati Chamarthy <mahati.chamarthy@gmail.com>,
	Javier Martinez Canillas <javier@osg.samsung.com>,
	devel@driverdev.osuosl.org
Subject: Re: [PATCH v8 33/55] [media] omap3/omap4/davinci: get rid of MEDIA_ENT_T_V4L2_SUBDEV abuse
Date: Sun, 06 Dec 2015 04:08:17 +0200	[thread overview]
Message-ID: <1976836.7xiRZsLFCP@avalon> (raw)
In-Reply-To: <03117f6ceda60bd4f2c4263a4253c5e21bade234.1440902901.git.mchehab@osg.samsung.com>

Hi Mauro,

Thank you for the patch.

On Sunday 30 August 2015 00:06:44 Mauro Carvalho Chehab wrote:
> On omap3/omap4/davinci drivers, MEDIA_ENT_T_V4L2_SUBDEV macro is
> abused in order to "simplify" the pad checks.

As explained in a couple of other replies to similar patches, it's not a hack 
:-)

> Basically, it does a logical or of this macro, in order to check
> for a local index and if the entity is either a subdev or not.
> 
> As we'll get rid of MEDIA_ENT_T_V4L2_SUBDEV macro,

This is the reason for this patch, and I agree with it.

> replace it by 2 << 16 where it occurs, and add a note saying that the code
> there is actually a hack.
> 
> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
> 
> diff --git a/drivers/media/platform/omap3isp/ispccdc.c
> b/drivers/media/platform/omap3isp/ispccdc.c index
> 9a811f5741fa..f0e530c98188 100644
> --- a/drivers/media/platform/omap3isp/ispccdc.c
> +++ b/drivers/media/platform/omap3isp/ispccdc.c
> @@ -2513,9 +2513,14 @@ static int ccdc_link_setup(struct media_entity
> *entity, struct v4l2_subdev *sd = media_entity_to_v4l2_subdev(entity);
>  	struct isp_ccdc_device *ccdc = v4l2_get_subdevdata(sd);
>  	struct isp_device *isp = to_isp_device(ccdc);
> +	int index = local->index;

The index can never be negative, you can use unsigned int.

> 
> -	switch (local->index | media_entity_type(remote->entity)) {
> -	case CCDC_PAD_SINK | MEDIA_ENT_T_V4L2_SUBDEV:
> +	/* FIXME: this is actually a hack! */

Please, let's not introduce a hack to replace valid code. I'm certainly fine 
with removing usage of MEDIA_ENT_T_V4L2_SUBDEV, but drivers should be modified 
cleanly.

If you rename the index variable to link and use a macro (I would call it 
LINK_TO_SUBDEV for instance) instead of 2 << 16 the implementation wouldn't be 
that bad, as what the switch operates on is the link, not the pad. I would 
also create a LINK_TO_DEVNODE macro, even if it evaluates to 0, to clearly 
label each case.

> +	if (is_media_entity_v4l2_subdev(remote->entity))
> +		index |= 2 << 16;

Why 2 << 16 and not 1 << 16 ?

Same comments for all the other files below (but please see the very end for 
one last comment).

> +	switch (index) {
> +	case CCDC_PAD_SINK | 2 << 16:
>  		/* Read from the sensor (parallel interface), CCP2, CSI2a or
>  		 * CSI2c.
>  		 */
> @@ -2543,7 +2548,7 @@ static int ccdc_link_setup(struct media_entity
> *entity, * Revisit this when it will be implemented, and return -EBUSY for
> now. */
> 
> -	case CCDC_PAD_SOURCE_VP | MEDIA_ENT_T_V4L2_SUBDEV:
> +	case CCDC_PAD_SOURCE_VP | 2 << 16:
>  		/* Write to preview engine, histogram and H3A. When none of
>  		 * those links are active, the video port can be disabled.
>  		 */
> @@ -2556,7 +2561,7 @@ static int ccdc_link_setup(struct media_entity
> *entity, }
>  		break;
> 
> -	case CCDC_PAD_SOURCE_OF | MEDIA_ENT_T_DEVNODE:
> +	case CCDC_PAD_SOURCE_OF:
>  		/* Write to memory */
>  		if (flags & MEDIA_LNK_FL_ENABLED) {
>  			if (ccdc->output & ~CCDC_OUTPUT_MEMORY)
> @@ -2567,7 +2572,7 @@ static int ccdc_link_setup(struct media_entity
> *entity, }
>  		break;
> 
> -	case CCDC_PAD_SOURCE_OF | MEDIA_ENT_T_V4L2_SUBDEV:
> +	case CCDC_PAD_SOURCE_OF | 2 << 16:
>  		/* Write to resizer */
>  		if (flags & MEDIA_LNK_FL_ENABLED) {
>  			if (ccdc->output & ~CCDC_OUTPUT_RESIZER)
> diff --git a/drivers/media/platform/omap3isp/ispccp2.c
> b/drivers/media/platform/omap3isp/ispccp2.c index
> 6ec7d104ab75..ae3038e643cc 100644
> --- a/drivers/media/platform/omap3isp/ispccp2.c
> +++ b/drivers/media/platform/omap3isp/ispccp2.c
> @@ -956,9 +956,14 @@ static int ccp2_link_setup(struct media_entity *entity,
> {
>  	struct v4l2_subdev *sd = media_entity_to_v4l2_subdev(entity);
>  	struct isp_ccp2_device *ccp2 = v4l2_get_subdevdata(sd);
> +	int index = local->index;
> 
> -	switch (local->index | media_entity_type(remote->entity)) {
> -	case CCP2_PAD_SINK | MEDIA_ENT_T_DEVNODE:
> +	/* FIXME: this is actually a hack! */
> +	if (is_media_entity_v4l2_subdev(remote->entity))
> +		index |= 2 << 16;
> +
> +	switch (index) {
> +	case CCP2_PAD_SINK:
>  		/* read from memory */
>  		if (flags & MEDIA_LNK_FL_ENABLED) {
>  			if (ccp2->input == CCP2_INPUT_SENSOR)
> @@ -970,7 +975,7 @@ static int ccp2_link_setup(struct media_entity *entity,
>  		}
>  		break;
> 
> -	case CCP2_PAD_SINK | MEDIA_ENT_T_V4L2_SUBDEV:
> +	case CCP2_PAD_SINK | 2 << 16:
>  		/* read from sensor/phy */
>  		if (flags & MEDIA_LNK_FL_ENABLED) {
>  			if (ccp2->input == CCP2_INPUT_MEMORY)
> @@ -981,7 +986,7 @@ static int ccp2_link_setup(struct media_entity *entity,
>  				ccp2->input = CCP2_INPUT_NONE;
>  		} break;
> 
> -	case CCP2_PAD_SOURCE | MEDIA_ENT_T_V4L2_SUBDEV:
> +	case CCP2_PAD_SOURCE | 2 << 16:
>  		/* write to video port/ccdc */
>  		if (flags & MEDIA_LNK_FL_ENABLED)
>  			ccp2->output = CCP2_OUTPUT_CCDC;
> diff --git a/drivers/media/platform/omap3isp/ispcsi2.c
> b/drivers/media/platform/omap3isp/ispcsi2.c index
> 0fb057a74f69..b1617f7efdee 100644
> --- a/drivers/media/platform/omap3isp/ispcsi2.c
> +++ b/drivers/media/platform/omap3isp/ispcsi2.c
> @@ -1144,14 +1144,19 @@ static int csi2_link_setup(struct media_entity
> *entity, struct v4l2_subdev *sd = media_entity_to_v4l2_subdev(entity);
>  	struct isp_csi2_device *csi2 = v4l2_get_subdevdata(sd);
>  	struct isp_csi2_ctrl_cfg *ctrl = &csi2->ctrl;
> +	int index = local->index;
> 
>  	/*
>  	 * The ISP core doesn't support pipelines with multiple video outputs.
>  	 * Revisit this when it will be implemented, and return -EBUSY for now.
>  	 */
> 
> -	switch (local->index | media_entity_type(remote->entity)) {
> -	case CSI2_PAD_SOURCE | MEDIA_ENT_T_DEVNODE:
> +	/* FIXME: this is actually a hack! */
> +	if (is_media_entity_v4l2_subdev(remote->entity))
> +		index |= 2 << 16;
> +
> +	switch (index) {
> +	case CSI2_PAD_SOURCE:
>  		if (flags & MEDIA_LNK_FL_ENABLED) {
>  			if (csi2->output & ~CSI2_OUTPUT_MEMORY)
>  				return -EBUSY;
> @@ -1161,7 +1166,7 @@ static int csi2_link_setup(struct media_entity
> *entity, }
>  		break;
> 
> -	case CSI2_PAD_SOURCE | MEDIA_ENT_T_V4L2_SUBDEV:
> +	case CSI2_PAD_SOURCE | 2 << 16:
>  		if (flags & MEDIA_LNK_FL_ENABLED) {
>  			if (csi2->output & ~CSI2_OUTPUT_CCDC)
>  				return -EBUSY;
> diff --git a/drivers/media/platform/omap3isp/isppreview.c
> b/drivers/media/platform/omap3isp/isppreview.c index
> 6986d2f65c19..cfb2debb02bf 100644
> --- a/drivers/media/platform/omap3isp/isppreview.c
> +++ b/drivers/media/platform/omap3isp/isppreview.c
> @@ -2144,9 +2144,14 @@ static int preview_link_setup(struct media_entity
> *entity, {
>  	struct v4l2_subdev *sd = media_entity_to_v4l2_subdev(entity);
>  	struct isp_prev_device *prev = v4l2_get_subdevdata(sd);
> +	int index = local->index;
> 
> -	switch (local->index | media_entity_type(remote->entity)) {
> -	case PREV_PAD_SINK | MEDIA_ENT_T_DEVNODE:
> +	/* FIXME: this is actually a hack! */
> +	if (is_media_entity_v4l2_subdev(remote->entity))
> +		index |= 2 << 16;
> +
> +	switch (index) {
> +	case PREV_PAD_SINK:
>  		/* read from memory */
>  		if (flags & MEDIA_LNK_FL_ENABLED) {
>  			if (prev->input == PREVIEW_INPUT_CCDC)
> @@ -2158,7 +2163,7 @@ static int preview_link_setup(struct media_entity
> *entity, }
>  		break;
> 
> -	case PREV_PAD_SINK | MEDIA_ENT_T_V4L2_SUBDEV:
> +	case PREV_PAD_SINK | 2 << 16:
>  		/* read from ccdc */
>  		if (flags & MEDIA_LNK_FL_ENABLED) {
>  			if (prev->input == PREVIEW_INPUT_MEMORY)
> @@ -2175,7 +2180,7 @@ static int preview_link_setup(struct media_entity
> *entity, * Revisit this when it will be implemented, and return -EBUSY for
> now. */
> 
> -	case PREV_PAD_SOURCE | MEDIA_ENT_T_DEVNODE:
> +	case PREV_PAD_SOURCE:
>  		/* write to memory */
>  		if (flags & MEDIA_LNK_FL_ENABLED) {
>  			if (prev->output & ~PREVIEW_OUTPUT_MEMORY)
> @@ -2186,7 +2191,7 @@ static int preview_link_setup(struct media_entity
> *entity, }
>  		break;
> 
> -	case PREV_PAD_SOURCE | MEDIA_ENT_T_V4L2_SUBDEV:
> +	case PREV_PAD_SOURCE | 2 << 16:
>  		/* write to resizer */
>  		if (flags & MEDIA_LNK_FL_ENABLED) {
>  			if (prev->output & ~PREVIEW_OUTPUT_RESIZER)
> diff --git a/drivers/media/platform/omap3isp/ispresizer.c
> b/drivers/media/platform/omap3isp/ispresizer.c index
> 249af7f524f9..e3ecf1787fc4 100644
> --- a/drivers/media/platform/omap3isp/ispresizer.c
> +++ b/drivers/media/platform/omap3isp/ispresizer.c
> @@ -1623,9 +1623,14 @@ static int resizer_link_setup(struct media_entity
> *entity, {
>  	struct v4l2_subdev *sd = media_entity_to_v4l2_subdev(entity);
>  	struct isp_res_device *res = v4l2_get_subdevdata(sd);
> +	int index = local->index;
> 
> -	switch (local->index | media_entity_type(remote->entity)) {
> -	case RESZ_PAD_SINK | MEDIA_ENT_T_DEVNODE:
> +	/* FIXME: this is actually a hack! */
> +	if (is_media_entity_v4l2_subdev(remote->entity))
> +		index |= 2 << 16;
> +
> +	switch (index) {
> +	case RESZ_PAD_SINK:
>  		/* read from memory */
>  		if (flags & MEDIA_LNK_FL_ENABLED) {
>  			if (res->input == RESIZER_INPUT_VP)
> @@ -1637,7 +1642,7 @@ static int resizer_link_setup(struct media_entity
> *entity, }
>  		break;
> 
> -	case RESZ_PAD_SINK | MEDIA_ENT_T_V4L2_SUBDEV:
> +	case RESZ_PAD_SINK | 2 << 16:
>  		/* read from ccdc or previewer */
>  		if (flags & MEDIA_LNK_FL_ENABLED) {
>  			if (res->input == RESIZER_INPUT_MEMORY)
> @@ -1649,7 +1654,7 @@ static int resizer_link_setup(struct media_entity
> *entity, }
>  		break;
> 
> -	case RESZ_PAD_SOURCE | MEDIA_ENT_T_DEVNODE:
> +	case RESZ_PAD_SOURCE:
>  		/* resizer always write to memory */
>  		break;
> 
> diff --git a/drivers/staging/media/davinci_vpfe/dm365_ipipeif.c
> b/drivers/staging/media/davinci_vpfe/dm365_ipipeif.c index
> d96bdaaae50e..b66584ecb693 100644
> --- a/drivers/staging/media/davinci_vpfe/dm365_ipipeif.c
> +++ b/drivers/staging/media/davinci_vpfe/dm365_ipipeif.c
> @@ -885,9 +885,14 @@ ipipeif_link_setup(struct media_entity *entity, const
> struct media_pad *local, struct v4l2_subdev *sd =
> media_entity_to_v4l2_subdev(entity);
>  	struct vpfe_ipipeif_device *ipipeif = v4l2_get_subdevdata(sd);
>  	struct vpfe_device *vpfe = to_vpfe_device(ipipeif);
> +	int index = local->index;
> 
> -	switch (local->index | media_entity_type(remote->entity)) {
> -	case IPIPEIF_PAD_SINK | MEDIA_ENT_T_DEVNODE:
> +	/* FIXME: this is actually a hack! */
> +	if (is_media_entity_v4l2_subdev(remote->entity))
> +		index |= 2 << 16;
> +
> +	switch (index) {
> +	case IPIPEIF_PAD_SINK:
>  		/* Single shot mode */
>  		if (!(flags & MEDIA_LNK_FL_ENABLED)) {
>  			ipipeif->input = IPIPEIF_INPUT_NONE;
> @@ -896,7 +901,7 @@ ipipeif_link_setup(struct media_entity *entity, const
> struct media_pad *local, ipipeif->input = IPIPEIF_INPUT_MEMORY;
>  		break;
> 
> -	case IPIPEIF_PAD_SINK | MEDIA_ENT_T_V4L2_SUBDEV:
> +	case IPIPEIF_PAD_SINK | 2 << 16:
>  		/* read from isif */
>  		if (!(flags & MEDIA_LNK_FL_ENABLED)) {
>  			ipipeif->input = IPIPEIF_INPUT_NONE;
> @@ -908,7 +913,7 @@ ipipeif_link_setup(struct media_entity *entity, const
> struct media_pad *local, ipipeif->input = IPIPEIF_INPUT_ISIF;
>  		break;
> 
> -	case IPIPEIF_PAD_SOURCE | MEDIA_ENT_T_V4L2_SUBDEV:
> +	case IPIPEIF_PAD_SOURCE | 2 << 16:
>  		if (!(flags & MEDIA_LNK_FL_ENABLED)) {
>  			ipipeif->output = IPIPEIF_OUTPUT_NONE;
>  			break;
> diff --git a/drivers/staging/media/davinci_vpfe/dm365_isif.c
> b/drivers/staging/media/davinci_vpfe/dm365_isif.c index
> df77288b0ec0..8ca0c1297ec8 100644
> --- a/drivers/staging/media/davinci_vpfe/dm365_isif.c
> +++ b/drivers/staging/media/davinci_vpfe/dm365_isif.c
> @@ -1707,9 +1707,14 @@ isif_link_setup(struct media_entity *entity, const
> struct media_pad *local, {
>  	struct v4l2_subdev *sd = media_entity_to_v4l2_subdev(entity);
>  	struct vpfe_isif_device *isif = v4l2_get_subdevdata(sd);
> +	int index = local->index;
> 
> -	switch (local->index | media_entity_type(remote->entity)) {
> -	case ISIF_PAD_SINK | MEDIA_ENT_T_V4L2_SUBDEV:
> +	/* FIXME: this is actually a hack! */
> +	if (is_media_entity_v4l2_subdev(remote->entity))
> +		index |= 2 << 16;
> +
> +	switch (index) {
> +	case ISIF_PAD_SINK | 2 << 16:
>  		/* read from decoder/sensor */
>  		if (!(flags & MEDIA_LNK_FL_ENABLED)) {
>  			isif->input = ISIF_INPUT_NONE;
> @@ -1720,7 +1725,7 @@ isif_link_setup(struct media_entity *entity, const
> struct media_pad *local, isif->input = ISIF_INPUT_PARALLEL;
>  		break;
> 
> -	case ISIF_PAD_SOURCE | MEDIA_ENT_T_DEVNODE:
> +	case ISIF_PAD_SOURCE:
>  		/* write to memory */
>  		if (flags & MEDIA_LNK_FL_ENABLED)
>  			isif->output = ISIF_OUTPUT_MEMORY;
> @@ -1728,7 +1733,7 @@ isif_link_setup(struct media_entity *entity, const
> struct media_pad *local, isif->output = ISIF_OUTPUT_NONE;
>  		break;
> 
> -	case ISIF_PAD_SOURCE | MEDIA_ENT_T_V4L2_SUBDEV:
> +	case ISIF_PAD_SOURCE | 2 << 16:
>  		if (flags & MEDIA_LNK_FL_ENABLED)
>  			isif->output = ISIF_OUTPUT_IPIPEIF;
>  		else
> diff --git a/drivers/staging/media/davinci_vpfe/dm365_resizer.c
> b/drivers/staging/media/davinci_vpfe/dm365_resizer.c index
> ae942de3a23d..8eb6f5fda21c 100644
> --- a/drivers/staging/media/davinci_vpfe/dm365_resizer.c
> +++ b/drivers/staging/media/davinci_vpfe/dm365_resizer.c
> @@ -1653,10 +1653,15 @@ static int resizer_link_setup(struct media_entity
> *entity, struct vpfe_device *vpfe_dev = to_vpfe_device(resizer);
>  	u16 ipipeif_source = vpfe_dev->vpfe_ipipeif.output;
>  	u16 ipipe_source = vpfe_dev->vpfe_ipipe.output;
> +	int index = local->index;
> +
> +	/* FIXME: this is actually a hack! */
> +	if (is_media_entity_v4l2_subdev(remote->entity))
> +		index |= 2 << 16;
> 
>  	if (&resizer->crop_resizer.subdev == sd) {
> -		switch (local->index | media_entity_type(remote->entity)) {
> -		case RESIZER_CROP_PAD_SINK | MEDIA_ENT_T_V4L2_SUBDEV:
> +		switch (index) {
> +		case RESIZER_CROP_PAD_SINK | 2 << 16:
>  			if (!(flags & MEDIA_LNK_FL_ENABLED)) {
>  				resizer->crop_resizer.input =
>  					RESIZER_CROP_INPUT_NONE;
> @@ -1676,7 +1681,7 @@ static int resizer_link_setup(struct media_entity
> *entity, return -EINVAL;
>  			break;
> 
> -		case RESIZER_CROP_PAD_SOURCE | MEDIA_ENT_T_V4L2_SUBDEV:
> +		case RESIZER_CROP_PAD_SOURCE | 2 << 16:
>  			if (!(flags & MEDIA_LNK_FL_ENABLED)) {
>  				resizer->crop_resizer.output =
>  				RESIZER_CROP_OUTPUT_NONE;
> @@ -1688,7 +1693,7 @@ static int resizer_link_setup(struct media_entity
> *entity, resizer->crop_resizer.output = RESIZER_A;
>  			break;
> 
> -		case RESIZER_CROP_PAD_SOURCE2 | MEDIA_ENT_T_V4L2_SUBDEV:
> +		case RESIZER_CROP_PAD_SOURCE2 | 2 << 16:
>  			if (!(flags & MEDIA_LNK_FL_ENABLED)) {
>  				resizer->crop_resizer.output2 =
>  					RESIZER_CROP_OUTPUT_NONE;
> @@ -1704,8 +1709,8 @@ static int resizer_link_setup(struct media_entity
> *entity, return -EINVAL;
>  		}
>  	} else if (&resizer->resizer_a.subdev == sd) {
> -		switch (local->index | media_entity_type(remote->entity)) {
> -		case RESIZER_PAD_SINK | MEDIA_ENT_T_V4L2_SUBDEV:
> +		switch (index) {
> +		case RESIZER_PAD_SINK | 2 << 16:
>  			if (!(flags & MEDIA_LNK_FL_ENABLED)) {
>  				resizer->resizer_a.input = RESIZER_INPUT_NONE;
>  				break;
> @@ -1715,7 +1720,7 @@ static int resizer_link_setup(struct media_entity
> *entity, resizer->resizer_a.input = RESIZER_INPUT_CROP_RESIZER;
>  			break;
> 
> -		case RESIZER_PAD_SOURCE | MEDIA_ENT_T_DEVNODE:
> +		case RESIZER_PAD_SOURCE:
>  			if (!(flags & MEDIA_LNK_FL_ENABLED)) {
>  				resizer->resizer_a.output = RESIZER_OUTPUT_NONE;
>  				break;
> @@ -1729,8 +1734,8 @@ static int resizer_link_setup(struct media_entity
> *entity, return -EINVAL;
>  		}
>  	} else if (&resizer->resizer_b.subdev == sd) {
> -		switch (local->index | media_entity_type(remote->entity)) {
> -		case RESIZER_PAD_SINK | MEDIA_ENT_T_V4L2_SUBDEV:
> +		switch (index) {
> +		case RESIZER_PAD_SINK | 2 << 16:
>  			if (!(flags & MEDIA_LNK_FL_ENABLED)) {
>  				resizer->resizer_b.input = RESIZER_INPUT_NONE;
>  				break;
> @@ -1740,7 +1745,7 @@ static int resizer_link_setup(struct media_entity
> *entity, resizer->resizer_b.input = RESIZER_INPUT_CROP_RESIZER;
>  			break;
> 
> -		case RESIZER_PAD_SOURCE | MEDIA_ENT_T_DEVNODE:
> +		case RESIZER_PAD_SOURCE:
>  			if (!(flags & MEDIA_LNK_FL_ENABLED)) {
>  				resizer->resizer_b.output = RESIZER_OUTPUT_NONE;
>  				break;
> diff --git a/drivers/staging/media/davinci_vpfe/vpfe_video.c
> b/drivers/staging/media/davinci_vpfe/vpfe_video.c index
> 16763e0831f2..9eef64e0f0ab 100644
> --- a/drivers/staging/media/davinci_vpfe/vpfe_video.c
> +++ b/drivers/staging/media/davinci_vpfe/vpfe_video.c
> @@ -148,7 +148,7 @@ static void vpfe_prepare_pipeline(struct
> vpfe_video_device *video) while ((entity =
> media_entity_graph_walk_next(&graph))) {
>  		if (entity == &video->video_dev.entity)
>  			continue;
> -		if ((!is_media_entity_v4l2_io(remote->entity))
> +		if (!is_media_entity_v4l2_io(entity))
>  			continue;
>  		far_end = to_vpfe_video(media_entity_to_video_device(entity));
>  		if (far_end->type == V4L2_BUF_TYPE_VIDEO_OUTPUT)
> @@ -293,7 +293,7 @@ static int vpfe_pipeline_enable(struct vpfe_pipeline
> *pipe) media_entity_graph_walk_start(&graph, entity);
>  	while ((entity = media_entity_graph_walk_next(&graph))) {
> 
> -		if !is_media_entity_v4l2_subdev(entity))
> +		if (!is_media_entity_v4l2_subdev(entity))
>  			continue;
>  		subdev = media_entity_to_v4l2_subdev(entity);
>  		ret = v4l2_subdev_call(subdev, video, s_stream, 1);
> diff --git a/drivers/staging/media/omap4iss/iss_csi2.c
> b/drivers/staging/media/omap4iss/iss_csi2.c index
> 6b4dcbfa9425..50a24e8e8129 100644
> --- a/drivers/staging/media/omap4iss/iss_csi2.c
> +++ b/drivers/staging/media/omap4iss/iss_csi2.c
> @@ -1170,14 +1170,19 @@ static int csi2_link_setup(struct media_entity
> *entity, struct v4l2_subdev *sd = media_entity_to_v4l2_subdev(entity);
>  	struct iss_csi2_device *csi2 = v4l2_get_subdevdata(sd);
>  	struct iss_csi2_ctrl_cfg *ctrl = &csi2->ctrl;
> +	int index = local->index;
> +
> +	/* FIXME: this is actually a hack! */
> +	if (is_media_entity_v4l2_subdev(remote->entity))
> +		index |= 2 << 16;
> 
>  	/*
>  	 * The ISS core doesn't support pipelines with multiple video outputs.
>  	 * Revisit this when it will be implemented, and return -EBUSY for now.
>  	 */
> 
> -	switch (local->index | media_entity_type(remote->entity)) {
> -	case CSI2_PAD_SOURCE | MEDIA_ENT_T_DEVNODE:
> +	switch (index) {
> +	case CSI2_PAD_SOURCE:
>  		if (flags & MEDIA_LNK_FL_ENABLED) {
>  			if (csi2->output & ~CSI2_OUTPUT_MEMORY)
>  				return -EBUSY;
> @@ -1187,7 +1192,7 @@ static int csi2_link_setup(struct media_entity
> *entity, }
>  		break;
> 
> -	case CSI2_PAD_SOURCE | MEDIA_ENT_T_V4L2_SUBDEV:
> +	case CSI2_PAD_SOURCE | 2 << 16:
>  		if (flags & MEDIA_LNK_FL_ENABLED) {
>  			if (csi2->output & ~CSI2_OUTPUT_IPIPEIF)
>  				return -EBUSY;
> diff --git a/drivers/staging/media/omap4iss/iss_ipipeif.c
> b/drivers/staging/media/omap4iss/iss_ipipeif.c index
> 44c432ef2ac5..e46b2c07bd5d 100644
> --- a/drivers/staging/media/omap4iss/iss_ipipeif.c
> +++ b/drivers/staging/media/omap4iss/iss_ipipeif.c
> @@ -662,9 +662,14 @@ static int ipipeif_link_setup(struct media_entity
> *entity, struct v4l2_subdev *sd = media_entity_to_v4l2_subdev(entity);
>  	struct iss_ipipeif_device *ipipeif = v4l2_get_subdevdata(sd);
>  	struct iss_device *iss = to_iss_device(ipipeif);
> +	int index = local->index;
> 
> -	switch (local->index | media_entity_type(remote->entity)) {
> -	case IPIPEIF_PAD_SINK | MEDIA_ENT_T_V4L2_SUBDEV:
> +	/* FIXME: this is actually a hack! */
> +	if (is_media_entity_v4l2_subdev(remote->entity))
> +		index |= 2 << 16;
> +
> +	switch (index) {
> +	case IPIPEIF_PAD_SINK | 2 << 16:
>  		/* Read from the sensor CSI2a or CSI2b. */
>  		if (!(flags & MEDIA_LNK_FL_ENABLED)) {
>  			ipipeif->input = IPIPEIF_INPUT_NONE;
> @@ -681,7 +686,7 @@ static int ipipeif_link_setup(struct media_entity
> *entity,
> 
>  		break;
> 
> -	case IPIPEIF_PAD_SOURCE_ISIF_SF | MEDIA_ENT_T_DEVNODE:
> +	case IPIPEIF_PAD_SOURCE_ISIF_SF:
>  		/* Write to memory */
>  		if (flags & MEDIA_LNK_FL_ENABLED) {
>  			if (ipipeif->output & ~IPIPEIF_OUTPUT_MEMORY)
> @@ -692,7 +697,7 @@ static int ipipeif_link_setup(struct media_entity
> *entity, }
>  		break;
> 
> -	case IPIPEIF_PAD_SOURCE_VP | MEDIA_ENT_T_V4L2_SUBDEV:
> +	case IPIPEIF_PAD_SOURCE_VP | 2 << 16:
>  		/* Send to IPIPE/RESIZER */
>  		if (flags & MEDIA_LNK_FL_ENABLED) {
>  			if (ipipeif->output & ~IPIPEIF_OUTPUT_VP)
> diff --git a/drivers/staging/media/omap4iss/iss_resizer.c
> b/drivers/staging/media/omap4iss/iss_resizer.c index
> b659e465cb56..bc5001002cc5 100644
> --- a/drivers/staging/media/omap4iss/iss_resizer.c
> +++ b/drivers/staging/media/omap4iss/iss_resizer.c
> @@ -717,9 +717,14 @@ static int resizer_link_setup(struct media_entity
> *entity, struct v4l2_subdev *sd = media_entity_to_v4l2_subdev(entity);
>  	struct iss_resizer_device *resizer = v4l2_get_subdevdata(sd);
>  	struct iss_device *iss = to_iss_device(resizer);
> +	int index = local->index;
> 
> -	switch (local->index | media_entity_type(remote->entity)) {
> -	case RESIZER_PAD_SINK | MEDIA_ENT_T_V4L2_SUBDEV:
> +	/* FIXME: this is actually a hack! */
> +	if (is_media_entity_v4l2_subdev(remote->entity))
> +		index |= 2 << 16;
> +
> +	switch (index) {
> +	case RESIZER_PAD_SINK | 2 << 16:
>  		/* Read from IPIPE or IPIPEIF. */
>  		if (!(flags & MEDIA_LNK_FL_ENABLED)) {
>  			resizer->input = RESIZER_INPUT_NONE;
> @@ -737,7 +742,7 @@ static int resizer_link_setup(struct media_entity
> *entity,
> 
>  		break;
> 
> -	case RESIZER_PAD_SOURCE_MEM | MEDIA_ENT_T_DEVNODE:
> +	case RESIZER_PAD_SOURCE_MEM :

There's an unneeded space before the :.

>  		/* Write to memory */
>  		if (flags & MEDIA_LNK_FL_ENABLED) {
>  			if (resizer->output & ~RESIZER_OUTPUT_MEMORY)

-- 
Regards,

Laurent Pinchart


  reply	other threads:[~2015-12-06  2:08 UTC|newest]

Thread overview: 309+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-30  3:06 [PATCH v8 00/55] MC next generation patches Mauro Carvalho Chehab
2015-08-30  3:06 ` Mauro Carvalho Chehab
2015-08-30  3:06 ` Mauro Carvalho Chehab
2015-08-30  3:06 ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 01/55] [media] media: create a macro to get entity ID Mauro Carvalho Chehab
2015-08-30  3:06   ` Mauro Carvalho Chehab
2015-09-10 13:58   ` Javier Martinez Canillas
2015-09-10 13:58     ` Javier Martinez Canillas
2015-12-06  3:20   ` Laurent Pinchart
2015-12-06  3:20     ` Laurent Pinchart
2015-08-30  3:06 ` [PATCH v8 02/55] [media] staging: omap4iss: get entity ID using media_entity_id() Mauro Carvalho Chehab
2015-12-06  3:18   ` Laurent Pinchart
2015-12-07 15:24     ` Javier Martinez Canillas
2015-08-30  3:06 ` [PATCH v8 03/55] [media] omap3isp: " Mauro Carvalho Chehab
2015-08-31 10:10   ` Hans Verkuil
2015-12-06  3:16   ` Laurent Pinchart
2015-12-07 15:22     ` Javier Martinez Canillas
2015-08-30  3:06 ` [PATCH v8 04/55] [media] media: add a common struct to be embed on media graph objects Mauro Carvalho Chehab
2015-09-09  7:01   ` Sakari Ailus
2015-09-09 11:10     ` Mauro Carvalho Chehab
2015-09-10 14:02   ` Javier Martinez Canillas
2015-08-30  3:06 ` [PATCH v8 05/55] [media] media: use media_gobj inside entities Mauro Carvalho Chehab
2015-09-10 14:04   ` Javier Martinez Canillas
2015-08-30  3:06 ` [PATCH v8 06/55] [media] media: use media_gobj inside pads Mauro Carvalho Chehab
2015-09-09  7:37   ` Sakari Ailus
2015-09-10 14:09   ` Javier Martinez Canillas
2015-08-30  3:06 ` [PATCH v8 07/55] [media] media: use media_gobj inside links Mauro Carvalho Chehab
2015-09-10 14:10   ` Javier Martinez Canillas
2015-08-30  3:06 ` [PATCH v8 08/55] [media] media: add messages when media device gets (un)registered Mauro Carvalho Chehab
2015-09-10 14:12   ` Javier Martinez Canillas
2015-08-30  3:06 ` [PATCH v8 09/55] [media] media: add a debug message to warn about gobj creation/removal Mauro Carvalho Chehab
2015-09-10 14:14   ` Javier Martinez Canillas
2015-08-30  3:06 ` [PATCH v8 10/55] [media] media: rename the function that create pad links Mauro Carvalho Chehab
2015-08-30  3:06   ` Mauro Carvalho Chehab
2015-08-30  3:06   ` Mauro Carvalho Chehab
2015-08-30  3:06   ` Mauro Carvalho Chehab
2015-09-10 14:16   ` Javier Martinez Canillas
2015-09-10 14:16     ` Javier Martinez Canillas
2015-09-10 14:16     ` Javier Martinez Canillas
2015-09-10 14:16     ` Javier Martinez Canillas
2015-08-30  3:06 ` [PATCH v8 11/55] [media] media: use entity.graph_obj.mdev instead of .parent Mauro Carvalho Chehab
2015-08-30  3:06   ` Mauro Carvalho Chehab
2015-08-30  3:06   ` Mauro Carvalho Chehab
2015-08-30  3:06   ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 12/55] [media] media: remove media entity .parent field Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 13/55] [media] uapi/media.h: Declare interface types for V4L2 and DVB Mauro Carvalho Chehab
2015-09-10 14:19   ` Javier Martinez Canillas
2015-09-10 14:19     ` Javier Martinez Canillas
2015-08-30  3:06 ` [PATCH v8 14/55] [media] media: add functions to allow creating interfaces Mauro Carvalho Chehab
2015-08-31 10:20   ` Hans Verkuil
2015-08-31 10:49     ` Mauro Carvalho Chehab
2015-09-06 12:02   ` Mauro Carvalho Chehab
2015-09-09  7:34     ` Sakari Ailus
2015-09-09 10:00       ` Mauro Carvalho Chehab
2015-09-10 14:22     ` Javier Martinez Canillas
2015-09-11 12:57     ` Hans Verkuil
2015-12-08 14:36       ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 15/55] [media] uapi/media.h: Declare interface types for ALSA Mauro Carvalho Chehab
2015-09-06 12:02   ` Mauro Carvalho Chehab
2015-09-06 12:02     ` Mauro Carvalho Chehab
2015-09-10 14:23     ` Javier Martinez Canillas
2015-08-30  3:06 ` [PATCH v8 16/55] [media] media: Don't accept early-created links Mauro Carvalho Chehab
2015-08-31 10:30   ` Hans Verkuil
2015-08-31 10:54     ` Mauro Carvalho Chehab
2015-08-31 11:01       ` Hans Verkuil
2015-08-31 14:39         ` Javier Martinez Canillas
2015-08-31 15:05           ` Mauro Carvalho Chehab
2015-09-06 12:02   ` Mauro Carvalho Chehab
2015-12-06  3:13     ` Laurent Pinchart
2015-08-30  3:06 ` [PATCH v8 17/55] [media] omap3isp: separate links creation from entities init Mauro Carvalho Chehab
2015-11-23 15:55   ` Laurent Pinchart
2015-11-23 16:22     ` Javier Martinez Canillas
2015-08-30  3:06 ` [PATCH v8 18/55] [media] omap3isp: create links after all subdevs have been bound Mauro Carvalho Chehab
2015-09-09  8:03   ` Sakari Ailus
2015-09-09  8:48     ` Javier Martinez Canillas
2015-12-06  3:05       ` Laurent Pinchart
2015-12-07 15:17         ` Javier Martinez Canillas
2015-09-09 10:28     ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 19/55] [media] media: convert links from array to list Mauro Carvalho Chehab
2015-09-04  8:41   ` Sakari Ailus
2015-09-04  9:00     ` Hans Verkuil
2015-09-04 11:10       ` Mauro Carvalho Chehab
2015-09-04 11:28   ` [PATCH v8.1 " Mauro Carvalho Chehab
2015-09-04 11:48     ` [PATCH v8.2 " Mauro Carvalho Chehab
2015-09-06 12:02       ` Mauro Carvalho Chehab
2015-11-23 15:37         ` Laurent Pinchart
2015-11-23 15:41           ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 20/55] [media] media: make add link more generic Mauro Carvalho Chehab
2015-08-31 10:44   ` Hans Verkuil
2015-09-06 12:02   ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 21/55] [media] media: make media_link more generic to handle interace links Mauro Carvalho Chehab
2015-08-31 10:44   ` Hans Verkuil
2015-09-06 12:02   ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 22/55] [media] media: make link debug printk more generic Mauro Carvalho Chehab
2015-09-06 12:02   ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 23/55] [media] media: add support to link interfaces and entities Mauro Carvalho Chehab
2015-08-31 10:48   ` Hans Verkuil
2015-09-06 12:02   ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 24/55] [media] media-entity: add a helper function to create interface Mauro Carvalho Chehab
2015-08-31 10:49   ` Hans Verkuil
2015-09-06 12:02   ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 25/55] [media] dvbdev: add support for interfaces Mauro Carvalho Chehab
2015-08-31 10:51   ` Hans Verkuil
2015-08-30  3:06 ` [PATCH v8 26/55] [media] media: add a linked list to track interfaces by mdev Mauro Carvalho Chehab
2015-08-31 10:52   ` Hans Verkuil
2015-09-06 12:02   ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 27/55] [media] dvbdev: add support for indirect interface links Mauro Carvalho Chehab
2015-08-31 10:54   ` Hans Verkuil
2015-09-06 12:02   ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 28/55] [media] uapi/media.h: Fix entity namespace Mauro Carvalho Chehab
2015-08-31 11:17   ` Hans Verkuil
2015-08-31 12:12     ` Mauro Carvalho Chehab
2015-09-06 12:02   ` Mauro Carvalho Chehab
2015-09-06 12:02     ` Mauro Carvalho Chehab
2015-09-11 13:06     ` Hans Verkuil
2015-09-11 13:06       ` Hans Verkuil
2015-08-30  3:06 ` [PATCH v8 29/55] [media] replace all occurrences of MEDIA_ENT_T_DEVNODE_V4L Mauro Carvalho Chehab
2015-08-30  3:06   ` Mauro Carvalho Chehab
2015-08-31 11:22   ` Hans Verkuil
2015-08-31 11:22     ` Hans Verkuil
2015-08-30  3:06 ` [PATCH v8 30/55] [media] replace all occurrences of MEDIA_ENT_T_DEVNODE_DVB Mauro Carvalho Chehab
2015-08-31 11:21   ` Hans Verkuil
2015-08-30  3:06 ` [PATCH v8 31/55] [media] media: add macros to check if subdev or V4L2 DMA Mauro Carvalho Chehab
2015-08-31 11:31   ` Hans Verkuil
2015-08-31 11:40     ` Hans Verkuil
2015-08-31 13:08     ` Mauro Carvalho Chehab
2015-08-31 13:46       ` Hans Verkuil
2015-09-06 12:02   ` Mauro Carvalho Chehab
2015-12-06  2:20     ` Laurent Pinchart
2015-12-08 15:41       ` Mauro Carvalho Chehab
2016-02-16  0:34         ` Laurent Pinchart
2015-08-30  3:06 ` [PATCH v8 32/55] [media] media: use macros to check for V4L2 subdev entities Mauro Carvalho Chehab
2015-08-30  3:06   ` Mauro Carvalho Chehab
2015-08-30  3:06   ` Mauro Carvalho Chehab
2015-08-30  3:06   ` Mauro Carvalho Chehab
2015-10-11 21:07   ` Sakari Ailus
2015-10-11 21:07     ` Sakari Ailus
2015-10-11 21:07     ` Sakari Ailus
2015-10-11 21:07     ` Sakari Ailus
2015-10-12  0:56     ` Mauro Carvalho Chehab
2015-10-12  0:56       ` Mauro Carvalho Chehab
2015-10-12  0:56       ` Mauro Carvalho Chehab
2015-10-12  0:56       ` Mauro Carvalho Chehab
2015-10-12 15:35       ` Sakari Ailus
2015-10-12 15:35         ` Sakari Ailus
2015-10-12 15:35         ` Sakari Ailus
2015-10-12 15:35         ` Sakari Ailus
2015-10-12 16:00         ` Mauro Carvalho Chehab
2015-10-12 16:00           ` Mauro Carvalho Chehab
2015-10-12 16:00           ` Mauro Carvalho Chehab
2015-10-12 16:00           ` Mauro Carvalho Chehab
2015-12-08 15:57         ` Mauro Carvalho Chehab
2015-12-08 17:05           ` Mauro Carvalho Chehab
2015-12-08 17:08             ` Mauro Carvalho Chehab
2015-10-12 15:38       ` [PATCH 1/1] media: Correctly determine whether an entity is a sub-device Sakari Ailus
2015-10-12 15:38         ` Sakari Ailus
2015-10-12 15:38         ` Sakari Ailus
2015-10-12 15:58         ` Mauro Carvalho Chehab
2015-10-12 15:58           ` Mauro Carvalho Chehab
2015-10-12 15:58           ` Mauro Carvalho Chehab
2015-10-12 15:58           ` Mauro Carvalho Chehab
2015-12-06  2:16   ` [PATCH v8 32/55] [media] media: use macros to check for V4L2 subdev entities Laurent Pinchart
2015-12-06  2:16     ` Laurent Pinchart
2015-12-06  2:16     ` Laurent Pinchart
2015-12-08 16:03     ` Mauro Carvalho Chehab
2015-12-08 16:03       ` Mauro Carvalho Chehab
2015-12-08 16:03       ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 33/55] [media] omap3/omap4/davinci: get rid of MEDIA_ENT_T_V4L2_SUBDEV abuse Mauro Carvalho Chehab
2015-12-06  2:08   ` Laurent Pinchart [this message]
2015-12-08 16:52     ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 34/55] [media] s5c73m3: fix subdev type Mauro Carvalho Chehab
2015-12-06  1:57   ` Laurent Pinchart
2015-12-08 17:11     ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 35/55] [media] s5k5baf: " Mauro Carvalho Chehab
2015-12-06  1:55   ` Laurent Pinchart
2015-12-08 17:17     ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 36/55] [media] davinci_vbpe: stop MEDIA_ENT_T_V4L2_SUBDEV abuse Mauro Carvalho Chehab
2015-12-06  1:52   ` Laurent Pinchart
2015-12-08 17:22     ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 37/55] [media] omap4iss: " Mauro Carvalho Chehab
2015-12-06  1:46   ` Laurent Pinchart
2015-12-08 17:47     ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 38/55] [media] v4l2-subdev: use MEDIA_ENT_T_UNKNOWN for new subdevs Mauro Carvalho Chehab
2015-08-31 11:43   ` Hans Verkuil
2015-08-31 11:43     ` Hans Verkuil
2015-09-06 12:02   ` Mauro Carvalho Chehab
2015-12-06  1:37     ` Laurent Pinchart
2015-12-08 17:38       ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 39/55] [media] media controller: get rid of entity subtype on Kernel Mauro Carvalho Chehab
2015-08-31 11:44   ` Hans Verkuil
2015-08-31 11:44     ` Hans Verkuil
2015-09-06 12:02   ` Mauro Carvalho Chehab
2015-09-06 12:02     ` Mauro Carvalho Chehab
2015-09-11 13:08     ` Hans Verkuil
2015-09-11 13:08       ` Hans Verkuil
2015-12-06  1:03     ` Laurent Pinchart
2015-12-06  1:03       ` Laurent Pinchart
2015-08-30  3:06 ` [PATCH v8 40/55] [media] media.h: don't use legacy entity macros at Kernel Mauro Carvalho Chehab
2015-08-30  3:06   ` Mauro Carvalho Chehab
2015-08-31 11:44   ` Hans Verkuil
2015-08-31 11:44     ` Hans Verkuil
2015-09-06 12:03   ` Mauro Carvalho Chehab
2015-09-06 12:03     ` Mauro Carvalho Chehab
2015-12-06  1:02     ` Laurent Pinchart
2015-12-06  1:02       ` Laurent Pinchart
2015-08-30  3:06 ` [PATCH v8 41/55] [media] DocBook: update descriptions for the media controller entities Mauro Carvalho Chehab
2015-08-31 11:22   ` Hans Verkuil
2015-09-06 12:03   ` Mauro Carvalho Chehab
2015-09-11 13:13     ` Hans Verkuil
2015-12-06  1:00       ` Laurent Pinchart
2015-12-08 18:04         ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 42/55] [media] dvb: modify core to implement interfaces/entities at MC new gen Mauro Carvalho Chehab
2015-08-31 11:49   ` Hans Verkuil
2015-09-06 12:03   ` Mauro Carvalho Chehab
2015-09-11 13:51     ` Hans Verkuil
2015-08-30  3:06 ` [PATCH v8 43/55] [media] media: report if a pad is sink or source at debug msg Mauro Carvalho Chehab
2015-08-31 11:51   ` Hans Verkuil
2015-09-06 12:03   ` Mauro Carvalho Chehab
2015-09-11 13:52     ` Hans Verkuil
2015-12-06  0:53     ` Laurent Pinchart
2015-12-08 18:46       ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 44/55] [media] uapi/media.h: Add MEDIA_IOC_G_TOPOLOGY ioctl Mauro Carvalho Chehab
2015-08-31 12:00   ` Hans Verkuil
2015-08-31 13:35     ` Mauro Carvalho Chehab
2015-08-31 13:35       ` Mauro Carvalho Chehab
2015-09-06 12:03   ` Mauro Carvalho Chehab
2015-09-06 12:03     ` Mauro Carvalho Chehab
2015-09-11 13:58     ` Hans Verkuil
2015-09-11 13:58       ` Hans Verkuil
2015-12-06  0:47     ` Laurent Pinchart
2015-12-06  0:47       ` Laurent Pinchart
2015-12-08 19:23       ` Mauro Carvalho Chehab
2015-12-08 19:48         ` Arnd Bergmann
2015-12-08 19:48           ` Arnd Bergmann
2015-08-30  3:06 ` [PATCH v8 45/55] [media] media: Use a macro to interate between all interfaces Mauro Carvalho Chehab
2015-08-31 12:01   ` Hans Verkuil
2015-09-06 12:03   ` Mauro Carvalho Chehab
2015-11-23 22:36     ` Laurent Pinchart
2015-08-30  3:06 ` [PATCH v8 46/55] [media] media: move mdev list init to gobj Mauro Carvalho Chehab
2015-08-31 12:03   ` Hans Verkuil
2015-09-06 12:03   ` Mauro Carvalho Chehab
2015-09-11 13:59     ` Hans Verkuil
2015-11-23 22:32     ` Laurent Pinchart
2015-12-08 19:31       ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 47/55] [media] media-device: add pads and links to media_device Mauro Carvalho Chehab
2015-08-31 12:25   ` Hans Verkuil
2015-09-06 12:03   ` Mauro Carvalho Chehab
2015-11-23 22:28     ` Laurent Pinchart
2015-11-24 12:19       ` Mauro Carvalho Chehab
2015-08-30  3:06 ` [PATCH v8 48/55] [media] media_device: add a topology version field Mauro Carvalho Chehab
2015-08-31 12:29   ` Hans Verkuil
2015-08-31 12:52     ` Mauro Carvalho Chehab
2015-08-31 13:35       ` Hans Verkuil
2015-09-04 17:08         ` Mauro Carvalho Chehab
2015-11-23 22:18           ` Laurent Pinchart
2015-12-08 20:05             ` Mauro Carvalho Chehab
2015-11-23 22:20     ` Laurent Pinchart
2015-09-06 12:03   ` Mauro Carvalho Chehab
2015-09-11 13:59     ` Hans Verkuil
2015-08-30  3:07 ` [PATCH v8 49/55] [media] media-device: add support for MEDIA_IOC_G_TOPOLOGY ioctl Mauro Carvalho Chehab
2015-08-31 12:47   ` Hans Verkuil
2015-08-31 13:40     ` Mauro Carvalho Chehab
2015-08-31 13:48       ` Hans Verkuil
2015-09-06 12:03   ` Mauro Carvalho Chehab
2015-09-07 22:18     ` Sakari Ailus
2015-09-08  1:23       ` Mauro Carvalho Chehab
2015-09-08  7:26         ` Sakari Ailus
2015-09-08 10:49           ` Mauro Carvalho Chehab
2015-09-08 13:34             ` Sakari Ailus
2015-09-08 15:11               ` Mauro Carvalho Chehab
2015-09-11 14:08     ` Hans Verkuil
2015-12-08 20:20       ` Mauro Carvalho Chehab
2015-11-23 22:04     ` Laurent Pinchart
2015-12-08 20:17       ` Mauro Carvalho Chehab
2015-08-30  3:07 ` [PATCH v8 50/55] [media] media-entity: unregister entity links Mauro Carvalho Chehab
2015-08-31 12:48   ` Hans Verkuil
2015-09-06 12:03   ` Mauro Carvalho Chehab
2015-11-23 21:27     ` Laurent Pinchart
2015-12-08 20:23       ` Mauro Carvalho Chehab
2015-08-30  3:07 ` [PATCH v8 51/55] [media] remove interface links at media_entity_unregister() Mauro Carvalho Chehab
2015-08-31 12:53   ` Hans Verkuil
2015-08-31 13:42     ` Mauro Carvalho Chehab
2015-09-06 12:03   ` Mauro Carvalho Chehab
2015-09-11 14:18     ` Hans Verkuil
2015-08-30  3:07 ` [PATCH v8 52/55] [media] media-device: remove interfaces and interface links Mauro Carvalho Chehab
2015-08-31 12:57   ` Hans Verkuil
2015-09-06 12:03   ` Mauro Carvalho Chehab
2015-09-11 14:20     ` Hans Verkuil
2015-11-23 21:22     ` Laurent Pinchart
2015-12-09 13:39       ` Mauro Carvalho Chehab
2015-08-30  3:07 ` [PATCH v8 53/55] [media] v4l2-core: create MC interfaces for devnodes Mauro Carvalho Chehab
2015-08-31 13:23   ` Hans Verkuil
2015-09-04 16:13     ` Mauro Carvalho Chehab
2015-09-06 12:03   ` Mauro Carvalho Chehab
2015-09-11 14:38     ` Hans Verkuil
2015-11-23 21:10     ` Laurent Pinchart
2015-11-24 11:25       ` Mauro Carvalho Chehab
2015-08-30  3:07 ` [PATCH v8 54/55] [media] au0828: unregister MC at the end Mauro Carvalho Chehab
2015-08-31 13:25   ` Hans Verkuil
2015-09-04 22:24     ` Mauro Carvalho Chehab
2015-08-30  3:07 ` [PATCH v8 55/55] [media] media-entity.h: document all the structs Mauro Carvalho Chehab
2015-09-06 12:03   ` Mauro Carvalho Chehab
2015-09-11 14:45     ` Hans Verkuil
2015-11-23 20:19     ` Laurent Pinchart
2015-12-10 18:16       ` Mauro Carvalho Chehab
2015-08-30 14:27 ` [PATCH v8 00/55] MC next generation patches Mauro Carvalho Chehab
2015-08-30 14:27   ` Mauro Carvalho Chehab
2015-08-30 14:27   ` Mauro Carvalho Chehab
2015-08-30 14:27   ` Mauro Carvalho Chehab

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1976836.7xiRZsLFCP@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=boris.brezillon@free-electrons.com \
    --cc=devel@driverdev.osuosl.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hamohammed.sa@gmail.com \
    --cc=hans.verkuil@cisco.com \
    --cc=javier@osg.samsung.com \
    --cc=linux-media@vger.kernel.org \
    --cc=mahati.chamarthy@gmail.com \
    --cc=mchehab@infradead.org \
    --cc=mchehab@osg.samsung.com \
    --cc=prabhakar.csengg@gmail.com \
    --cc=sakari.ailus@linux.intel.com \
    --cc=tapaswenipathak@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.