When configuring the IDMAC output pad formats (in ipu_csi, ipu_ic_prpenc, and ipu_ic_prpvf subdevs), the attached capture device format must also be updated. Signed-off-by: Steve Longerbeam <steve_longerbeam@xxxxxxxxxx> Suggested-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx> --- drivers/staging/media/imx/imx-ic-prpencvf.c | 9 +++++++++ drivers/staging/media/imx/imx-media-csi.c | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/drivers/staging/media/imx/imx-ic-prpencvf.c b/drivers/staging/media/imx/imx-ic-prpencvf.c index 2be8845..6e45975 100644 --- a/drivers/staging/media/imx/imx-ic-prpencvf.c +++ b/drivers/staging/media/imx/imx-ic-prpencvf.c @@ -739,6 +739,7 @@ static int prp_set_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_format *sdformat) { struct prp_priv *priv = sd_to_priv(sd); + struct imx_media_video_dev *vdev = priv->vdev; const struct imx_media_pixfmt *cc; struct v4l2_mbus_framefmt *infmt; u32 code; @@ -800,6 +801,14 @@ static int prp_set_fmt(struct v4l2_subdev *sd, } else { priv->format_mbus[sdformat->pad] = sdformat->format; priv->cc[sdformat->pad] = cc; + if (sdformat->pad == PRPENCVF_SRC_PAD) { + /* + * update the capture device format if this is + * the IDMAC output pad + */ + imx_media_mbus_fmt_to_pix_fmt(&vdev->fmt.fmt.pix, + &sdformat->format, cc); + } } return 0; diff --git a/drivers/staging/media/imx/imx-media-csi.c b/drivers/staging/media/imx/imx-media-csi.c index 3cb97e2..63555dc 100644 --- a/drivers/staging/media/imx/imx-media-csi.c +++ b/drivers/staging/media/imx/imx-media-csi.c @@ -866,6 +866,7 @@ static int csi_set_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_format *sdformat) { struct csi_priv *priv = v4l2_get_subdevdata(sd); + struct imx_media_video_dev *vdev = priv->vdev; const struct imx_media_pixfmt *cc, *incc; struct v4l2_mbus_framefmt *infmt; struct imx_media_subdev *sensor; @@ -980,6 +981,14 @@ static int csi_set_fmt(struct v4l2_subdev *sd, /* Reset the crop window if this is the input pad */ if (sdformat->pad == CSI_SINK_PAD) priv->crop = crop; + else if (sdformat->pad == CSI_SRC_PAD_IDMAC) { + /* + * update the capture device format if this is + * the IDMAC output pad + */ + imx_media_mbus_fmt_to_pix_fmt(&vdev->fmt.fmt.pix, + &sdformat->format, cc); + } } return 0; -- 2.7.4 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel