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 <mche...@osg.samsung.com>
> 
> 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to