diff options
| author | Hans de Goede <hdegoede@redhat.com> | 2022-10-16 10:35:03 +0100 | 
|---|---|---|
| committer | Mauro Carvalho Chehab <mchehab@kernel.org> | 2022-11-25 08:15:45 +0000 | 
| commit | 4361af85109cdf89bd52f75157d818e4cecb2a4e (patch) | |
| tree | 82022c22876d22879987314b0242d4dc7b5e25a7 /drivers/staging/media/atomisp | |
| parent | 795ac295eacb291302b8951605677301c7938bd7 (diff) | |
| download | linux-4361af85109cdf89bd52f75157d818e4cecb2a4e.tar.bz2 | |
media: atomisp: Refactor atomisp_adjust_fmt()
Refactor atomisp_adjust_fmt():
1. The block starting at "format_bridge = atomisp_get_format_bridge(...)"
and ending with "if (field == V4L2_FIELD_ANY) field = V4L2_FIELD_NONE;"
is duplicated. With only the second block:
a) Properly checking that format_bridge is not NULL; amd
b) Having the special handling for IA_CSS_FRAME_FORMAT_RAW
Remove the first block.
2. On a NULL return from atomisp_get_format_bridge(f->fmt.pix.pixelformat)
fall back to V4L2_PIX_FMT_YUV420 just like in the IA_CSS_FRAME_FORMAT_RAW
case. atomisp_adjust_fmt() is used in VIDIOC_TRY_FMT handling and that
should jusy pick a fmt rather then returning -EINVAL.
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Diffstat (limited to 'drivers/staging/media/atomisp')
| -rw-r--r-- | drivers/staging/media/atomisp/pci/atomisp_ioctl.c | 23 | 
1 files changed, 1 insertions, 22 deletions
| diff --git a/drivers/staging/media/atomisp/pci/atomisp_ioctl.c b/drivers/staging/media/atomisp/pci/atomisp_ioctl.c index 90da474670e0..48e3afbd4fd7 100644 --- a/drivers/staging/media/atomisp/pci/atomisp_ioctl.c +++ b/drivers/staging/media/atomisp/pci/atomisp_ioctl.c @@ -878,29 +878,8 @@ static int atomisp_adjust_fmt(struct v4l2_format *f)  	u32 padded_width;  	format_bridge = atomisp_get_format_bridge(f->fmt.pix.pixelformat); - -	padded_width = f->fmt.pix.width + pad_w; - -	if (format_bridge->planar) { -		f->fmt.pix.bytesperline = padded_width; -		f->fmt.pix.sizeimage = PAGE_ALIGN(f->fmt.pix.height * -						  DIV_ROUND_UP(format_bridge->depth * -						  padded_width, 8)); -	} else { -		f->fmt.pix.bytesperline = DIV_ROUND_UP(format_bridge->depth * -						      padded_width, 8); -		f->fmt.pix.sizeimage = PAGE_ALIGN(f->fmt.pix.height * f->fmt.pix.bytesperline); -	} - -	if (f->fmt.pix.field == V4L2_FIELD_ANY) -		f->fmt.pix.field = V4L2_FIELD_NONE; - -	format_bridge = atomisp_get_format_bridge(f->fmt.pix.pixelformat); -	if (!format_bridge) -		return -EINVAL; -  	/* Currently, raw formats are broken!!! */ -	if (format_bridge->sh_fmt == IA_CSS_FRAME_FORMAT_RAW) { +	if (!format_bridge || format_bridge->sh_fmt == IA_CSS_FRAME_FORMAT_RAW) {  		f->fmt.pix.pixelformat = V4L2_PIX_FMT_YUV420;  		format_bridge = atomisp_get_format_bridge(f->fmt.pix.pixelformat); |