Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cc3c2ac2 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Mauro Carvalho Chehab
Browse files

[media] v4l: omap4iss: Make __iss_video_get_format() return a v4l2_mbus_framefmt



The function will be used by a caller that needs the media bus format
instead of the pixel format currently returned. Move the media bus
format to pixel format conversion to the existing caller.

Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
parent a1d4eab0
Loading
Loading
Loading
Loading
+15 −10
Original line number Diff line number Diff line
@@ -232,7 +232,8 @@ iss_video_far_end(struct iss_video *video)
}

static int
__iss_video_get_format(struct iss_video *video, struct v4l2_format *format)
__iss_video_get_format(struct iss_video *video,
		       struct v4l2_mbus_framefmt *format)
{
	struct v4l2_subdev_format fmt;
	struct v4l2_subdev *subdev;
@@ -243,6 +244,7 @@ __iss_video_get_format(struct iss_video *video, struct v4l2_format *format)
	if (subdev == NULL)
		return -EINVAL;

	memset(&fmt, 0, sizeof(fmt));
	fmt.pad = pad;
	fmt.which = V4L2_SUBDEV_FORMAT_ACTIVE;

@@ -253,26 +255,29 @@ __iss_video_get_format(struct iss_video *video, struct v4l2_format *format)
	if (ret)
		return ret;

	format->type = video->type;
	return iss_video_mbus_to_pix(video, &fmt.format, &format->fmt.pix);
	*format = fmt.format;
	return 0;
}

static int
iss_video_check_format(struct iss_video *video, struct iss_video_fh *vfh)
{
	struct v4l2_format format;
	struct v4l2_mbus_framefmt format;
	struct v4l2_pix_format pixfmt;
	int ret;

	memcpy(&format, &vfh->format, sizeof(format));
	ret = __iss_video_get_format(video, &format);
	if (ret < 0)
		return ret;

	if (vfh->format.fmt.pix.pixelformat != format.fmt.pix.pixelformat ||
	    vfh->format.fmt.pix.height != format.fmt.pix.height ||
	    vfh->format.fmt.pix.width != format.fmt.pix.width ||
	    vfh->format.fmt.pix.bytesperline != format.fmt.pix.bytesperline ||
	    vfh->format.fmt.pix.sizeimage != format.fmt.pix.sizeimage)
	pixfmt.bytesperline = 0;
	ret = iss_video_mbus_to_pix(video, &format, &pixfmt);

	if (vfh->format.fmt.pix.pixelformat != pixfmt.pixelformat ||
	    vfh->format.fmt.pix.height != pixfmt.height ||
	    vfh->format.fmt.pix.width != pixfmt.width ||
	    vfh->format.fmt.pix.bytesperline != pixfmt.bytesperline ||
	    vfh->format.fmt.pix.sizeimage != pixfmt.sizeimage)
		return -EINVAL;

	return ret;