On 02/13/2015 11:57 PM, Mauro Carvalho Chehab wrote: > Instead of keeping the media controller entity not initialized, > fill it and create the pads for cx25840. > > Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx> > > diff --git a/drivers/media/i2c/cx25840/cx25840-core.c b/drivers/media/i2c/cx25840/cx25840-core.c > index 573e08826b9b..bdb5bb6b58da 100644 > --- a/drivers/media/i2c/cx25840/cx25840-core.c > +++ b/drivers/media/i2c/cx25840/cx25840-core.c > @@ -5137,6 +5137,9 @@ static int cx25840_probe(struct i2c_client *client, > int default_volume; > u32 id; > u16 device_id; > +#if defined(CONFIG_MEDIA_CONTROLLER) > + int ret; > +#endif > > /* Check if the adapter supports the needed features */ > if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA)) > @@ -5178,6 +5181,21 @@ static int cx25840_probe(struct i2c_client *client, > > sd = &state->sd; > v4l2_i2c_subdev_init(sd, client, &cx25840_ops); > +#if defined(CONFIG_MEDIA_CONTROLLER) > + /* TODO: need to represent analog inputs too */ Which analog inputs? Do you mean 'audio inputs' instead? Regards, Hans > + state->pads[0].flags = MEDIA_PAD_FL_SINK; /* Tuner or input */ > + state->pads[1].flags = MEDIA_PAD_FL_SOURCE; /* Video */ > + state->pads[2].flags = MEDIA_PAD_FL_SOURCE; /* VBI */ > + sd->entity.type = MEDIA_ENT_T_V4L2_SUBDEV_DECODER; > + > + ret = media_entity_init(&sd->entity, ARRAY_SIZE(state->pads), > + state->pads, 0); > + if (ret < 0) { > + v4l_info(client, "failed to initialize media entity!\n"); > + kfree(state); > + return -ENODEV; > + } > +#endif > > switch (id) { > case CX23885_AV: > diff --git a/drivers/media/i2c/cx25840/cx25840-core.h b/drivers/media/i2c/cx25840/cx25840-core.h > index 37bc04217c44..17b409f55445 100644 > --- a/drivers/media/i2c/cx25840/cx25840-core.h > +++ b/drivers/media/i2c/cx25840/cx25840-core.h > @@ -64,6 +64,9 @@ struct cx25840_state { > wait_queue_head_t fw_wait; /* wake up when the fw load is finished */ > struct work_struct fw_work; /* work entry for fw load */ > struct cx25840_ir_state *ir_state; > +#if defined(CONFIG_MEDIA_CONTROLLER) > + struct media_pad pads[3]; > +#endif > }; > > static inline struct cx25840_state *to_state(struct v4l2_subdev *sd) > -- 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