diff --git a/drivers/staging/media/rkisp1/rkisp1-capture.c b/drivers/staging/media/rkisp1/rkisp1-capture.c index 21496fb2c4da..f69235f82c45 100644 --- a/drivers/staging/media/rkisp1/rkisp1-capture.c +++ b/drivers/staging/media/rkisp1/rkisp1-capture.c @@ -1227,6 +1227,8 @@ static int rkisp1_capture_link_validate(struct media_link *link) media_entity_to_v4l2_subdev(link->source->entity); struct rkisp1_capture *cap = video_get_drvdata(vdev); struct rkisp1_isp *isp = &cap->rkisp1->isp; + u8 isp_pix_enc = isp->src_fmt->pixel_enc; + u8 cap_pix_enc = cap->pix.info->pixel_enc; struct v4l2_subdev_format sd_fmt; int ret; @@ -1237,7 +1239,9 @@ static int rkisp1_capture_link_validate(struct media_link *link) return -EPIPE; } - if (cap->pix.info->pixel_enc != isp->src_fmt->pixel_enc) { + if (cap_pix_enc != isp_pix_enc && + !(isp_pix_enc == V4L2_PIXEL_ENC_YUV && + cap_pix_enc == V4L2_PIXEL_ENC_RGB)) { dev_err(cap->rkisp1->dev, "format type mismatch in link '%s:%d->%s:%d'\n", link->source->entity->name, link->source->index,