RE: [PATCH 1/5] ipu3-cio2: Return actual subdev format

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sakari, thanks for your patch.

Reviewed-by: Bingbu Cao <Bingbu.cao@xxxxxxxxx>

________________________
BRs,  
Bingbu Cao                          


> -----Original Message-----
> From: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>
> Sent: Friday, October 9, 2020 11:08 PM
> To: linux-media@xxxxxxxxxxxxxxx
> Cc: Tsuchiya Yuto <kitakar@xxxxxxxxx>; Cao, Bingbu <bingbu.cao@xxxxxxxxx>;
> Zhi, Yong <yong.zhi@xxxxxxxxx>; Qiu, Tian Shu <tian.shu.qiu@xxxxxxxxx>;
> laurent.pinchart@xxxxxxxxxxxxxxxx
> Subject: [PATCH 1/5] ipu3-cio2: Return actual subdev format
> 
> Return actual subdev format on ipu3-cio2 subdev pads. The earlier
> implementation was based on an infinite recursion that exhausted the stack.
> 
> Reported-by: Tsuchiya Yuto <kitakar@xxxxxxxxx>
> Fixes: c2a6a07afe4a ("media: intel-ipu3: cio2: add new MIPI-CSI2 driver")
> Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> ---
>  drivers/media/pci/intel/ipu3/ipu3-cio2.c | 24 +++---------------------
>  1 file changed, 3 insertions(+), 21 deletions(-)
> 
> diff --git a/drivers/media/pci/intel/ipu3/ipu3-cio2.c
> b/drivers/media/pci/intel/ipu3/ipu3-cio2.c
> index 4e598e937dfe..afa472026ba4 100644
> --- a/drivers/media/pci/intel/ipu3/ipu3-cio2.c
> +++ b/drivers/media/pci/intel/ipu3/ipu3-cio2.c
> @@ -1232,29 +1232,11 @@ static int cio2_subdev_get_fmt(struct v4l2_subdev
> *sd,
>  			       struct v4l2_subdev_format *fmt)  {
>  	struct cio2_queue *q = container_of(sd, struct cio2_queue, subdev);
> -	struct v4l2_subdev_format format;
> -	int ret;
> 
> -	if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
> +	if (fmt->which == V4L2_SUBDEV_FORMAT_TRY)
>  		fmt->format = *v4l2_subdev_get_try_format(sd, cfg, fmt->pad);
> -		return 0;
> -	}
> -
> -	if (fmt->pad == CIO2_PAD_SINK) {
> -		format.which = V4L2_SUBDEV_FORMAT_ACTIVE;
> -		ret = v4l2_subdev_call(sd, pad, get_fmt, NULL,
> -				       &format);
> -
> -		if (ret)
> -			return ret;
> -		/* update colorspace etc */
> -		q->subdev_fmt.colorspace = format.format.colorspace;
> -		q->subdev_fmt.ycbcr_enc = format.format.ycbcr_enc;
> -		q->subdev_fmt.quantization = format.format.quantization;
> -		q->subdev_fmt.xfer_func = format.format.xfer_func;
> -	}
> -
> -	fmt->format = q->subdev_fmt;
> +	else
> +		fmt->format = q->subdev_fmt;
> 
>  	return 0;
>  }
> --
> 2.27.0





[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux