Commit 331adc2f authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

media: atomisp: better describe get_frame_info issues



When atomisp is used by a normal client, it fails to get
frame info. However, the information is confusing and misleading,
as there are several wrappers for such function, and the error
could be on different places.

So, improve the error log in order to allow narrowing down
where the error is actually occuring.

Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent fae46cb0
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -5453,9 +5453,9 @@ static int atomisp_set_fmt_to_isp(struct video_device *vdev,
	else
		ret = get_frame_info(asd, output_info);
	if (ret) {
		dev_err(isp->dev, "get_frame_info %ux%u (padded to %u)\n",
			pix->width, pix->height, pix->bytesperline);
		return -EINVAL;
		dev_err(isp->dev, "__get_frame_info %ux%u (padded to %u) returned %d\n",
			pix->width, pix->height, pix->bytesperline, ret);
		return ret;
	}

	atomisp_update_grid_info(asd, pipe_id, source_pad);
+37 −30
Original line number Diff line number Diff line
@@ -2657,16 +2657,23 @@ static int __get_frame_info(struct atomisp_sub_device *asd,
	if (__destroy_pipes(asd, true))
		dev_warn(isp->dev, "destroy pipe failed.\n");

	if (__create_pipes(asd))
	if (__create_pipes(asd)) {
		dev_err(isp->dev, "can't create pipes\n");
		return -EINVAL;
	}

	if (__create_streams(asd)) {
		dev_err(isp->dev, "can't create streams\n");
		goto stream_err;
	}

	if (__create_streams(asd))
	ret = ia_css_pipe_get_info(asd->stream_env[stream_index].pipes[pipe_id],
				   &p_info);
	if (ret) {
		dev_err(isp->dev, "can't get info from pipe\n");
		goto stream_err;
	}

	ret = ia_css_pipe_get_info(
		  asd->stream_env[stream_index]
		  .pipes[pipe_id], &p_info);
	if (!ret) {
	switch (type) {
	case ATOMISP_CSS_VF_FRAME:
		*info = p_info.vf_output_info[0];
@@ -2690,8 +2697,8 @@ static int __get_frame_info(struct atomisp_sub_device *asd,
	}
	dev_dbg(isp->dev, "get frame info: w=%d, h=%d, num_invalid_frames %d.\n",
		info->res.width, info->res.height, p_info.num_invalid_frames);

	return 0;
	}

stream_err:
	__destroy_pipes(asd, true);