Commit e0ae3048 authored by Hans de Goede's avatar Hans de Goede Committed by Mauro Carvalho Chehab

media: atomisp: Make atomisp_try_fmt_cap() take padding into account

atomisp_try_fmt() gives results with padding included. So when userspace
asks for e.g. 1600x1200 then we should pass 1616x1216 to atomisp_try_fmt()
this will then get adjusted back to 1600x1200 before returning it to
userspace by the atomisp_adjust_fmt() call at the end of atomisp_try_fmt().

This fixes the resolution list in camorama showing resolutions like e.g.
1584x1184 instead of 1600x1200.
Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
parent 4d3aafb9
...@@ -960,6 +960,13 @@ static int atomisp_try_fmt_cap(struct file *file, void *fh, ...@@ -960,6 +960,13 @@ static int atomisp_try_fmt_cap(struct file *file, void *fh,
struct atomisp_device *isp = video_get_drvdata(vdev); struct atomisp_device *isp = video_get_drvdata(vdev);
int ret; int ret;
/*
* atomisp_try_fmt() gived results with padding included, note
* (this gets removed again by the atomisp_adjust_fmt() call below.
*/
f->fmt.pix.width += pad_w;
f->fmt.pix.height += pad_h;
rt_mutex_lock(&isp->mutex); rt_mutex_lock(&isp->mutex);
ret = atomisp_try_fmt(vdev, &f->fmt.pix, NULL); ret = atomisp_try_fmt(vdev, &f->fmt.pix, NULL);
rt_mutex_unlock(&isp->mutex); rt_mutex_unlock(&isp->mutex);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment