Re: [PATCHv4 15/25] [media] tuner-core: properly initialize media controller subdev

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 02/13/2015 11:57 PM, Mauro Carvalho Chehab wrote:
> Properly initialize tuner core subdev at the media controller.
> 
> That requires a new subtype at the media controller API.
> 
> Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
> 
> diff --git a/drivers/media/v4l2-core/tuner-core.c b/drivers/media/v4l2-core/tuner-core.c
> index 559f8372e2eb..9a83b27a7e8f 100644
> --- a/drivers/media/v4l2-core/tuner-core.c
> +++ b/drivers/media/v4l2-core/tuner-core.c
> @@ -134,6 +134,9 @@ struct tuner {
>  	unsigned int        type; /* chip type id */
>  	void                *config;
>  	const char          *name;
> +#if defined(CONFIG_MEDIA_CONTROLLER)
> +	struct media_pad	pad;
> +#endif
>  };
>  
>  /*
> @@ -434,6 +437,8 @@ static void set_type(struct i2c_client *c, unsigned int type,
>  		t->name = analog_ops->info.name;
>  	}
>  
> +	t->sd.entity.name = t->name;
> +
>  	tuner_dbg("type set to %s\n", t->name);
>  
>  	t->mode_mask = new_mode_mask;
> @@ -592,6 +597,9 @@ static int tuner_probe(struct i2c_client *client,
>  	struct tuner *t;
>  	struct tuner *radio;
>  	struct tuner *tv;
> +#ifdef CONFIG_MEDIA_CONTROLLER
> +	int ret;
> +#endif
>  
>  	t = kzalloc(sizeof(struct tuner), GFP_KERNEL);
>  	if (NULL == t)
> @@ -684,6 +692,18 @@ static int tuner_probe(struct i2c_client *client,
>  
>  	/* Should be just before return */
>  register_client:
> +#if defined(CONFIG_MEDIA_CONTROLLER)
> +	t->pad.flags = MEDIA_PAD_FL_SOURCE;
> +	t->sd.entity.type = MEDIA_ENT_T_V4L2_SUBDEV_TUNER;
> +	t->sd.entity.name = t->name;

Will this be a unique name in the case of one board with multiple identical tuners?

I don't know if we have any cards like that (my PVR-500 is really two PCI boards on
one PCB).

Laurent, the name should be unique, right? In any case, the spec needs to be updated
to clearly state whether or not the name should be unique.

Regards,

	Hans

> +
> +	ret = media_entity_init(&t->sd.entity, 1, &t->pad, 0);
> +	if (ret < 0) {
> +		tuner_err("failed to initialize media entity!\n");
> +		kfree(t);
> +		return -ENODEV;
> +	}
> +#endif
>  	/* Sets a default mode */
>  	if (t->mode_mask & T_ANALOG_TV)
>  		t->mode = V4L2_TUNER_ANALOG_TV;
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux