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

Commit 16204b8a authored by Rui Miguel Silva's avatar Rui Miguel Silva Committed by Mauro Carvalho Chehab
Browse files

media: staging/imx: add media device to capture register



When register the capture media device it is assumed that the device
data is the media device. In the imx6 case is but in the imx7 is not
case. The device data is the csi structure.

Add the explicit argument of the media device that we want to
associate with the capture device.

Reported-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: default avatarRui Miguel Silva <rui.silva@linaro.org>
Acked-by: default avatarSteve Longerbeam <slongerbeam@gmail.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
[hverkuil-cisco@xs4all.nl: fix checkpatch alignment warning]
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 9f7983bd
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1270,7 +1270,7 @@ static int prp_registered(struct v4l2_subdev *sd)
	if (ret)
		return ret;

	ret = imx_media_capture_device_register(priv->vdev);
	ret = imx_media_capture_device_register(priv->md, priv->vdev);
	if (ret)
		return ret;

+3 −3
Original line number Diff line number Diff line
@@ -706,7 +706,8 @@ void imx_media_capture_device_error(struct imx_media_video_dev *vdev)
}
EXPORT_SYMBOL_GPL(imx_media_capture_device_error);

int imx_media_capture_device_register(struct imx_media_video_dev *vdev)
int imx_media_capture_device_register(struct imx_media_dev *md,
				      struct imx_media_video_dev *vdev)
{
	struct capture_priv *priv = to_capture_priv(vdev);
	struct v4l2_subdev *sd = priv->src_sd;
@@ -715,8 +716,7 @@ int imx_media_capture_device_register(struct imx_media_video_dev *vdev)
	struct v4l2_subdev_format fmt_src;
	int ret;

	/* get media device */
	priv->md = dev_get_drvdata(sd->v4l2_dev->dev);
	priv->md = md;

	vfd->v4l2_dev = sd->v4l2_dev;

+1 −1
Original line number Diff line number Diff line
@@ -1816,7 +1816,7 @@ static int csi_registered(struct v4l2_subdev *sd)
	if (ret)
		goto free_fim;

	ret = imx_media_capture_device_register(priv->vdev);
	ret = imx_media_capture_device_register(priv->md, priv->vdev);
	if (ret)
		goto free_fim;

+2 −1
Original line number Diff line number Diff line
@@ -272,7 +272,8 @@ int imx_media_of_add_csi(struct imx_media_dev *imxmd,
struct imx_media_video_dev *
imx_media_capture_device_init(struct v4l2_subdev *src_sd, int pad);
void imx_media_capture_device_remove(struct imx_media_video_dev *vdev);
int imx_media_capture_device_register(struct imx_media_video_dev *vdev);
int imx_media_capture_device_register(struct imx_media_dev *md,
				      struct imx_media_video_dev *vdev);
void imx_media_capture_device_unregister(struct imx_media_video_dev *vdev);
struct imx_media_buffer *
imx_media_capture_device_next_buf(struct imx_media_video_dev *vdev);
+1 −1
Original line number Diff line number Diff line
@@ -1126,7 +1126,7 @@ static int imx7_csi_registered(struct v4l2_subdev *sd)
	if (ret < 0)
		return ret;

	ret = imx_media_capture_device_register(csi->vdev);
	ret = imx_media_capture_device_register(csi->imxmd, csi->vdev);
	if (ret < 0)
		return ret;