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