2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-04 11:43:54 +08:00
linux-next/drivers/media
Albert Wang 991b3137f2 [media] media: soc_camera: don't clear pix->sizeimage in JPEG mode
In JPEG mode, the size of image is variable due to different JPEG compression
rate. We only can get the pix->sizeimage from the user.

If we clear pix->sizeimage in soc_camera_try_fmt() then we will get it from:
	ret = soc_mbus_image_size(xlate->host_fmt, pix->bytesperline,
				pix->height);
	if (ret < 0)
		return ret;

	pix->sizeimage = max_t(u32, pix->sizeimage, ret);

In general, this sizeimage will be larger than the actul JPEG image size.

But vb2 will check the buffer and size of image in __qbuf_userptr():
	/* Check if the provided plane buffer is large enough */
	if (planes[plane].length < q->plane_sizes[plane])

So we shouldn't clear the pix->sizeimage and also shouldn't re-calculate
the pix->sizeimage in soc_mbus_image_size() in JPEG mode

We also shouldn't re-calculate pix->bytesperline:
	ret = soc_mbus_bytes_per_line(pix->width, xlate->host_fmt);
	if (ret < 0)
		return ret;

	pix->bytesperline = max_t(u32, pix->bytesperline, ret);

pix->bytesperline also should be set by the user or by the driver's
try_fmt() implementation.

Change-Id: I700690a2287346127a624b5260922eaa5427a596

Signed-off-by: Albert Wang <twang13@marvell.com>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2012-08-15 19:24:28 -03:00
..
common [media] xc5000: Add MODULE_FIRMWARE statements 2012-07-30 23:31:42 -03:00
dvb [media] lgs8gxx: Declare MODULE_FIRMWARE usage 2012-07-30 23:46:36 -03:00
radio [media] radio-shark2: Only compile led support when CONFIG_LED_CLASS is set 2012-08-12 13:50:09 -03:00
rc [media] Add USB dependency for IguanaWorks USB IR Transceiver 2012-08-12 07:35:00 -03:00
video [media] media: soc_camera: don't clear pix->sizeimage in JPEG mode 2012-08-15 19:24:28 -03:00
Kconfig [media] Kconfig: Split the core support options from the driver ones 2012-07-06 09:12:59 -03:00
Makefile
media-device.c [media] media: fix truncated entity specification 2011-12-20 09:31:50 -02:00
media-devnode.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
media-entity.c [media] media: Add link_validate() op to check links to the sink pad 2012-05-14 08:44:11 -03:00