From: Eugen Hristev <eugen.hristev@microchip.com>
To: <robh+dt@kernel.org>, <linux-media@vger.kernel.org>,
<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<jacopo+renesas@jmondi.org>, <hverkuil-cisco@xs4all.nl>
Cc: Hans Verkuil <hverkuil@xs4all.nl>,
Eugen Hristev <eugen.hristev@microchip.com>,
sakari.ailus@iki.fi, laurent.pinchart@ideasonboard.com
Subject: [PATCH v4 01/11] media: atmel: atmel-isc: replace 'stop' variable with vb2 calls
Date: Fri, 21 Jan 2022 15:14:06 +0200 [thread overview]
Message-ID: <20220121131416.603972-2-eugen.hristev@microchip.com> (raw)
In-Reply-To: <20220121131416.603972-1-eugen.hristev@microchip.com>
The stop variable is redundant as the state of the streaming can be obtained
by calling vb2_start_streaming_called(&isc->vb2_vidq) or by calling
vb2_is_busy(&isc->vb2_vidq).
Thus, remove the stop variable completely.
Suggested-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
---
Changes in v4:
- new patch
drivers/media/platform/atmel/atmel-isc-base.c | 12 +++++-------
drivers/media/platform/atmel/atmel-isc.h | 2 --
2 files changed, 5 insertions(+), 9 deletions(-)
diff --git a/drivers/media/platform/atmel/atmel-isc-base.c b/drivers/media/platform/atmel/atmel-isc-base.c
index db15770d5b88..9c62d0ae7887 100644
--- a/drivers/media/platform/atmel/atmel-isc-base.c
+++ b/drivers/media/platform/atmel/atmel-isc-base.c
@@ -362,7 +362,6 @@ static int isc_start_streaming(struct vb2_queue *vq, unsigned int count)
spin_lock_irqsave(&isc->dma_queue_lock, flags);
isc->sequence = 0;
- isc->stop = false;
reinit_completion(&isc->comp);
isc->cur_frm = list_first_entry(&isc->dma_queue,
@@ -403,8 +402,6 @@ static void isc_stop_streaming(struct vb2_queue *vq)
v4l2_ctrl_activate(isc->do_wb_ctrl, false);
- isc->stop = true;
-
/* Wait until the end of the current frame */
if (isc->cur_frm && !wait_for_completion_timeout(&isc->comp, 5 * HZ))
v4l2_err(&isc->v4l2_dev,
@@ -1029,7 +1026,7 @@ static int isc_s_fmt_vid_cap(struct file *file, void *priv,
{
struct isc_device *isc = video_drvdata(file);
- if (vb2_is_streaming(&isc->vb2_vidq))
+ if (vb2_is_busy(&isc->vb2_vidq))
return -EBUSY;
return isc_set_fmt(isc, f);
@@ -1236,7 +1233,8 @@ irqreturn_t isc_interrupt(int irq, void *dev_id)
isc->cur_frm = NULL;
}
- if (!list_empty(&isc->dma_queue) && !isc->stop) {
+ if (!list_empty(&isc->dma_queue) &&
+ vb2_start_streaming_called(&isc->vb2_vidq)) {
isc->cur_frm = list_first_entry(&isc->dma_queue,
struct isc_buffer, list);
list_del(&isc->cur_frm->list);
@@ -1244,7 +1242,7 @@ irqreturn_t isc_interrupt(int irq, void *dev_id)
isc_start_dma(isc);
}
- if (isc->stop)
+ if (!vb2_start_streaming_called(&isc->vb2_vidq))
complete(&isc->comp);
ret = IRQ_HANDLED;
@@ -1398,7 +1396,7 @@ static void isc_awb_work(struct work_struct *w)
int ret;
/* streaming is not active anymore */
- if (isc->stop)
+ if (!vb2_start_streaming_called(&isc->vb2_vidq))
return;
if (ctrls->hist_stat != HIST_ENABLED)
diff --git a/drivers/media/platform/atmel/atmel-isc.h b/drivers/media/platform/atmel/atmel-isc.h
index 07fa6dbf8460..5fbf52a9080b 100644
--- a/drivers/media/platform/atmel/atmel-isc.h
+++ b/drivers/media/platform/atmel/atmel-isc.h
@@ -201,7 +201,6 @@ struct isc_reg_offsets {
* @dma_queue: the queue for dma buffers
* @cur_frm: current isc frame/buffer
* @sequence: current frame number
- * @stop: true if isc is not streaming, false if streaming
* @comp: completion reference that signals frame completion
*
* @fmt: current v42l format
@@ -276,7 +275,6 @@ struct isc_device {
struct list_head dma_queue;
struct isc_buffer *cur_frm;
unsigned int sequence;
- bool stop;
struct completion comp;
struct v4l2_format fmt;
--
2.25.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Eugen Hristev <eugen.hristev@microchip.com>
To: <robh+dt@kernel.org>, <linux-media@vger.kernel.org>,
<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<jacopo+renesas@jmondi.org>, <hverkuil-cisco@xs4all.nl>
Cc: <nicolas.ferre@microchip.com>, <sakari.ailus@iki.fi>,
<laurent.pinchart@ideasonboard.com>,
Eugen Hristev <eugen.hristev@microchip.com>,
Hans Verkuil <hverkuil@xs4all.nl>
Subject: [PATCH v4 01/11] media: atmel: atmel-isc: replace 'stop' variable with vb2 calls
Date: Fri, 21 Jan 2022 15:14:06 +0200 [thread overview]
Message-ID: <20220121131416.603972-2-eugen.hristev@microchip.com> (raw)
In-Reply-To: <20220121131416.603972-1-eugen.hristev@microchip.com>
The stop variable is redundant as the state of the streaming can be obtained
by calling vb2_start_streaming_called(&isc->vb2_vidq) or by calling
vb2_is_busy(&isc->vb2_vidq).
Thus, remove the stop variable completely.
Suggested-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
---
Changes in v4:
- new patch
drivers/media/platform/atmel/atmel-isc-base.c | 12 +++++-------
drivers/media/platform/atmel/atmel-isc.h | 2 --
2 files changed, 5 insertions(+), 9 deletions(-)
diff --git a/drivers/media/platform/atmel/atmel-isc-base.c b/drivers/media/platform/atmel/atmel-isc-base.c
index db15770d5b88..9c62d0ae7887 100644
--- a/drivers/media/platform/atmel/atmel-isc-base.c
+++ b/drivers/media/platform/atmel/atmel-isc-base.c
@@ -362,7 +362,6 @@ static int isc_start_streaming(struct vb2_queue *vq, unsigned int count)
spin_lock_irqsave(&isc->dma_queue_lock, flags);
isc->sequence = 0;
- isc->stop = false;
reinit_completion(&isc->comp);
isc->cur_frm = list_first_entry(&isc->dma_queue,
@@ -403,8 +402,6 @@ static void isc_stop_streaming(struct vb2_queue *vq)
v4l2_ctrl_activate(isc->do_wb_ctrl, false);
- isc->stop = true;
-
/* Wait until the end of the current frame */
if (isc->cur_frm && !wait_for_completion_timeout(&isc->comp, 5 * HZ))
v4l2_err(&isc->v4l2_dev,
@@ -1029,7 +1026,7 @@ static int isc_s_fmt_vid_cap(struct file *file, void *priv,
{
struct isc_device *isc = video_drvdata(file);
- if (vb2_is_streaming(&isc->vb2_vidq))
+ if (vb2_is_busy(&isc->vb2_vidq))
return -EBUSY;
return isc_set_fmt(isc, f);
@@ -1236,7 +1233,8 @@ irqreturn_t isc_interrupt(int irq, void *dev_id)
isc->cur_frm = NULL;
}
- if (!list_empty(&isc->dma_queue) && !isc->stop) {
+ if (!list_empty(&isc->dma_queue) &&
+ vb2_start_streaming_called(&isc->vb2_vidq)) {
isc->cur_frm = list_first_entry(&isc->dma_queue,
struct isc_buffer, list);
list_del(&isc->cur_frm->list);
@@ -1244,7 +1242,7 @@ irqreturn_t isc_interrupt(int irq, void *dev_id)
isc_start_dma(isc);
}
- if (isc->stop)
+ if (!vb2_start_streaming_called(&isc->vb2_vidq))
complete(&isc->comp);
ret = IRQ_HANDLED;
@@ -1398,7 +1396,7 @@ static void isc_awb_work(struct work_struct *w)
int ret;
/* streaming is not active anymore */
- if (isc->stop)
+ if (!vb2_start_streaming_called(&isc->vb2_vidq))
return;
if (ctrls->hist_stat != HIST_ENABLED)
diff --git a/drivers/media/platform/atmel/atmel-isc.h b/drivers/media/platform/atmel/atmel-isc.h
index 07fa6dbf8460..5fbf52a9080b 100644
--- a/drivers/media/platform/atmel/atmel-isc.h
+++ b/drivers/media/platform/atmel/atmel-isc.h
@@ -201,7 +201,6 @@ struct isc_reg_offsets {
* @dma_queue: the queue for dma buffers
* @cur_frm: current isc frame/buffer
* @sequence: current frame number
- * @stop: true if isc is not streaming, false if streaming
* @comp: completion reference that signals frame completion
*
* @fmt: current v42l format
@@ -276,7 +275,6 @@ struct isc_device {
struct list_head dma_queue;
struct isc_buffer *cur_frm;
unsigned int sequence;
- bool stop;
struct completion comp;
struct v4l2_format fmt;
--
2.25.1
next prev parent reply other threads:[~2022-01-21 13:16 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-21 13:14 [PATCH v4 00/11] media: atmel: atmel-isc: implement media controller Eugen Hristev
2022-01-21 13:14 ` Eugen Hristev
2022-01-21 13:14 ` Eugen Hristev [this message]
2022-01-21 13:14 ` [PATCH v4 01/11] media: atmel: atmel-isc: replace 'stop' variable with vb2 calls Eugen Hristev
2022-02-07 10:46 ` Jacopo Mondi
2022-02-07 10:46 ` Jacopo Mondi
2022-02-08 12:50 ` Eugen.Hristev
2022-02-08 12:50 ` Eugen.Hristev
2022-01-21 13:14 ` [PATCH v4 02/11] media: atmel: atmel-isc-base: use streaming status when queueing buffers Eugen Hristev
2022-01-21 13:14 ` Eugen Hristev
2022-01-21 13:14 ` [PATCH v4 03/11] media: atmel: atmel-isc: implement media controller Eugen Hristev
2022-01-21 13:14 ` Eugen Hristev
2022-02-07 12:44 ` Jacopo Mondi
2022-02-07 12:44 ` Jacopo Mondi
2022-02-07 13:40 ` Eugen.Hristev
2022-02-07 13:40 ` Eugen.Hristev
2022-02-08 8:59 ` Jacopo Mondi
2022-02-08 8:59 ` Jacopo Mondi
2022-02-08 10:33 ` Eugen.Hristev
2022-02-08 10:33 ` Eugen.Hristev
2022-02-08 19:30 ` Jacopo Mondi
2022-02-08 19:30 ` Jacopo Mondi
2022-02-09 6:59 ` Eugen.Hristev
2022-02-09 6:59 ` Eugen.Hristev
2022-02-10 17:49 ` Jacopo Mondi
2022-02-10 17:49 ` Jacopo Mondi
2022-02-11 10:32 ` Eugen.Hristev
2022-02-11 10:32 ` Eugen.Hristev
2022-02-11 11:55 ` Jacopo Mondi
2022-02-11 11:55 ` Jacopo Mondi
2022-02-11 12:32 ` Eugen.Hristev
2022-02-11 12:32 ` Eugen.Hristev
2022-02-11 13:23 ` Jacopo Mondi
2022-02-11 13:23 ` Jacopo Mondi
2022-01-21 13:14 ` [PATCH v4 04/11] media: atmel: atmel-sama5d2-isc: fix wrong mask in YUYV format check Eugen Hristev
2022-01-21 13:14 ` Eugen Hristev
2022-01-21 13:14 ` [PATCH v4 05/11] media: atmel: atmel-isc-base: use mutex to lock awb workqueue from streaming Eugen Hristev
2022-01-21 13:14 ` Eugen Hristev
2022-01-21 13:14 ` [PATCH v4 06/11] media: atmel: atmel-isc: compact the controller formats list Eugen Hristev
2022-01-21 13:14 ` Eugen Hristev
2022-01-21 13:14 ` [PATCH v4 07/11] media: atmel: atmel-isc: change format propagation to subdev into only verification Eugen Hristev
2022-01-21 13:14 ` Eugen Hristev
2022-02-10 18:43 ` Jacopo Mondi
2022-02-10 18:43 ` Jacopo Mondi
2022-02-11 10:38 ` Eugen.Hristev
2022-02-11 10:38 ` Eugen.Hristev
2022-02-11 11:59 ` Jacopo Mondi
2022-02-11 11:59 ` Jacopo Mondi
2022-01-21 13:14 ` [PATCH v4 08/11] dt-bindings: media: microchip, xisc: add bus-width of 14 Eugen Hristev
2022-01-21 13:14 ` [PATCH v4 08/11] dt-bindings: media: microchip,xisc: " Eugen Hristev
2022-02-04 22:59 ` Rob Herring
2022-02-04 22:59 ` Rob Herring
2022-01-21 13:14 ` [PATCH v4 09/11] ARM: dts: at91: sama7g5: add nodes for video capture Eugen Hristev
2022-01-21 13:14 ` Eugen Hristev
2022-01-21 13:14 ` [PATCH v4 10/11] ARM: configs: at91: sama7: add xisc and csi2dc Eugen Hristev
2022-01-21 13:14 ` Eugen Hristev
2022-01-21 13:14 ` [PATCH v4 11/11] ARM: multi_v7_defconfig: add atmel video pipeline modules Eugen Hristev
2022-01-21 13:14 ` Eugen Hristev
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=20220121131416.603972-2-eugen.hristev@microchip.com \
--to=eugen.hristev@microchip.com \
--cc=devicetree@vger.kernel.org \
--cc=hverkuil-cisco@xs4all.nl \
--cc=hverkuil@xs4all.nl \
--cc=jacopo+renesas@jmondi.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=robh+dt@kernel.org \
--cc=sakari.ailus@iki.fi \
/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.