mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-15 11:06:43 +07:00
media: rcar-vin: Report correct image stride
The image stride was adjusted when it was written to hardware and not when configuring the format. Calculate the correct stride value and report it to userspace. Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
256acbebdc
commit
84246ae3fd
@ -577,6 +577,9 @@ static void rvin_crop_scale_comp_gen2(struct rvin_dev *vin)
|
||||
|
||||
void rvin_crop_scale_comp(struct rvin_dev *vin)
|
||||
{
|
||||
const struct rvin_video_format *fmt;
|
||||
u32 stride;
|
||||
|
||||
/* Set Start/End Pixel/Line Pre-Clip */
|
||||
rvin_write(vin, vin->crop.left, VNSPPRC_REG);
|
||||
rvin_write(vin, vin->crop.left + vin->crop.width - 1, VNEPPRC_REG);
|
||||
@ -600,10 +603,9 @@ void rvin_crop_scale_comp(struct rvin_dev *vin)
|
||||
if (vin->info->model != RCAR_GEN3)
|
||||
rvin_crop_scale_comp_gen2(vin);
|
||||
|
||||
if (vin->format.pixelformat == V4L2_PIX_FMT_NV16)
|
||||
rvin_write(vin, ALIGN(vin->format.width, 0x20), VNIS_REG);
|
||||
else
|
||||
rvin_write(vin, ALIGN(vin->format.width, 0x10), VNIS_REG);
|
||||
fmt = rvin_format_from_pixel(vin, vin->format.pixelformat);
|
||||
stride = vin->format.bytesperline / fmt->bpp;
|
||||
rvin_write(vin, stride, VNIS_REG);
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
|
@ -83,13 +83,16 @@ static u32 rvin_format_bytesperline(struct rvin_dev *vin,
|
||||
struct v4l2_pix_format *pix)
|
||||
{
|
||||
const struct rvin_video_format *fmt;
|
||||
u32 align;
|
||||
|
||||
fmt = rvin_format_from_pixel(vin, pix->pixelformat);
|
||||
|
||||
if (WARN_ON(!fmt))
|
||||
return -EINVAL;
|
||||
|
||||
return pix->width * fmt->bpp;
|
||||
align = pix->pixelformat == V4L2_PIX_FMT_NV16 ? 0x20 : 0x10;
|
||||
|
||||
return ALIGN(pix->width, align) * fmt->bpp;
|
||||
}
|
||||
|
||||
static u32 rvin_format_sizeimage(struct v4l2_pix_format *pix)
|
||||
|
Loading…
Reference in New Issue
Block a user