Re: [PATCH v4 30/36] media: imx: update capture dev format on IDMAC output pad set_fmt

2017-02-16 Thread Philipp Zabel
On Wed, 2017-02-15 at 18:19 -0800, Steve Longerbeam wrote:
> 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 
> Suggested-by: Philipp Zabel 
> ---
>  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(>fmt.fmt.pix,
> +   >format, cc);
> + }

This is replaced again by patch 36. These should probably be squashed
together.

regards
Philipp



[PATCH v4 30/36] media: imx: update capture dev format on IDMAC output pad set_fmt

2017-02-15 Thread Steve Longerbeam
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 
Suggested-by: Philipp Zabel 
---
 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(>fmt.fmt.pix,
+ >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(>fmt.fmt.pix,
+ >format, cc);
+   }
}
 
return 0;
-- 
2.7.4