All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
To: Ezequiel Garcia <ezequiel@collabora.com>, linux-media@vger.kernel.org
Cc: linux-rockchip@lists.infradead.org, devel@driverdev.osuosl.org,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Hans Verkuil <hverkuil-cisco@xs4all.nl>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	kernel@collabora.com, Adrian Ratiu <adrian.ratiu@collabora.com>
Subject: Re: [PATCH] media: rkvdec: Fix .buf_prepare
Date: Wed, 5 May 2021 14:17:08 +0200	[thread overview]
Message-ID: <58791717-b7a9-d057-a998-a4440fcbe783@collabora.com> (raw)
In-Reply-To: <2db7709801107dbacd464a919451bbafbd335748.camel@collabora.com>

Hi Ezequiel,

W dniu 04.05.2021 o 13:56, Ezequiel Garcia pisze:
> Hi Andrzej,
> 
> Thanks a lot for picking this up.
> 
> On Tue, 2021-05-04 at 13:37 +0200, Andrzej Pietrasiewicz wrote:
>> From: Ezequiel Garcia <ezequiel@collabora.com>
>>
>> The driver should only set the payload on .buf_prepare if the
>> buffer is CAPTURE type. If an OUTPUT buffer has a zero bytesused
>> set by userspace then v4l2-core will set it to buffer length.
>>
>> Fixes: cd33c830448ba ("media: rkvdec: Add the rkvdec driver")
>> Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
>> Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com>
>> Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
>>
>> ---
>> @Hans: I haven't had anyone complain about the issue. The fix is needed for
>> the rkvdec vp9 work, so I think 5.14 is fine.
>>
>>   drivers/staging/media/rkvdec/rkvdec.c | 10 +++++++++-
>>   1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c
>> index d821661d30f3..ef2166043127 100644
>> --- a/drivers/staging/media/rkvdec/rkvdec.c
>> +++ b/drivers/staging/media/rkvdec/rkvdec.c
>> @@ -481,7 +481,15 @@ static int rkvdec_buf_prepare(struct vb2_buffer *vb)
>>                  if (vb2_plane_size(vb, i) < sizeimage)
>>                          return -EINVAL;
>>          }
>> -       vb2_set_plane_payload(vb, 0, f->fmt.pix_mp.plane_fmt[0].sizeimage);
>> +
>> +       /*
>> +        * Buffer bytesused is written by driver for CAPTURE buffers.
>> +        * (if userspace passes 0 bytesused for OUTPUT buffers, v4l2-core sets
>> +        * it to buffer length).
>> +        */
>> +       if (!V4L2_TYPE_IS_OUTPUT(vq->type))
> 
> Please use V4L2_TYPE_IS_CAPTURE here.
> 
> Also, why is this change needed in rkvdec, but not in cedrus
> or hantro?
> 

As a matter of fact I think it is needed in all three, because later on,
whenever a driver uses vb2_get_plane_payload(), without such a patch it
will get an invalid number and write that to a hardware register, causing
incorrect behavior.

I will respond with a v2 series.

Regards,

Andrzej

WARNING: multiple messages have this Message-ID (diff)
From: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
To: Ezequiel Garcia <ezequiel@collabora.com>, linux-media@vger.kernel.org
Cc: devel@driverdev.osuosl.org, kernel@collabora.com,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Adrian Ratiu <adrian.ratiu@collabora.com>,
	linux-rockchip@lists.infradead.org,
	Hans Verkuil <hverkuil-cisco@xs4all.nl>,
	Mauro Carvalho Chehab <mchehab@kernel.org>
Subject: Re: [PATCH] media: rkvdec: Fix .buf_prepare
Date: Wed, 5 May 2021 14:17:08 +0200	[thread overview]
Message-ID: <58791717-b7a9-d057-a998-a4440fcbe783@collabora.com> (raw)
In-Reply-To: <2db7709801107dbacd464a919451bbafbd335748.camel@collabora.com>

