[PATCH v4 09/10] media: staging: rkisp1: cap: simplify the link validation by compering the media bus code
Helen Koike
helen.koike at collabora.com
Mon Sep 7 10:19:42 EDT 2020
typo in the title
s/compering/comparing
On 9/1/20 8:16 AM, Dafna Hirschfeld wrote:
> The capture has a mapping of the mbus code needed for each pixelformat.
> This can be used to simplify the link validation by comparing the mbus
> code in the capture with the code in the resizer.
>
> Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld at collabora.com>
Acked-by: Helen Koike <helen.koike at collabora.com>
Thanks
Helen
> ---
> drivers/staging/media/rkisp1/rkisp1-capture.c | 18 ++++--------------
> 1 file changed, 4 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/staging/media/rkisp1/rkisp1-capture.c b/drivers/staging/media/rkisp1/rkisp1-capture.c
> index 531381e1801a..79ee6795a58f 100644
> --- a/drivers/staging/media/rkisp1/rkisp1-capture.c
> +++ b/drivers/staging/media/rkisp1/rkisp1-capture.c
> @@ -1265,22 +1265,11 @@ static int rkisp1_capture_link_validate(struct media_link *link)
> struct v4l2_subdev *sd =
> 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;
> + const struct rkisp1_capture_fmt_cfg *fmt =
> + rkisp1_find_fmt_cfg(cap, cap->pix.fmt.pixelformat);
> struct v4l2_subdev_format sd_fmt;
> int ret;
>
> - 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,
> - link->sink->entity->name, link->sink->index);
> - return -EPIPE;
> - }
> -
> sd_fmt.which = V4L2_SUBDEV_FORMAT_ACTIVE;
> sd_fmt.pad = link->source->index;
> ret = v4l2_subdev_call(sd, pad, get_fmt, NULL, &sd_fmt);
> @@ -1288,7 +1277,8 @@ static int rkisp1_capture_link_validate(struct media_link *link)
> return ret;
>
> if (sd_fmt.format.height != cap->pix.fmt.height ||
> - sd_fmt.format.width != cap->pix.fmt.width)
> + sd_fmt.format.width != cap->pix.fmt.width ||
> + sd_fmt.format.code != fmt->mbus)
> return -EPIPE;
>
> return 0;
>
More information about the Linux-rockchip
mailing list