public inbox for linux-staging@lists.linux.dev
 help / color / mirror / Atom feed
From: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
To: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Cc: Benjamin Gaignard <benjamin.gaignard@collabora.com>,
	mchehab@kernel.org, tfiga@chromium.org, m.szyprowski@samsung.com,
	ming.qian@nxp.com, ezequiel@vanguardiasur.com.ar,
	p.zabel@pengutronix.de, gregkh@linuxfoundation.org,
	hverkuil-cisco@xs4all.nl, nicolas.dufresne@collabora.com,
	linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org,
	linux-arm-msm@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-staging@lists.linux.dev, kernel@collabora.com,
	Maxime Ripard <mripard@kernel.org>
Subject: Re: [PATCH v14 35/56] media: cedrus: Stop direct calls to queue num_buffers field
Date: Thu, 9 Nov 2023 16:48:33 +0100	[thread overview]
Message-ID: <618d5b67-ba46-4c33-ae7f-990f4b522ba8@collabora.com> (raw)
In-Reply-To: <ZUzpSXDbO60uGr0t@aptenodytes>

Hi Paul,

W dniu 9.11.2023 o 15:14, Paul Kocialkowski pisze:
> Hi Andrzej,
> 
> On Thu 09 Nov 23, 12:27, Andrzej Pietrasiewicz wrote:
>> Hi Paul,
>>
>> W dniu 31.10.2023 o 17:30, Benjamin Gaignard pisze:
>>> Use vb2_get_num_buffers() to avoid using queue num_buffers field directly.
>>> This allows us to change how the number of buffers is computed in the
>>> future.
>>>
>>> Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
>>> Acked-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
>>
>> Given you've alaredy A-b, would you be ok with adding this sentence:
>>
>> "While at it, check the return value of vb2_get_buffer()."
>>
>> to the commit message body?
> 
> Not only do I agree, but because this is done in a function returning void,
> you could even:
> 
> if (WARN_ON(!vb))
> 	continue;
> 
> so that it doesn't go completely unnoticed.
> 
> What do you think?
> 

I'd ask Benjamin.

But my take on the direction of changes is that ultimately
there will be "holes" in the array of allocated buffers (hence the
bitmap to track which slots are used and which are not). In other words,
getting a NULL sometimes will be an expected situation, and a WARN() will
not be appropriate for an expected situation.

@Benjamin?

Regards,

Andrzej

