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

Commit b8374138 authored by Frank Schaefer's avatar Frank Schaefer Committed by Mauro Carvalho Chehab
Browse files

[media] em28xx: add function scale_to_size()

parent 6b09a21c
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -815,6 +815,17 @@ static void size_to_scale(struct em28xx *dev,
		*vscale = EM28XX_HVSCALE_MAX;
}

static void scale_to_size(struct em28xx *dev,
			  unsigned int hscale, unsigned int vscale,
			  unsigned int *width, unsigned int *height)
{
	unsigned int          maxw = norm_maxw(dev);
	unsigned int          maxh = norm_maxh(dev);

	*width = (((unsigned long)maxw) << 12) / (hscale + 4096L);
	*height = (((unsigned long)maxh) << 12) / (vscale + 4096L);
}

/* ------------------------------------------------------------------
	IOCTL vidioc handling
   ------------------------------------------------------------------*/
@@ -890,9 +901,7 @@ static int vidioc_try_fmt_vid_cap(struct file *file, void *priv,
	}

	size_to_scale(dev, width, height, &hscale, &vscale);

	width = (((unsigned long)maxw) << 12) / (hscale + 4096L);
	height = (((unsigned long)maxh) << 12) / (vscale + 4096L);
	scale_to_size(dev, hscale, hscale, &width, &height);

	f->fmt.pix.width = width;
	f->fmt.pix.height = height;