Hi Ezequiel,

W dniu 04.05.2021 o 13:56, Ezequiel Garcia pisze:
> Hi Andrzej,
> 
> Thanks a lot for picking this up.
> 
> On Tue, 2021-05-04 at 13:37 +0200, Andrzej Pietrasiewicz wrote:
>> From: Ezequiel Garcia <ezequiel@collabora.com>
>>
>> The driver should only set the payload on .buf_prepare if the
>> buffer is CAPTURE type. If an OUTPUT buffer has a zero bytesused
>> set by userspace then v4l2-core will set it to buffer length.
>>
>> Fixes: cd33c830448ba ("media: rkvdec: Add the rkvdec driver")
>> Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
>> Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com>
>> Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
>>
>> ---
>> @Hans: I haven't had anyone complain about the issue. The fix is needed for
>> the rkvdec vp9 work, so I think 5.14 is fine.
>>
>>   drivers/staging/media/rkvdec/rkvdec.c | 10 +++++++++-
>>   1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c
>> index d821661d30f3..ef2166043127 100644
>> --- a/drivers/staging/media/rkvdec/rkvdec.c
>> +++ b/drivers/staging/media/rkvdec/rkvdec.c
>> @@ -481,7 +481,15 @@ static int rkvdec_buf_prepare(struct vb2_buffer *vb)
>>                  if (vb2_plane_size(vb, i) < sizeimage)
>>                          return -EINVAL;
>>          }
>> -       vb2_set_plane_payload(vb, 0, f->fmt.pix_mp.plane_fmt[0].sizeimage);
>> +
>> +       /*
>> +        * Buffer bytesused is written by driver for CAPTURE buffers.
>> +        * (if userspace passes 0 bytesused for OUTPUT buffers, v4l2-core sets
>> +        * it to buffer length).
>> +        */
>> +       if (!V4L2_TYPE_IS_OUTPUT(vq->type))
> 
> Please use V4L2_TYPE_IS_CAPTURE here.
> 
> Also, why is this change needed in rkvdec, but not in cedrus
> or hantro?
> 

As a matter of fact I think it is needed in all three, because later on,
whenever a driver uses vb2_get_plane_payload(), without such a patch it
will get an invalid number and write that to a hardware register, causing
incorrect behavior.

I will respond with a v2 series.

Regards,

Andrzej
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

WARNING: multiple messages have this Message-ID (diff)
From: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
To: Ezequiel Garcia <ezequiel@collabora.com>, linux-media@vger.kernel.org
Cc: linux-rockchip@lists.infradead.org, devel@driverdev.osuosl.org,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Hans Verkuil <hverkuil-cisco@xs4all.nl>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	kernel@collabora.com, Adrian Ratiu <adrian.ratiu@collabora.com>
Subject: Re: [PATCH] media: rkvdec: Fix .buf_prepare
Date: Wed, 5 May 2021 14:17:08 +0200	[thread overview]
Message-ID: <58791717-b7a9-d057-a998-a4440fcbe783@collabora.com> (raw)
In-Reply-To: <2db7709801107dbacd464a919451bbafbd335748.camel@collabora.com>

Hi Ezequiel,

