summaryrefslogtreecommitdiffstats
path: root/drivers/staging/media
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2024-04-10 17:15:32 +0100
committerMauro Carvalho Chehab <mchehab@kernel.org>2024-04-26 10:54:38 +0100
commite03a5d3e95f22d15d8dfd97b1d31ea6247931b48 (patch)
tree1f348b2e3d5cb391295b3b2c2e9425b1f6e09743 /drivers/staging/media
parent1c3432df2339c6fcc4399ea2299ad565bdb506e4 (diff)
downloadlinux-e03a5d3e95f22d15d8dfd97b1d31ea6247931b48.tar.gz
linux-e03a5d3e95f22d15d8dfd97b1d31ea6247931b48.tar.bz2
linux-e03a5d3e95f22d15d8dfd97b1d31ea6247931b48.zip
media: atomisp: Drop atomisp_pipe_check() from atomisp_link_setup()
The media-controller core (__media_entity_setup_link()) already checks that the pads of the link are not streaming before calling the setup_link() pad-op so calling atomisp_pipe_check() is not necessary; and taking isp->mutex inside the setup_link() pad-op leads to a possible ABBA deadlock vs the media-device graph_mutex which in the case of the setup_link() pad-op is taken before calling the op, while in other scenarios the graph_mutex is taken after the isp->mutex. Reviewed-by: Andy Shevchenko <andy@kernel.org> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Diffstat (limited to 'drivers/staging/media')
-rw-r--r--drivers/staging/media/atomisp/pci/atomisp_subdev.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/drivers/staging/media/atomisp/pci/atomisp_subdev.c b/drivers/staging/media/atomisp/pci/atomisp_subdev.c
index 53225958c23b..1bb33460210c 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_subdev.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_subdev.c
@@ -644,7 +644,7 @@ static int atomisp_link_setup(struct media_entity *entity,
entity);
struct atomisp_sub_device *asd = v4l2_get_subdevdata(sd);
struct atomisp_device *isp = asd->isp;
- int i, ret;
+ int i;
/* ISP's source is immutable */
if (local != &asd->pads[ATOMISP_SUBDEV_PAD_SINK]) {
@@ -663,12 +663,6 @@ static int atomisp_link_setup(struct media_entity *entity,
return -EINVAL;
}
- mutex_lock(&isp->mutex);
- ret = atomisp_pipe_check(&asd->video_out, true);
- mutex_unlock(&isp->mutex);
- if (ret)
- return ret;
-
/* Turn off the sensor on link disable */
if (!(flags & MEDIA_LNK_FL_ENABLED)) {
atomisp_s_sensor_power(isp, i, 0);