> Cheers,
> 
> Paul
> 
>> @Benjamin:
>>
>> With this change, you can add my
>>
>> Reviewed-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
>>
>>> CC: Maxime Ripard <mripard@kernel.org>
>>> ---
>>>    drivers/staging/media/sunxi/cedrus/cedrus_h264.c | 9 +++++++--
>>>    drivers/staging/media/sunxi/cedrus/cedrus_h265.c | 9 +++++++--
>>>    2 files changed, 14 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_h264.c b/drivers/staging/media/sunxi/cedrus/cedrus_h264.c
>>> index dfb401df138a..3e2843ef6cce 100644
>>> --- a/drivers/staging/media/sunxi/cedrus/cedrus_h264.c
>>> +++ b/drivers/staging/media/sunxi/cedrus/cedrus_h264.c
>>> @@ -653,8 +653,13 @@ static void cedrus_h264_stop(struct cedrus_ctx *ctx)
>>>    	vq = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, V4L2_BUF_TYPE_VIDEO_CAPTURE);
>>> -	for (i = 0; i < vq->num_buffers; i++) {
>>> -		buf = vb2_to_cedrus_buffer(vb2_get_buffer(vq, i));
>>> +	for (i = 0; i < vb2_get_num_buffers(vq); i++) {
>>> +		struct vb2_buffer *vb = vb2_get_buffer(vq, i);
>>> +
>>> +		if (!vb)
>>> +			continue;
>>> +
>>> +		buf = vb2_to_cedrus_buffer(vb);
>>>    		if (buf->codec.h264.mv_col_buf_size > 0) {
>>>    			dma_free_attrs(dev->dev,
>>> diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_h265.c b/drivers/staging/media/sunxi/cedrus/cedrus_h265.c
>>> index fc9297232456..52e94c8f2f01 100644
>>> --- a/drivers/staging/media/sunxi/cedrus/cedrus_h265.c
>>> +++ b/drivers/staging/media/sunxi/cedrus/cedrus_h265.c
>>> @@ -869,8 +869,13 @@ static void cedrus_h265_stop(struct cedrus_ctx *ctx)
>>>    	vq = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, V4L2_BUF_TYPE_VIDEO_CAPTURE);
>>> -	for (i = 0; i < vq->num_buffers; i++) {
>>> -		buf = vb2_to_cedrus_buffer(vb2_get_buffer(vq, i));
>>> +	for (i = 0; i < vb2_get_num_buffers(vq); i++) {
>>> +		struct vb2_buffer *vb = vb2_get_buffer(vq, i);
>>> +
>>> +		if (!vb)
>>> +			continue;
>>> +
>>> +		buf = vb2_to_cedrus_buffer(vb);
>>>    		if (buf->codec.h265.mv_col_buf_size > 0) {
>>>    			dma_free_attrs(dev->dev,
>>
> 
> 
> _______________________________________________
> Kernel mailing list -- kernel@mailman.collabora.com
> To unsubscribe send an email to kernel-leave@mailman.collabora.com


  reply	other threads:[~2023-11-09 15:48 UTC|newest]

Thread overview: 133+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-31 16:30 [PATCH v14 00/56] Add DELETE_BUF ioctl Benjamin Gaignard
2023-10-31 16:30 ` [PATCH v14 01/56] media: videobuf2: Rename offset parameter Benjamin Gaignard
2023-11-08 15:11   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 02/56] media: videobuf2: Rework offset 'cookie' encoding pattern Benjamin Gaignard
2023-11-08  6:23   ` Tomasz Figa
2023-11-08 10:14     ` Benjamin Gaignard
2023-11-08 10:31       ` Hans Verkuil
2023-10-31 16:30 ` [PATCH v14 03/56] media: videobuf2: Stop spamming kernel log with all queue counter Benjamin Gaignard
2023-11-08 15:26   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 04/56] media: videobuf2: Use vb2_buffer instead of index Benjamin Gaignard
2023-11-08  8:08   ` Tomasz Figa
2023-11-08 15:52   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 05/56] media: videobuf2: Access vb2_queue bufs array through helper functions Benjamin Gaignard
2023-11-08  8:50   ` Tomasz Figa
2023-11-08 10:24     ` Benjamin Gaignard
2023-11-09  4:27       ` Tomasz Figa
2023-10-31 16:30 ` [PATCH v14 06/56] media: videobuf2: Remove duplicated index vs q->num_buffers check Benjamin Gaignard
2023-11-08 16:46   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 07/56] media: videobuf2: Add helper to get queue number of buffers Benjamin Gaignard
2023-11-08 16:50   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 08/56] media: videobuf2: Use vb2_get_num_buffers() helper Benjamin Gaignard
2023-11-08  9:42   ` Tomasz Figa
2023-11-08 13:22     ` Benjamin Gaignard
2023-11-09  4:36       ` Tomasz Figa
2023-10-31 16:30 ` [PATCH v14 09/56] media: amphion: Use vb2_get_buffer() instead of directly access to buffers array Benjamin Gaignard
2023-11-08 16:55   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 10/56] media: amphion: Stop direct calls to queue num_buffers field Benjamin Gaignard
2023-11-08 16:56   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 11/56] media: mediatek: jpeg: Use vb2_get_buffer() instead of directly access to buffers array Benjamin Gaignard
2023-11-08 17:00   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 12/56] media: mediatek: vdec: Remove useless loop Benjamin Gaignard
2023-11-09  9:15   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 13/56] media: mediatek: vcodec: Stop direct calls to queue num_buffers field Benjamin Gaignard
2023-11-09  9:21   ` Andrzej Pietrasiewicz
2023-11-09  9:23   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 14/56] media: sti: hva: Use vb2_get_buffer() instead of directly access to buffers array Benjamin Gaignard
2023-11-09  9:29   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 15/56] media: visl: " Benjamin Gaignard
2023-11-09  9:38   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 16/56] media: atomisp: " Benjamin Gaignard
2023-10-31 16:30 ` [PATCH v14 17/56] media: atomisp: Stop direct calls to queue num_buffers field Benjamin Gaignard
2023-10-31 16:30 ` [PATCH v14 18/56] media: dvb-core: Use vb2_get_buffer() instead of directly access to buffers array Benjamin Gaignard
2023-11-09  9:46   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 19/56] media: dvb-core: Do not initialize twice queue num_buffer field Benjamin Gaignard
2023-11-09  9:50   ` Andrzej Pietrasiewicz
2023-11-09 10:14     ` Benjamin Gaignard
2023-10-31 16:30 ` [PATCH v14 20/56] media: dvb-frontends: rtl2832: Stop direct calls to queue num_buffers field Benjamin Gaignard
2023-11-09  9:56   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 21/56] media: pci: dt3155: Remove useless check Benjamin Gaignard
2023-11-09 10:03   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 22/56] media: pci: tw686x: Stop direct calls to queue num_buffers field Benjamin Gaignard
2023-11-09 10:05   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 23/56] media: pci: cx18: " Benjamin Gaignard
2023-11-09 10:07   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 24/56] media: pci: netup_unidvb: " Benjamin Gaignard
2023-11-09 10:09   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 25/56] media: pci: tw68: " Benjamin Gaignard
2023-11-09 10:13   ` Andrzej Pietrasiewicz
2023-11-09 10:23     ` Benjamin Gaignard
2023-10-31 16:30 ` [PATCH v14 26/56] media: i2c: video-i2c: " Benjamin Gaignard
2023-11-09 10:18   ` Andrzej Pietrasiewicz
2023-11-09 10:26     ` Benjamin Gaignard
2023-10-31 16:30 ` [PATCH v14 27/56] media: coda: " Benjamin Gaignard
2023-11-09 10:22   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 28/56] media: nxp: " Benjamin Gaignard
2023-11-09 10:26   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 29/56] media: verisilicon: " Benjamin Gaignard
2023-11-09 10:28   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 30/56] media: test-drivers: " Benjamin Gaignard
2023-11-09 11:10   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 31/56] media: imx: " Benjamin Gaignard
2023-11-09 11:12   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 32/56] media: meson: vdec: " Benjamin Gaignard
2023-11-09 11:17   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 33/56] touchscreen: sur40: " Benjamin Gaignard
2023-11-09 11:19   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 34/56] sample: v4l: " Benjamin Gaignard
2023-11-09 11:19   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 35/56] media: cedrus: " Benjamin Gaignard
2023-11-09 11:27   ` Andrzej Pietrasiewicz
2023-11-09 14:14     ` Paul Kocialkowski
2023-11-09 15:48       ` Andrzej Pietrasiewicz [this message]
2023-11-09 15:54         ` Benjamin Gaignard
2023-11-09 16:29           ` Paul Kocialkowski
2023-10-31 16:30 ` [PATCH v14 36/56] media: nuvoton: " Benjamin Gaignard
2023-11-09 11:29   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 37/56] media: renesas: " Benjamin Gaignard
2023-11-09 11:30   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 38/56] media: ti: " Benjamin Gaignard
2023-11-09 11:32   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 39/56] media: usb: airspy: " Benjamin Gaignard
2023-11-09 11:33   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 40/56] media: usb: cx231xx: " Benjamin Gaignard
2023-11-09 11:35   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 41/56] media: usb: hackrf: " Benjamin Gaignard
2023-11-09 11:36   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 42/56] media: usb: usbtv: " Benjamin Gaignard
2023-11-09 11:37   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 43/56] media: videobuf2: Be more flexible on the number of queue stored buffers Benjamin Gaignard
2023-11-02  8:17   ` Hans Verkuil
2023-11-06 14:29     ` Benjamin Gaignard
2023-10-31 16:30 ` [PATCH v14 44/56] media: core: Report the maximum possible number of buffers for the queue Benjamin Gaignard
2023-11-09 12:28   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 45/56] media: test-drivers: vivid: Increase max supported buffers for capture queues Benjamin Gaignard
2023-11-09 12:31   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 46/56] media: test-drivers: vicodec: Increase max supported capture queue buffers Benjamin Gaignard
2023-11-09 12:32   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 47/56] media: verisilicon: Refactor postprocessor to store more buffers Benjamin Gaignard
2023-11-09 13:58   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 48/56] media: verisilicon: Store chroma and motion vectors offset Benjamin Gaignard
2023-11-09 14:12   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 49/56] media: verisilicon: g2: Use common helpers to compute chroma and mv offsets Benjamin Gaignard
2023-11-09 14:25   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 50/56] media: verisilicon: vp9: Allow to change resolution while streaming Benjamin Gaignard
2023-11-09 14:59   ` Andrzej Pietrasiewicz
2023-10-31 16:30 ` [PATCH v14 51/56] media: core: Rework how create_buf index returned value is computed Benjamin Gaignard
2023-10-31 16:31 ` [PATCH v14 52/56] media: core: Add bitmap manage bufs array entries Benjamin Gaignard
2023-11-08 10:44   ` Tomasz Figa
2023-11-08 15:30     ` Benjamin Gaignard
2023-11-09  7:28       ` Tomasz Figa
2023-10-31 16:31 ` [PATCH v14 53/56] media: core: Free range of buffers Benjamin Gaignard
2023-11-09  9:10   ` Tomasz Figa
2023-10-31 16:31 ` [PATCH v14 54/56] media: v4l2: Add DELETE_BUFS ioctl Benjamin Gaignard
2023-11-09  9:30   ` Tomasz Figa
2023-11-09 10:10     ` Benjamin Gaignard
2023-11-10  8:58       ` Tomasz Figa
2023-11-10  9:14         ` Hans Verkuil
2023-11-10  9:19           ` Tomasz Figa
2023-10-31 16:31 ` [PATCH v14 55/56] media: v4l2: Add mem2mem helpers for " Benjamin Gaignard
2023-10-31 16:31 ` [PATCH v14 56/56] media: test-drivers: Use helper " Benjamin Gaignard
2023-11-09  9:43   ` Tomasz Figa
2023-11-09  9:46     ` Benjamin Gaignard
2023-11-09  9:48       ` 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=618d5b67-ba46-4c33-ae7f-990f4b522ba8@collabora.com \
    --to=andrzej.p@collabora.com \
    --cc=benjamin.gaignard@collabora.com \
    --cc=ezequiel@vanguardiasur.com.ar \
    --cc=gregkh@linuxfoundation.org \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=kernel@collabora.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=linux-staging@lists.linux.dev \
    --cc=m.szyprowski@samsung.com \
    --cc=mchehab@kernel.org \
    --cc=ming.qian@nxp.com \
    --cc=mripard@kernel.org \
    --cc=nicolas.dufresne@collabora.com \
    --cc=p.zabel@pengutronix.de \
    --cc=paul.kocialkowski@bootlin.com \
    --cc=tfiga@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox