OSDN Git Service

media: tvp5150: Add missed media_entity_cleanup()
authorChuhong Yuan <hslester96@gmail.com>
Sat, 6 Jun 2020 14:39:18 +0000 (16:39 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Sat, 4 Jul 2020 10:43:36 +0000 (12:43 +0200)
This driver does not call media_entity_cleanup() in the error handler
of tvp5150_registered() and tvp5150_remove(), while it has called
media_entity_pads_init() at first.
Add the missed calls to fix it.

Fixes: 0556f1d580d4 ("media: tvp5150: add input source selection of_graph support")
Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
Reviewed-by: Marco Felsch <m.felsch@pengutronix.de>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/i2c/tvp5150.c

index eb39cf5..9df5752 100644 (file)
@@ -1664,8 +1664,10 @@ static int tvp5150_registered(struct v4l2_subdev *sd)
        return 0;
 
 err:
-       for (i = 0; i < decoder->connectors_num; i++)
+       for (i = 0; i < decoder->connectors_num; i++) {
                media_device_unregister_entity(&decoder->connectors[i].ent);
+               media_entity_cleanup(&decoder->connectors[i].ent);
+       }
        return ret;
 #endif
 
@@ -2248,8 +2250,10 @@ static int tvp5150_remove(struct i2c_client *c)
 
        for (i = 0; i < decoder->connectors_num; i++)
                v4l2_fwnode_connector_free(&decoder->connectors[i].base);
-       for (i = 0; i < decoder->connectors_num; i++)
+       for (i = 0; i < decoder->connectors_num; i++) {
                media_device_unregister_entity(&decoder->connectors[i].ent);
+               media_entity_cleanup(&decoder->connectors[i].ent);
+       }
        v4l2_async_unregister_subdev(sd);
        v4l2_ctrl_handler_free(&decoder->hdl);
        pm_runtime_disable(&c->dev);