All of lore.kernel.org
 help / color / mirror / Atom feed
From: khilman@baylibre.com (Kevin Hilman)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 5/6] [media] davinci: vpif_capture: don't lock over s_stream
Date: Tue, 25 Oct 2016 16:55:35 -0700	[thread overview]
Message-ID: <20161025235536.7342-6-khilman@baylibre.com> (raw)
In-Reply-To: <20161025235536.7342-1-khilman@baylibre.com>

Video capture subdevs may be over I2C and may sleep during xfer, so we
cannot do IRQ-disabled locking when calling the subdev.

Signed-off-by: Kevin Hilman <khilman@baylibre.com>
---
 drivers/media/platform/davinci/vpif_capture.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/media/platform/davinci/vpif_capture.c b/drivers/media/platform/davinci/vpif_capture.c
index 79cef74e164f..becc3e63b472 100644
--- a/drivers/media/platform/davinci/vpif_capture.c
+++ b/drivers/media/platform/davinci/vpif_capture.c
@@ -193,12 +193,16 @@ static int vpif_start_streaming(struct vb2_queue *vq, unsigned int count)
 		}
 	}
 
+	spin_unlock_irqrestore(&common->irqlock, flags);
+
 	ret = v4l2_subdev_call(ch->sd, video, s_stream, 1);
 	if (ret && ret != -ENOIOCTLCMD && ret != -ENODEV) {
 		vpif_dbg(1, debug, "stream on failed in subdev\n");
 		goto err;
 	}
 
+	spin_lock_irqsave(&common->irqlock, flags);
+
 	/* Call vpif_set_params function to set the parameters and addresses */
 	ret = vpif_set_video_params(vpif, ch->channel_id);
 	if (ret < 0) {
-- 
2.9.3

WARNING: multiple messages have this Message-ID (diff)
From: Kevin Hilman <khilman@baylibre.com>
To: Hans Verkuil <hverkuil@xs4all.nl>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	linux-media@vger.kernel.org
Cc: "Sekhar Nori" <nsekhar@ti.com>,
	"Axel Haslam" <ahaslam@baylibre.com>,
	"Bartosz Gołaszewski" <bgolaszewski@baylibre.com>,
	"Alexandre Bailon" <abailon@baylibre.com>,
	"David Lechner" <david@lechnology.com>,
	linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 5/6] [media] davinci: vpif_capture: don't lock over s_stream
Date: Tue, 25 Oct 2016 16:55:35 -0700	[thread overview]
Message-ID: <20161025235536.7342-6-khilman@baylibre.com> (raw)
In-Reply-To: <20161025235536.7342-1-khilman@baylibre.com>

Video capture subdevs may be over I2C and may sleep during xfer, so we
cannot do IRQ-disabled locking when calling the subdev.

Signed-off-by: Kevin Hilman <khilman@baylibre.com>
---
 drivers/media/platform/davinci/vpif_capture.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/media/platform/davinci/vpif_capture.c b/drivers/media/platform/davinci/vpif_capture.c
index 79cef74e164f..becc3e63b472 100644
--- a/drivers/media/platform/davinci/vpif_capture.c
+++ b/drivers/media/platform/davinci/vpif_capture.c
@@ -193,12 +193,16 @@ static int vpif_start_streaming(struct vb2_queue *vq, unsigned int count)
 		}
 	}
 
+	spin_unlock_irqrestore(&common->irqlock, flags);
+
 	ret = v4l2_subdev_call(ch->sd, video, s_stream, 1);
 	if (ret && ret != -ENOIOCTLCMD && ret != -ENODEV) {
 		vpif_dbg(1, debug, "stream on failed in subdev\n");
 		goto err;
 	}
 
+	spin_lock_irqsave(&common->irqlock, flags);
+
 	/* Call vpif_set_params function to set the parameters and addresses */
 	ret = vpif_set_video_params(vpif, ch->channel_id);
 	if (ret < 0) {
-- 
2.9.3


  parent reply	other threads:[~2016-10-25 23:55 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-25 23:55 [RFC PATCH 0/6] media: davinci: VPIF: add DT support Kevin Hilman
2016-10-25 23:55 ` Kevin Hilman
2016-10-25 23:55 ` [RFC PATCH 1/6] [media] davinci: add support for DT init Kevin Hilman
2016-10-25 23:55   ` Kevin Hilman
2016-10-25 23:55 ` [RFC PATCH 2/6] ARM: davinci: da8xx: VPIF: enable " Kevin Hilman
2016-10-25 23:55   ` Kevin Hilman
2016-10-25 23:55 ` [RFC PATCH 3/6] ARM: dts: davinci: da850: add VPIF Kevin Hilman
2016-10-25 23:55   ` Kevin Hilman
2016-10-25 23:55 ` [RFC PATCH 4/6] ARM: dts: davinci: da850-lcdk: enable VPIF capture Kevin Hilman
2016-10-25 23:55   ` Kevin Hilman
2016-10-25 23:55 ` Kevin Hilman [this message]
2016-10-25 23:55   ` [RFC PATCH 5/6] [media] davinci: vpif_capture: don't lock over s_stream Kevin Hilman
2016-10-25 23:55 ` [RFC PATCH 6/6] [media] davinci: vpif_capture: get subdevs from DT Kevin Hilman
2016-10-25 23:55   ` Kevin Hilman
2016-11-11 15:36   ` Hans Verkuil
2016-11-11 15:36     ` Hans Verkuil
2016-11-11 15:50     ` Javier Martinez Canillas
2016-11-11 15:50       ` Javier Martinez Canillas
2016-11-11 15:53       ` Javier Martinez Canillas
2016-11-11 15:53         ` Javier Martinez Canillas
2016-10-28 17:17 ` [RFC PATCH 0/6] media: davinci: VPIF: add DT support Kevin Hilman
2016-10-28 17:17   ` Kevin Hilman
2016-11-11 15:36 ` Hans Verkuil
2016-11-11 15:36   ` Hans Verkuil
2016-11-11 17:55   ` Kevin Hilman
2016-11-11 17:55     ` Kevin Hilman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161025235536.7342-6-khilman@baylibre.com \
    --to=khilman@baylibre.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.