diff --git a/drivers/media/platform/rockchip/cif/capture.c b/drivers/media/platform/rockchip/cif/capture.c index 6e3b7ddde4b3..dcecfeefb823 100644 --- a/drivers/media/platform/rockchip/cif/capture.c +++ b/drivers/media/platform/rockchip/cif/capture.c @@ -3702,10 +3702,16 @@ static int rkcif_sanity_check_fmt(struct rkcif_stream *stream, struct v4l2_device *v4l2_dev = &dev->v4l2_dev; struct v4l2_rect input, *crop; - stream->cif_fmt_in = get_input_fmt(dev->active_sensor->sd, - &input, stream->id, &dev->channels[stream->id]); - if (!stream->cif_fmt_in) { - v4l2_err(v4l2_dev, "Input fmt is invalid\n"); + if (dev->terminal_sensor.sd) { + stream->cif_fmt_in = get_input_fmt(dev->terminal_sensor.sd, + &input, stream->id, + &dev->channels[stream->id]); + if (!stream->cif_fmt_in) { + v4l2_err(v4l2_dev, "Input fmt is invalid\n"); + return -EINVAL; + } + } else { + v4l2_err(v4l2_dev, "terminal_sensor is invalid\n"); return -EINVAL; }