mirror of https://gitee.com/openkylin/linux.git
media: atmel: atmel-isc-base: fix enum calls default format
With some sensors, the mbus code must match the one that sensor supports. In this case we should initialize the mbus_code of the fse/fie before calling the subdev, and not after. 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
ed1307e335
commit
da3a55b5a9
|
@ -1437,6 +1437,7 @@ static int isc_enum_framesizes(struct file *file, void *fh,
|
||||||
{
|
{
|
||||||
struct isc_device *isc = video_drvdata(file);
|
struct isc_device *isc = video_drvdata(file);
|
||||||
struct v4l2_subdev_frame_size_enum fse = {
|
struct v4l2_subdev_frame_size_enum fse = {
|
||||||
|
.code = isc->config.sd_format->mbus_code,
|
||||||
.index = fsize->index,
|
.index = fsize->index,
|
||||||
.which = V4L2_SUBDEV_FORMAT_ACTIVE,
|
.which = V4L2_SUBDEV_FORMAT_ACTIVE,
|
||||||
};
|
};
|
||||||
|
@ -1459,8 +1460,6 @@ static int isc_enum_framesizes(struct file *file, void *fh,
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
fse.code = isc->config.sd_format->mbus_code;
|
|
||||||
|
|
||||||
fsize->type = V4L2_FRMSIZE_TYPE_DISCRETE;
|
fsize->type = V4L2_FRMSIZE_TYPE_DISCRETE;
|
||||||
fsize->discrete.width = fse.max_width;
|
fsize->discrete.width = fse.max_width;
|
||||||
fsize->discrete.height = fse.max_height;
|
fsize->discrete.height = fse.max_height;
|
||||||
|
@ -1473,6 +1472,7 @@ static int isc_enum_frameintervals(struct file *file, void *fh,
|
||||||
{
|
{
|
||||||
struct isc_device *isc = video_drvdata(file);
|
struct isc_device *isc = video_drvdata(file);
|
||||||
struct v4l2_subdev_frame_interval_enum fie = {
|
struct v4l2_subdev_frame_interval_enum fie = {
|
||||||
|
.code = isc->config.sd_format->mbus_code,
|
||||||
.index = fival->index,
|
.index = fival->index,
|
||||||
.width = fival->width,
|
.width = fival->width,
|
||||||
.height = fival->height,
|
.height = fival->height,
|
||||||
|
@ -1497,7 +1497,6 @@ static int isc_enum_frameintervals(struct file *file, void *fh,
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
fie.code = isc->config.sd_format->mbus_code;
|
|
||||||
fival->type = V4L2_FRMIVAL_TYPE_DISCRETE;
|
fival->type = V4L2_FRMIVAL_TYPE_DISCRETE;
|
||||||
fival->discrete = fie.interval;
|
fival->discrete = fie.interval;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue