* [PATCH] rcar-vin: Use bytes per line instead of width for UV offset
@ 2019-09-05 21:25 Niklas Söderlund
2019-09-11 22:41 ` Kieran Bingham
2019-09-11 23:43 ` Ezequiel Garcia
0 siblings, 2 replies; 3+ messages in thread
From: Niklas Söderlund @ 2019-09-05 21:25 UTC (permalink / raw)
To: Laurent Pinchart, linux-media; +Cc: linux-renesas-soc, Niklas Söderlund
The image size is doubled for NV16 and is calculated as bytesperline *
height * 2 to accommodate the split of UV data. When writing the offset
to hardware width is used instead of bytesperline, fix this.
Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
---
drivers/media/platform/rcar-vin/rcar-dma.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/media/platform/rcar-vin/rcar-dma.c b/drivers/media/platform/rcar-vin/rcar-dma.c
index c7859b329dd4f02a..af4f774149f08597 100644
--- a/drivers/media/platform/rcar-vin/rcar-dma.c
+++ b/drivers/media/platform/rcar-vin/rcar-dma.c
@@ -703,8 +703,8 @@ static int rvin_setup(struct rvin_dev *vin)
switch (vin->format.pixelformat) {
case V4L2_PIX_FMT_NV16:
rvin_write(vin,
- ALIGN(vin->format.width * vin->format.height, 0x80),
- VNUVAOF_REG);
+ ALIGN(vin->format.bytesperline * vin->format.height,
+ 0x80), VNUVAOF_REG);
dmr = VNDMR_DTMD_YCSEP;
output_is_yuv = true;
break;
--
2.23.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] rcar-vin: Use bytes per line instead of width for UV offset
2019-09-05 21:25 [PATCH] rcar-vin: Use bytes per line instead of width for UV offset Niklas Söderlund
@ 2019-09-11 22:41 ` Kieran Bingham
2019-09-11 23:43 ` Ezequiel Garcia
1 sibling, 0 replies; 3+ messages in thread
From: Kieran Bingham @ 2019-09-11 22:41 UTC (permalink / raw)
To: Niklas Söderlund, Laurent Pinchart, linux-media; +Cc: linux-renesas-soc
Hi Niklas,
On 05/09/2019 22:25, Niklas Söderlund wrote:
> The image size is doubled for NV16 and is calculated as bytesperline *
> height * 2 to accommodate the split of UV data. When writing the offset
> to hardware width is used instead of bytesperline, fix this.
s/hardware width/hardware, the width/ ?
>
Eeep, Subtle bug :)
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
> Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
> ---
> drivers/media/platform/rcar-vin/rcar-dma.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/media/platform/rcar-vin/rcar-dma.c b/drivers/media/platform/rcar-vin/rcar-dma.c
> index c7859b329dd4f02a..af4f774149f08597 100644
> --- a/drivers/media/platform/rcar-vin/rcar-dma.c
> +++ b/drivers/media/platform/rcar-vin/rcar-dma.c
> @@ -703,8 +703,8 @@ static int rvin_setup(struct rvin_dev *vin)
> switch (vin->format.pixelformat) {
> case V4L2_PIX_FMT_NV16:
> rvin_write(vin,
> - ALIGN(vin->format.width * vin->format.height, 0x80),
> - VNUVAOF_REG);
> + ALIGN(vin->format.bytesperline * vin->format.height,
> + 0x80), VNUVAOF_REG);
> dmr = VNDMR_DTMD_YCSEP;
> output_is_yuv = true;
> break;
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] rcar-vin: Use bytes per line instead of width for UV offset
2019-09-05 21:25 [PATCH] rcar-vin: Use bytes per line instead of width for UV offset Niklas Söderlund
2019-09-11 22:41 ` Kieran Bingham
@ 2019-09-11 23:43 ` Ezequiel Garcia
1 sibling, 0 replies; 3+ messages in thread
From: Ezequiel Garcia @ 2019-09-11 23:43 UTC (permalink / raw)
To: Niklas Söderlund, Laurent Pinchart, linux-media
Cc: linux-renesas-soc, Kieran Bingham
Hello Niklas,
On Thu, 2019-09-05 at 23:25 +0200, Niklas Söderlund wrote:
> The image size is doubled for NV16 and is calculated as bytesperline *
> height * 2 to accommodate the split of UV data. When writing the offset
> to hardware width is used instead of bytesperline, fix this.
>
> Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
> ---
> drivers/media/platform/rcar-vin/rcar-dma.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/media/platform/rcar-vin/rcar-dma.c b/drivers/media/platform/rcar-vin/rcar-dma.c
> index c7859b329dd4f02a..af4f774149f08597 100644
> --- a/drivers/media/platform/rcar-vin/rcar-dma.c
> +++ b/drivers/media/platform/rcar-vin/rcar-dma.c
> @@ -703,8 +703,8 @@ static int rvin_setup(struct rvin_dev *vin)
> switch (vin->format.pixelformat) {
> case V4L2_PIX_FMT_NV16:
> rvin_write(vin,
> - ALIGN(vin->format.width * vin->format.height, 0x80),
> - VNUVAOF_REG);
> + ALIGN(vin->format.bytesperline * vin->format.height,
> + 0x80), VNUVAOF_REG);
You can make your life easier by simply pulling the pixel format helper
and let someone figure out the math. See v4l2_fill_pixfmt and friends.
Avoiding these type of subtle issues is why we have them.
Eze
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-09-11 23:43 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-05 21:25 [PATCH] rcar-vin: Use bytes per line instead of width for UV offset Niklas Söderlund
2019-09-11 22:41 ` Kieran Bingham
2019-09-11 23:43 ` Ezequiel Garcia
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).