question about soc_camera_open

Kuninori Morimoto <[email protected]>
Newsgroups gmane.comp.video.video4linux
Message-ID <ud49domlx.wl%[email protected]>
Dear Guennadi

soc_camera_open use icd->current_fmt directly.
It doesn't check if icd->current_fmt != NULL.

	if (icd->use_count == 1) {
		/* Restore parameters before the last close() per V4L2 API */
		struct v4l2_format f = {
			.type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
			.fmt.pix = {
				.width		= icd->width,
				.height		= icd->height,
				.field		= icd->field,
=>				.pixelformat	= icd->current_fmt->fourcc,
=>				.colorspace	= icd->current_fmt->colorspace,
			},
		};


if soc_camera_init_user_formats return -ENXIO,
then, icd->current_fmt is still NULL.

	if (!ici->ops->get_formats)
		/*
		 * Fallback mode - the host will have to serve all
		 * sensor-provided formats one-to-one to the user
		 */
		fmts = icd->num_formats;
	else
		/*
		 * First pass - only count formats this host-sensor
		 * configuration can provide
		 */
		for (i = 0; i < icd->num_formats; i++)
			fmts += ici->ops->get_formats(icd, i, NULL);

	if (!fmts)
=>		return -ENXIO;

in my environment, I can use "sh_mobile_ceu" and "soc_camera_platform",
if sh_mobile_ceu_try_bus_param failed, this process will run above way.
and it will be kernel panic.
Is this bug ??

Best regards
--
Kuninori Morimoto
 

--
video4linux-list mailing list
Unsubscribe mailto:[email protected]?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.