diff options
author | Hans Verkuil <hverkuil-cisco@xs4all.nl> | 2021-04-07 16:16:17 +0200 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab+huawei@kernel.org> | 2021-04-09 13:17:41 +0200 |
commit | e0a4205d656d1d2eb3e3cc82f68adca820b0418d (patch) | |
tree | 38e971a2597977206b5e4a1a7ce49ea04fd60ed1 /drivers/media | |
parent | 074e8eaaa29412a3a7d91e4b02409749468bbcc9 (diff) |
media: adv7842: configure all pads
Only the first pad was configured, but there are 4. This causes
set_fmt to fail with -EINVAL since the passed pad is > 0.
Configure all three sink pads and the source pad.
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/i2c/adv7842.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/media/i2c/adv7842.c b/drivers/media/i2c/adv7842.c index 8bd58ce07926..27f95d35e184 100644 --- a/drivers/media/i2c/adv7842.c +++ b/drivers/media/i2c/adv7842.c @@ -88,7 +88,7 @@ struct adv7842_format_info { struct adv7842_state { struct adv7842_platform_data pdata; struct v4l2_subdev sd; - struct media_pad pad; + struct media_pad pads[ADV7842_PAD_SOURCE + 1]; struct v4l2_ctrl_handler hdl; enum adv7842_mode mode; struct v4l2_dv_timings timings; @@ -3429,6 +3429,7 @@ static int adv7842_probe(struct i2c_client *client, struct v4l2_ctrl_handler *hdl; struct v4l2_ctrl *ctrl; struct v4l2_subdev *sd; + unsigned int i; u16 rev; int err; @@ -3532,8 +3533,11 @@ static int adv7842_probe(struct i2c_client *client, adv7842_delayed_work_enable_hotplug); sd->entity.function = MEDIA_ENT_F_DV_DECODER; - state->pad.flags = MEDIA_PAD_FL_SOURCE; - err = media_entity_pads_init(&sd->entity, 1, &state->pad); + for (i = 0; i < ADV7842_PAD_SOURCE; ++i) + state->pads[i].flags = MEDIA_PAD_FL_SINK; + state->pads[ADV7842_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE; + err = media_entity_pads_init(&sd->entity, ADV7842_PAD_SOURCE + 1, + state->pads); if (err) goto err_work_queues; |