mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-21 13:24:15 +08:00
media: atmel: atmel-isc: add checks for limiting frame sizes
When calling the subdev, certain subdev drivers will overwrite the frame size and adding sizes which are beyond the ISC's capabilities. Thus we need to ensure the frame size is cropped to the maximum caps. Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
d5475b3c90
commit
5122e8d15a
@ -1338,6 +1338,12 @@ static int isc_try_fmt(struct isc_device *isc, struct v4l2_format *f,
|
||||
|
||||
v4l2_fill_pix_format(pixfmt, &format.format);
|
||||
|
||||
/* Limit to Atmel ISC hardware capabilities */
|
||||
if (pixfmt->width > ISC_MAX_SUPPORT_WIDTH)
|
||||
pixfmt->width = ISC_MAX_SUPPORT_WIDTH;
|
||||
if (pixfmt->height > ISC_MAX_SUPPORT_HEIGHT)
|
||||
pixfmt->height = ISC_MAX_SUPPORT_HEIGHT;
|
||||
|
||||
pixfmt->field = V4L2_FIELD_NONE;
|
||||
pixfmt->bytesperline = (pixfmt->width * isc->try_config.bpp) >> 3;
|
||||
pixfmt->sizeimage = pixfmt->bytesperline * pixfmt->height;
|
||||
@ -1373,6 +1379,12 @@ static int isc_set_fmt(struct isc_device *isc, struct v4l2_format *f)
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
/* Limit to Atmel ISC hardware capabilities */
|
||||
if (pixfmt->width > ISC_MAX_SUPPORT_WIDTH)
|
||||
pixfmt->width = ISC_MAX_SUPPORT_WIDTH;
|
||||
if (pixfmt->height > ISC_MAX_SUPPORT_HEIGHT)
|
||||
pixfmt->height = ISC_MAX_SUPPORT_HEIGHT;
|
||||
|
||||
isc->fmt = *f;
|
||||
|
||||
if (isc->try_config.sd_format && isc->config.sd_format &&
|
||||
|
Loading…
Reference in New Issue
Block a user