W dniu 04.05.2021 o 13:56, Ezequiel Garcia pisze:
> Hi Andrzej,
> 
> Thanks a lot for picking this up.
> 
> On Tue, 2021-05-04 at 13:37 +0200, Andrzej Pietrasiewicz wrote:
>> From: Ezequiel Garcia <ezequiel@collabora.com>
>>
>> The driver should only set the payload on .buf_prepare if the
>> buffer is CAPTURE type. If an OUTPUT buffer has a zero bytesused
>> set by userspace then v4l2-core will set it to buffer length.
>>
>> Fixes: cd33c830448ba ("media: rkvdec: Add the rkvdec driver")
>> Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
>> Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com>
>> Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
>>
>> ---
>> @Hans: I haven't had anyone complain about the issue. The fix is needed for
>> the rkvdec vp9 work, so I think 5.14 is fine.
>>
>>   drivers/staging/media/rkvdec/rkvdec.c | 10 +++++++++-
>>   1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c
>> index d821661d30f3..ef2166043127 100644
>> --- a/drivers/staging/media/rkvdec/rkvdec.c
>> +++ b/drivers/staging/media/rkvdec/rkvdec.c
>> @@ -481,7 +481,15 @@ static int rkvdec_buf_prepare(struct vb2_buffer *vb)
>>                  if (vb2_plane_size(vb, i) < sizeimage)
>>                          return -EINVAL;
>>          }
>> -       vb2_set_plane_payload(vb, 0, f->fmt.pix_mp.plane_fmt[0].sizeimage);
>> +
>> +       /*
>> +        * Buffer bytesused is written by driver for CAPTURE buffers.
>> +        * (if userspace passes 0 bytesused for OUTPUT buffers, v4l2-core sets
>> +        * it to buffer length).
>> +        */
>> +       if (!V4L2_TYPE_IS_OUTPUT(vq->type))
> 
> Please use V4L2_TYPE_IS_CAPTURE here.
> 
> Also, why is this change needed in rkvdec, but not in cedrus
> or hantro?
> 

As a matter of fact I think it is needed in all three, because later on,
whenever a driver uses vb2_get_plane_payload(), without such a patch it
will get an invalid number and write that to a hardware register, causing
incorrect behavior.

I will respond with a v2 series.

Regards,

Andrzej

_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

  reply	other threads:[~2021-05-05 12:18 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-04 11:37 [PATCH] media: rkvdec: Fix .buf_prepare Andrzej Pietrasiewicz
2021-05-04 11:37 ` Andrzej Pietrasiewicz
2021-05-04 11:37 ` Andrzej Pietrasiewicz
2021-05-04 11:56 ` Ezequiel Garcia
2021-05-04 11:56   ` Ezequiel Garcia
2021-05-04 11:56   ` Ezequiel Garcia
2021-05-05 12:17   ` Andrzej Pietrasiewicz [this message]
2021-05-05 12:17     ` Andrzej Pietrasiewicz
2021-05-05 12:17     ` Andrzej Pietrasiewicz
2021-05-05 12:23     ` [PATCHv2 0/3] " Andrzej Pietrasiewicz
2021-05-05 12:23       ` Andrzej Pietrasiewicz
2021-05-05 12:23       ` Andrzej Pietrasiewicz
2021-05-05 12:23       ` Andrzej Pietrasiewicz
2021-05-05 12:23       ` [PATCHv2 1/3] media: rkvdec: " Andrzej Pietrasiewicz
2021-05-05 12:23         ` Andrzej Pietrasiewicz
2021-05-05 12:23         ` Andrzej Pietrasiewicz
2021-05-05 12:23         ` Andrzej Pietrasiewicz
2021-05-05 12:23       ` [PATCHv2 2/3] media: hantro: " Andrzej Pietrasiewicz
2021-05-05 12:23         ` Andrzej Pietrasiewicz
2021-05-05 12:23         ` Andrzej Pietrasiewicz
2021-05-05 12:23         ` Andrzej Pietrasiewicz
2021-05-05 12:23       ` [PATCHv2 3/3] media: cedrus: " Andrzej Pietrasiewicz
2021-05-05 12:23         ` Andrzej Pietrasiewicz
2021-05-05 12:23         ` Andrzej Pietrasiewicz
2021-05-05 12:23         ` Andrzej Pietrasiewicz

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=58791717-b7a9-d057-a998-a4440fcbe783@collabora.com \
    --to=andrzej.p@collabora.com \
    --cc=adrian.ratiu@collabora.com \
    --cc=devel@driverdev.osuosl.org \
    --cc=ezequiel@collabora.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=kernel@collabora.com \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=mchehab@kernel.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.