From: Tomasz Figa <tfiga@chromium.org>
To: Jerry-ch Chen <Jerry-Ch.chen@mediatek.com>,
Hans Verkuil <hverkuil@xs4all.nl>
Cc: devicetree@vger.kernel.org, Sean.Cheng@mediatek.com,
laurent.pinchart+renesas@ideasonboard.com, Rynn.Wu@mediatek.com,
zwisler@chromium.org, srv_heupstream@mediatek.com,
Jerry-ch Chen <jerry-ch.chen@mediatek.corp-partner.google.com>,
Hans Verkuil <hverkuil@xs4all.nl>,
jungo.lin@mediatek.com, sj.huang@mediatek.com,
yuzhao@chromium.org, linux-mediatek@lists.infradead.org,
pihsun@chromium.org, frederic.chen@mediatek.com,
matthias.bgg@gmail.com, christie.yu@mediatek.com,
mchehab@kernel.org, linux-arm-kernel@lists.infradead.org,
linux-media@vger.kernel.org
Subject: Re: [RFC PATCH V4 1/4] media: v4l2-mem2mem: add v4l2_m2m_suspend, v4l2_m2m_resume
Date: Thu, 21 May 2020 17:11:01 +0000 [thread overview]
Message-ID: <20200521171101.GA243874@chromium.org> (raw)
In-Reply-To: <20191204124732.10932-2-Jerry-Ch.chen@mediatek.com>
Hi Jerry,
On Wed, Dec 04, 2019 at 08:47:29PM +0800, Jerry-ch Chen wrote:
> From: Pi-Hsun Shih <pihsun@chromium.org>
>
> Add two functions that can be used to stop new jobs from being queued /
> continue running queued job. This can be used while a driver using m2m
> helper is going to suspend / wake up from resume, and can ensure that
> there's no job running in suspend process.
>
> BUG=b:143046833
> TEST=build
>
> Signed-off-by: Pi-Hsun Shih <pihsun@chromium.org>
> Signed-off-by: Jerry-ch Chen <jerry-ch.chen@mediatek.corp-partner.google.com>
> ---
> drivers/media/v4l2-core/v4l2-mem2mem.c | 40 ++++++++++++++++++++++++++
> include/media/v4l2-mem2mem.h | 22 ++++++++++++++
> 2 files changed, 62 insertions(+)
>
> diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-core/v4l2-mem2mem.c
> index 5bbdec55b7d7..76ba203e0035 100644
> --- a/drivers/media/v4l2-core/v4l2-mem2mem.c
> +++ b/drivers/media/v4l2-core/v4l2-mem2mem.c
> @@ -47,6 +47,10 @@ module_param(debug, bool, 0644);
> #define TRANS_ABORT (1 << 2)
>
>
> +/* The job queue is not running new jobs */
> +#define QUEUE_PAUSED (1 << 0)
> +
> +
> /* Offset base for buffers on the destination queue - used to distinguish
> * between source and destination buffers when mmapping - they receive the same
> * offsets but for different queues */
> @@ -88,6 +92,7 @@ static const char * const m2m_entity_name[] = {
> * @job_queue: instances queued to run
> * @job_spinlock: protects job_queue
> * @job_work: worker to run queued jobs.
> + * @job_queue_flags: flags of the queue status, %QUEUE_PAUSED.
> * @m2m_ops: driver callbacks
> */
> struct v4l2_m2m_dev {
> @@ -105,6 +110,7 @@ struct v4l2_m2m_dev {
> struct list_head job_queue;
> spinlock_t job_spinlock;
> struct work_struct job_work;
> + unsigned long job_queue_flags;
>
> const struct v4l2_m2m_ops *m2m_ops;
> };
> @@ -267,6 +273,12 @@ static void v4l2_m2m_try_run(struct v4l2_m2m_dev *m2m_dev)
> return;
> }
>
> + if (m2m_dev->job_queue_flags & QUEUE_PAUSED) {
> + spin_unlock_irqrestore(&m2m_dev->job_spinlock, flags);
> + dprintk("Running new jobs is paused\n");
> + return;
> + }
> +
> m2m_dev->curr_ctx = list_first_entry(&m2m_dev->job_queue,
> struct v4l2_m2m_ctx, queue);
> m2m_dev->curr_ctx->job_flags |= TRANS_RUNNING;
> @@ -447,6 +459,34 @@ void v4l2_m2m_job_finish(struct v4l2_m2m_dev *m2m_dev,
> }
> EXPORT_SYMBOL(v4l2_m2m_job_finish);
>
> +void v4l2_m2m_suspend(struct v4l2_m2m_dev *m2m_dev)
> +{
> + unsigned long flags;
> + struct v4l2_m2m_ctx *curr_ctx;
> +
> + spin_lock_irqsave(&m2m_dev->job_spinlock, flags);
> + m2m_dev->job_queue_flags |= QUEUE_PAUSED;
> + curr_ctx = m2m_dev->curr_ctx;
> + spin_unlock_irqrestore(&m2m_dev->job_spinlock, flags);
> +
> + if (curr_ctx)
> + wait_event(curr_ctx->finished,
> + !(curr_ctx->job_flags & TRANS_RUNNING));
> +}
> +EXPORT_SYMBOL(v4l2_m2m_suspend);
> +
> +void v4l2_m2m_resume(struct v4l2_m2m_dev *m2m_dev)
> +{
> + unsigned long flags;
> +
> + spin_lock_irqsave(&m2m_dev->job_spinlock, flags);
> + m2m_dev->job_queue_flags &= ~QUEUE_PAUSED;
> + spin_unlock_irqrestore(&m2m_dev->job_spinlock, flags);
> +
> + v4l2_m2m_try_run(m2m_dev);
> +}
> +EXPORT_SYMBOL(v4l2_m2m_resume);
> +
> int v4l2_m2m_reqbufs(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
> struct v4l2_requestbuffers *reqbufs)
> {
> diff --git a/include/media/v4l2-mem2mem.h b/include/media/v4l2-mem2mem.h
> index 5467264771ec..119a195da390 100644
> --- a/include/media/v4l2-mem2mem.h
> +++ b/include/media/v4l2-mem2mem.h
> @@ -183,6 +183,28 @@ v4l2_m2m_buf_done(struct vb2_v4l2_buffer *buf, enum vb2_buffer_state state)
> vb2_buffer_done(&buf->vb2_buf, state);
> }
>
> +/**
> + * v4l2_m2m_suspend() - stop new jobs from being run and wait for current job
> + * to finish
> + *
> + * @m2m_dev: opaque pointer to the internal data to handle M2M context
> + *
> + * Called by a driver in the suspend hook. Stop new jobs from being run, and
> + * wait for current running job to finish.
> + */
> +void v4l2_m2m_suspend(struct v4l2_m2m_dev *m2m_dev);
> +
> +/**
> + * v4l2_m2m_resume() - resume job running and try to run a queued job
> + *
> + * @m2m_dev: opaque pointer to the internal data to handle M2M context
> + *
> + * Called by a driver in the resume hook. This reverts the operation of
> + * v4l2_m2m_suspend() and allows job to be run. Also try to run a queued job if
> + * there is any.
> + */
> +void v4l2_m2m_resume(struct v4l2_m2m_dev *m2m_dev);
> +
> /**
> * v4l2_m2m_reqbufs() - multi-queue-aware REQBUFS multiplexer
> *
> --
> 2.18.0
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
[Corrected Hans's email address.]
Hans, does this look good to you?
Best regards,
Tomasz
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
WARNING: multiple messages have this Message-ID (diff)
From: Tomasz Figa <tfiga@chromium.org>
To: Jerry-ch Chen <Jerry-Ch.chen@mediatek.com>,
Hans Verkuil <hverkuil@xs4all.nl>
Cc: devicetree@vger.kernel.org, Sean.Cheng@mediatek.com,
laurent.pinchart+renesas@ideasonboard.com, Rynn.Wu@mediatek.com,
zwisler@chromium.org, srv_heupstream@mediatek.com,
Jerry-ch Chen <jerry-ch.chen@mediatek.corp-partner.google.com>,
Hans Verkuil <hverkuil@xs4all.nl>,
jungo.lin@mediatek.com, sj.huang@mediatek.com,
yuzhao@chromium.org, linux-mediatek@lists.infradead.org,
pihsun@chromium.org, frederic.chen@mediatek.com,
matthias.bgg@gmail.com, christie.yu@mediatek.com,
mchehab@kernel.org, linux-arm-kernel@lists.infradead.org,
linux-media@vger.kernel.org
Subject: Re: [RFC PATCH V4 1/4] media: v4l2-mem2mem: add v4l2_m2m_suspend, v4l2_m2m_resume
Date: Thu, 21 May 2020 17:11:01 +0000 [thread overview]
Message-ID: <20200521171101.GA243874@chromium.org> (raw)
In-Reply-To: <20191204124732.10932-2-Jerry-Ch.chen@mediatek.com>
Hi Jerry,
On Wed, Dec 04, 2019 at 08:47:29PM +0800, Jerry-ch Chen wrote:
> From: Pi-Hsun Shih <pihsun@chromium.org>
>
> Add two functions that can be used to stop new jobs from being queued /
> continue running queued job. This can be used while a driver using m2m
> helper is going to suspend / wake up from resume, and can ensure that
> there's no job running in suspend process.
>
> BUG=b:143046833
> TEST=build
>
> Signed-off-by: Pi-Hsun Shih <pihsun@chromium.org>
> Signed-off-by: Jerry-ch Chen <jerry-ch.chen@mediatek.corp-partner.google.com>
> ---
> drivers/media/v4l2-core/v4l2-mem2mem.c | 40 ++++++++++++++++++++++++++
> include/media/v4l2-mem2mem.h | 22 ++++++++++++++
> 2 files changed, 62 insertions(+)
>
> diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-core/v4l2-mem2mem.c
> index 5bbdec55b7d7..76ba203e0035 100644
> --- a/drivers/media/v4l2-core/v4l2-mem2mem.c
> +++ b/drivers/media/v4l2-core/v4l2-mem2mem.c
> @@ -47,6 +47,10 @@ module_param(debug, bool, 0644);
> #define TRANS_ABORT (1 << 2)
>
>
> +/* The job queue is not running new jobs */
> +#define QUEUE_PAUSED (1 << 0)
> +
> +
> /* Offset base for buffers on the destination queue - used to distinguish
> * between source and destination buffers when mmapping - they receive the same
> * offsets but for different queues */
> @@ -88,6 +92,7 @@ static const char * const m2m_entity_name[] = {
> * @job_queue: instances queued to run
> * @job_spinlock: protects job_queue
> * @job_work: worker to run queued jobs.
> + * @job_queue_flags: flags of the queue status, %QUEUE_PAUSED.
> * @m2m_ops: driver callbacks
> */
> struct v4l2_m2m_dev {
> @@ -105,6 +110,7 @@ struct v4l2_m2m_dev {
> struct list_head job_queue;
> spinlock_t job_spinlock;
> struct work_struct job_work;
> + unsigned long job_queue_flags;
>
> const struct v4l2_m2m_ops *m2m_ops;
> };
> @@ -267,6 +273,12 @@ static void v4l2_m2m_try_run(struct v4l2_m2m_dev *m2m_dev)
> return;
> }
>
> + if (m2m_dev->job_queue_flags & QUEUE_PAUSED) {
> + spin_unlock_irqrestore(&m2m_dev->job_spinlock, flags);
> + dprintk("Running new jobs is paused\n");
> + return;
> + }
> +
> m2m_dev->curr_ctx = list_first_entry(&m2m_dev->job_queue,
> struct v4l2_m2m_ctx, queue);
> m2m_dev->curr_ctx->job_flags |= TRANS_RUNNING;
> @@ -447,6 +459,34 @@ void v4l2_m2m_job_finish(struct v4l2_m2m_dev *m2m_dev,
> }
> EXPORT_SYMBOL(v4l2_m2m_job_finish);
>
> +void v4l2_m2m_suspend(struct v4l2_m2m_dev *m2m_dev)
> +{
> + unsigned long flags;
> + struct v4l2_m2m_ctx *curr_ctx;
> +
> + spin_lock_irqsave(&m2m_dev->job_spinlock, flags);
> + m2m_dev->job_queue_flags |= QUEUE_PAUSED;
> + curr_ctx = m2m_dev->curr_ctx;
> + spin_unlock_irqrestore(&m2m_dev->job_spinlock, flags);
> +
> + if (curr_ctx)
> + wait_event(curr_ctx->finished,
> + !(curr_ctx->job_flags & TRANS_RUNNING));
> +}
> +EXPORT_SYMBOL(v4l2_m2m_suspend);
> +
> +void v4l2_m2m_resume(struct v4l2_m2m_dev *m2m_dev)
> +{
> + unsigned long flags;
> +
> + spin_lock_irqsave(&m2m_dev->job_spinlock, flags);
> + m2m_dev->job_queue_flags &= ~QUEUE_PAUSED;
> + spin_unlock_irqrestore(&m2m_dev->job_spinlock, flags);
> +
> + v4l2_m2m_try_run(m2m_dev);
> +}
> +EXPORT_SYMBOL(v4l2_m2m_resume);
> +
> int v4l2_m2m_reqbufs(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
> struct v4l2_requestbuffers *reqbufs)
> {
> diff --git a/include/media/v4l2-mem2mem.h b/include/media/v4l2-mem2mem.h
> index 5467264771ec..119a195da390 100644
> --- a/include/media/v4l2-mem2mem.h
> +++ b/include/media/v4l2-mem2mem.h
> @@ -183,6 +183,28 @@ v4l2_m2m_buf_done(struct vb2_v4l2_buffer *buf, enum vb2_buffer_state state)
> vb2_buffer_done(&buf->vb2_buf, state);
> }
>
> +/**
> + * v4l2_m2m_suspend() - stop new jobs from being run and wait for current job
> + * to finish
> + *
> + * @m2m_dev: opaque pointer to the internal data to handle M2M context
> + *
> + * Called by a driver in the suspend hook. Stop new jobs from being run, and
> + * wait for current running job to finish.
> + */
> +void v4l2_m2m_suspend(struct v4l2_m2m_dev *m2m_dev);
> +
> +/**
> + * v4l2_m2m_resume() - resume job running and try to run a queued job
> + *
> + * @m2m_dev: opaque pointer to the internal data to handle M2M context
> + *
> + * Called by a driver in the resume hook. This reverts the operation of
> + * v4l2_m2m_suspend() and allows job to be run. Also try to run a queued job if
> + * there is any.
> + */
> +void v4l2_m2m_resume(struct v4l2_m2m_dev *m2m_dev);
> +
> /**
> * v4l2_m2m_reqbufs() - multi-queue-aware REQBUFS multiplexer
> *
> --
> 2.18.0
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
[Corrected Hans's email address.]
Hans, does this look good to you?
Best regards,
Tomasz
_______________________________________________
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: Tomasz Figa <tfiga@chromium.org>
To: Jerry-ch Chen <Jerry-Ch.chen@mediatek.com>,
Hans Verkuil <hverkuil@xs4all.nl>
Cc: Hans Verkuil <hverkuil@xs4all.nl>,
laurent.pinchart+renesas@ideasonboard.com,
matthias.bgg@gmail.com, mchehab@kernel.org, pihsun@chromium.org,
yuzhao@chromium.org, zwisler@chromium.org,
linux-mediatek@lists.infradead.org,
linux-arm-kernel@lists.infradead.org, Sean.Cheng@mediatek.com,
sj.huang@mediatek.com, christie.yu@mediatek.com,
frederic.chen@mediatek.com, jungo.lin@mediatek.com,
Rynn.Wu@mediatek.com, linux-media@vger.kernel.org,
srv_heupstream@mediatek.com, devicetree@vger.kernel.org,
Jerry-ch Chen <jerry-ch.chen@mediatek.corp-partner.google.com>
Subject: Re: [RFC PATCH V4 1/4] media: v4l2-mem2mem: add v4l2_m2m_suspend, v4l2_m2m_resume
Date: Thu, 21 May 2020 17:11:01 +0000 [thread overview]
Message-ID: <20200521171101.GA243874@chromium.org> (raw)
In-Reply-To: <20191204124732.10932-2-Jerry-Ch.chen@mediatek.com>
Hi Jerry,
On Wed, Dec 04, 2019 at 08:47:29PM +0800, Jerry-ch Chen wrote:
> From: Pi-Hsun Shih <pihsun@chromium.org>
>
> Add two functions that can be used to stop new jobs from being queued /
> continue running queued job. This can be used while a driver using m2m
> helper is going to suspend / wake up from resume, and can ensure that
> there's no job running in suspend process.
>
> BUG=b:143046833
> TEST=build
>
> Signed-off-by: Pi-Hsun Shih <pihsun@chromium.org>
> Signed-off-by: Jerry-ch Chen <jerry-ch.chen@mediatek.corp-partner.google.com>
> ---
> drivers/media/v4l2-core/v4l2-mem2mem.c | 40 ++++++++++++++++++++++++++
> include/media/v4l2-mem2mem.h | 22 ++++++++++++++
> 2 files changed, 62 insertions(+)
>
> diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-core/v4l2-mem2mem.c
> index 5bbdec55b7d7..76ba203e0035 100644
> --- a/drivers/media/v4l2-core/v4l2-mem2mem.c
> +++ b/drivers/media/v4l2-core/v4l2-mem2mem.c
> @@ -47,6 +47,10 @@ module_param(debug, bool, 0644);
> #define TRANS_ABORT (1 << 2)
>
>
> +/* The job queue is not running new jobs */
> +#define QUEUE_PAUSED (1 << 0)
> +
> +
> /* Offset base for buffers on the destination queue - used to distinguish
> * between source and destination buffers when mmapping - they receive the same
> * offsets but for different queues */
> @@ -88,6 +92,7 @@ static const char * const m2m_entity_name[] = {
> * @job_queue: instances queued to run
> * @job_spinlock: protects job_queue
> * @job_work: worker to run queued jobs.
> + * @job_queue_flags: flags of the queue status, %QUEUE_PAUSED.
> * @m2m_ops: driver callbacks
> */
> struct v4l2_m2m_dev {
> @@ -105,6 +110,7 @@ struct v4l2_m2m_dev {
> struct list_head job_queue;
> spinlock_t job_spinlock;
> struct work_struct job_work;
> + unsigned long job_queue_flags;
>
> const struct v4l2_m2m_ops *m2m_ops;
> };
> @@ -267,6 +273,12 @@ static void v4l2_m2m_try_run(struct v4l2_m2m_dev *m2m_dev)
> return;
> }
>
> + if (m2m_dev->job_queue_flags & QUEUE_PAUSED) {
> + spin_unlock_irqrestore(&m2m_dev->job_spinlock, flags);
> + dprintk("Running new jobs is paused\n");
> + return;
> + }
> +
> m2m_dev->curr_ctx = list_first_entry(&m2m_dev->job_queue,
> struct v4l2_m2m_ctx, queue);
> m2m_dev->curr_ctx->job_flags |= TRANS_RUNNING;
> @@ -447,6 +459,34 @@ void v4l2_m2m_job_finish(struct v4l2_m2m_dev *m2m_dev,
> }
> EXPORT_SYMBOL(v4l2_m2m_job_finish);
>
> +void v4l2_m2m_suspend(struct v4l2_m2m_dev *m2m_dev)
> +{
> + unsigned long flags;
> + struct v4l2_m2m_ctx *curr_ctx;
> +
> + spin_lock_irqsave(&m2m_dev->job_spinlock, flags);
> + m2m_dev->job_queue_flags |= QUEUE_PAUSED;
> + curr_ctx = m2m_dev->curr_ctx;
> + spin_unlock_irqrestore(&m2m_dev->job_spinlock, flags);
> +
> + if (curr_ctx)
> + wait_event(curr_ctx->finished,
> + !(curr_ctx->job_flags & TRANS_RUNNING));
> +}
> +EXPORT_SYMBOL(v4l2_m2m_suspend);
> +
> +void v4l2_m2m_resume(struct v4l2_m2m_dev *m2m_dev)
> +{
> + unsigned long flags;
> +
> + spin_lock_irqsave(&m2m_dev->job_spinlock, flags);
> + m2m_dev->job_queue_flags &= ~QUEUE_PAUSED;
> + spin_unlock_irqrestore(&m2m_dev->job_spinlock, flags);
> +
> + v4l2_m2m_try_run(m2m_dev);
> +}
> +EXPORT_SYMBOL(v4l2_m2m_resume);
> +
> int v4l2_m2m_reqbufs(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
> struct v4l2_requestbuffers *reqbufs)
> {
> diff --git a/include/media/v4l2-mem2mem.h b/include/media/v4l2-mem2mem.h
> index 5467264771ec..119a195da390 100644
> --- a/include/media/v4l2-mem2mem.h
> +++ b/include/media/v4l2-mem2mem.h
> @@ -183,6 +183,28 @@ v4l2_m2m_buf_done(struct vb2_v4l2_buffer *buf, enum vb2_buffer_state state)
> vb2_buffer_done(&buf->vb2_buf, state);
> }
>
> +/**
> + * v4l2_m2m_suspend() - stop new jobs from being run and wait for current job
> + * to finish
> + *
> + * @m2m_dev: opaque pointer to the internal data to handle M2M context
> + *
> + * Called by a driver in the suspend hook. Stop new jobs from being run, and
> + * wait for current running job to finish.
> + */
> +void v4l2_m2m_suspend(struct v4l2_m2m_dev *m2m_dev);
> +
> +/**
> + * v4l2_m2m_resume() - resume job running and try to run a queued job
> + *
> + * @m2m_dev: opaque pointer to the internal data to handle M2M context
> + *
> + * Called by a driver in the resume hook. This reverts the operation of
> + * v4l2_m2m_suspend() and allows job to be run. Also try to run a queued job if
> + * there is any.
> + */
> +void v4l2_m2m_resume(struct v4l2_m2m_dev *m2m_dev);
> +
> /**
> * v4l2_m2m_reqbufs() - multi-queue-aware REQBUFS multiplexer
> *
> --
> 2.18.0
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
[Corrected Hans's email address.]
Hans, does this look good to you?
Best regards,
Tomasz
next prev parent reply other threads:[~2020-05-21 17:11 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-04 12:47 [RFC PATCH V4 0/4] media: platform: Add support for Face Detection (FD) on mt8183 SoC Jerry-ch Chen
2019-12-04 12:47 ` Jerry-ch Chen
2019-12-04 12:47 ` Jerry-ch Chen
2019-12-04 12:47 ` [RFC PATCH V4 1/4] media: v4l2-mem2mem: add v4l2_m2m_suspend, v4l2_m2m_resume Jerry-ch Chen
2019-12-04 12:47 ` Jerry-ch Chen
2019-12-04 12:47 ` Jerry-ch Chen
2020-05-21 17:11 ` Tomasz Figa [this message]
2020-05-21 17:11 ` Tomasz Figa
2020-05-21 17:11 ` Tomasz Figa
2020-05-22 6:01 ` Jerry-ch Chen
2020-05-22 6:01 ` Jerry-ch Chen
2020-05-22 6:01 ` Jerry-ch Chen
2020-06-10 10:28 ` Hans Verkuil
2020-06-10 10:28 ` Hans Verkuil
2020-06-10 10:28 ` Hans Verkuil
2020-06-10 10:32 ` Tomasz Figa
2020-06-10 10:32 ` Tomasz Figa
2020-06-10 10:32 ` Tomasz Figa
2020-06-10 18:52 ` Ezequiel Garcia
2020-06-10 18:52 ` Ezequiel Garcia
2020-06-10 18:52 ` Ezequiel Garcia
2020-06-10 19:03 ` Tomasz Figa
2020-06-10 19:03 ` Tomasz Figa
2020-06-10 19:03 ` Tomasz Figa
2020-06-10 19:14 ` Ezequiel Garcia
2020-06-10 19:14 ` Ezequiel Garcia
2020-06-10 19:14 ` Ezequiel Garcia
2020-06-10 19:26 ` Tomasz Figa
2020-06-10 19:26 ` Tomasz Figa
2020-06-10 19:26 ` Tomasz Figa
2020-06-14 22:43 ` Ezequiel Garcia
2020-06-14 22:43 ` Ezequiel Garcia
2020-06-14 22:43 ` Ezequiel Garcia
2019-12-04 12:47 ` [RFC PATCH V4 2/4] dt-bindings: mt8183: Added FD dt-bindings Jerry-ch Chen
2019-12-04 12:47 ` Jerry-ch Chen
2019-12-04 12:47 ` Jerry-ch Chen
2019-12-04 18:58 ` Rob Herring
2019-12-04 18:58 ` Rob Herring
2019-12-04 18:58 ` Rob Herring
2020-05-06 8:41 ` Jerry-ch Chen
2020-05-06 8:41 ` Jerry-ch Chen
2020-05-06 8:41 ` Jerry-ch Chen
2019-12-04 12:47 ` [RFC PATCH V4 3/4] dts: arm64: mt8183: Add FD nodes Jerry-ch Chen
2019-12-04 12:47 ` Jerry-ch Chen
2019-12-04 12:47 ` Jerry-ch Chen
2019-12-04 12:47 ` [RFC PATCH V4 4/4] platform: mtk-isp: Add Mediatek FD driver Jerry-ch Chen
2019-12-04 12:47 ` Jerry-ch Chen
2019-12-04 12:47 ` Jerry-ch Chen
2020-05-21 18:28 ` Tomasz Figa
2020-05-21 18:28 ` Tomasz Figa
2020-05-21 18:28 ` Tomasz Figa
2020-05-22 14:10 ` Jerry-ch Chen
2020-05-22 14:10 ` Jerry-ch Chen
2020-05-22 14:10 ` Jerry-ch Chen
2020-05-25 12:24 ` Tomasz Figa
2020-05-25 12:24 ` Tomasz Figa
2020-05-25 12:24 ` Tomasz Figa
2020-05-29 12:26 ` Jerry-ch Chen
2020-05-29 12:26 ` Jerry-ch Chen
2020-05-29 12:26 ` Jerry-ch Chen
2020-05-29 12:59 ` Tomasz Figa
2020-05-29 12:59 ` Tomasz Figa
2020-05-29 12:59 ` Tomasz Figa
2020-06-01 10:37 ` Jerry-ch Chen
2020-06-01 10:37 ` Jerry-ch Chen
2020-06-01 10:37 ` Jerry-ch Chen
2020-05-08 2:02 ` [RFC PATCH V4 0/4] media: platform: Add support for Face Detection (FD) on mt8183 SoC Jerry-ch Chen
2020-05-08 2:02 ` Jerry-ch Chen
2020-05-08 2:02 ` Jerry-ch Chen
2020-05-13 21:45 ` Tomasz Figa
2020-05-13 21:45 ` Tomasz Figa
2020-05-13 21:45 ` Tomasz Figa
2020-05-21 18:38 ` Tomasz Figa
2020-05-21 18:38 ` Tomasz Figa
2020-05-21 18:38 ` Tomasz Figa
2020-06-30 14:10 ` Jerry-ch Chen
2020-06-30 14:10 ` Jerry-ch Chen
2020-06-30 14:10 ` Jerry-ch Chen
2020-06-30 17:19 ` Tomasz Figa
2020-06-30 17:19 ` Tomasz Figa
2020-06-30 17:19 ` Tomasz Figa
2020-11-11 11:51 ` Jerry-ch Chen
2020-11-11 11:51 ` Jerry-ch Chen
2020-11-11 11:51 ` Jerry-ch Chen
2020-11-12 4:26 ` Tomasz Figa
2020-11-12 4:26 ` Tomasz Figa
2020-11-12 4:26 ` Tomasz Figa
2020-11-12 12:05 ` Jerry-ch Chen
2020-11-12 12:05 ` Jerry-ch Chen
2020-11-12 12:05 ` Jerry-ch Chen
2020-12-28 17:02 ` Jerry-ch Chen
2020-12-28 17:02 ` Jerry-ch Chen
2020-12-28 17:02 ` Jerry-ch Chen
2021-01-06 6:30 ` Tomasz Figa
2021-01-06 6:30 ` Tomasz Figa
2021-01-06 6:30 ` Tomasz Figa
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=20200521171101.GA243874@chromium.org \
--to=tfiga@chromium.org \
--cc=Jerry-Ch.chen@mediatek.com \
--cc=Rynn.Wu@mediatek.com \
--cc=Sean.Cheng@mediatek.com \
--cc=christie.yu@mediatek.com \
--cc=devicetree@vger.kernel.org \
--cc=frederic.chen@mediatek.com \
--cc=hverkuil@xs4all.nl \
--cc=jerry-ch.chen@mediatek.corp-partner.google.com \
--cc=jungo.lin@mediatek.com \
--cc=laurent.pinchart+renesas@ideasonboard.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=mchehab@kernel.org \
--cc=pihsun@chromium.org \
--cc=sj.huang@mediatek.com \
--cc=srv_heupstream@mediatek.com \
--cc=yuzhao@chromium.org \
--cc=zwisler@chromium.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.