Re: [PATCH 13/18] s5k5baf: fix subdev type

Andrzej Hajda
2015-05-08T13:51:26Z

Hi Mauro,

On 05/08/2015 03:12 AM, Mauro Carvalho Chehab wrote:
> This sensor driver is abusing MEDIA_ENT_T_V4L2_SUBDEV, creating
> some subdevs with a non-existing type.
>
> As this is a sensor driver, the proper type is likely
> MEDIA_ENT_T_CAM_SENSOR.

This driver exposes two media entities:
- pure camera sensor, it has type
MEDIA_ENT_T_V4L2_SUBDEV_SENSOR/MEDIA_ENT_T_CAM_SENSOR,
- image processing entity, I have assigned to it MEDIA_ENT_T_V4L2_SUBDEV
type,
as there were no better option.
Maybe it would be better to introduce another define for such entities,
for example MEDIA_ENT_T_CAM_ISP?
The same applies to s5c73m3 driver.

Anyway this patch breaks current code as type field is used internally
to distinguish both entities in subdev callbacks -
s5k5baf_is_cis_subdev function.
Of course the function can be rewritten if necessary.

Regards
Andrzej

>
> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
>
> diff --git a/drivers/media/i2c/s5k5baf.c b/drivers/media/i2c/s5k5baf.c
> index fadd48d35a55..8373552847ab 100644
> --- a/drivers/media/i2c/s5k5baf.c
> +++ b/drivers/media/i2c/s5k5baf.c
> @@ -1919,7 +1919,7 @@ static int s5k5baf_configure_subdevs(struct s5k5baf *state,
>
> state->pads[PAD_CIS].flags = MEDIA_PAD_FL_SINK;
> state->pads[PAD_OUT].flags = MEDIA_PAD_FL_SOURCE;
> - sd->entity.type = MEDIA_ENT_T_V4L2_SUBDEV;
> + sd->entity.type = MEDIA_ENT_T_CAM_SENSOR;
> ret = media_entity_init(&sd->entity, NUM_ISP_PADS, state->pads, 0);
>
> if (!ret)