Hi, Hans, Would you have time to review this patch v2? The patch v1 violates v4l2 spec. I have fixed it in v2. Sincerely, Ming Hsiu On Fri, 2017-05-12 at 10:42 +0800, Minghsiu Tsai wrote: > From: Daniel Kurtz <djkurtz@xxxxxxxxxxxx> > > Experiments show that the: > (1) mtk-mdp uses the _MPLANE form of CAPTURE/OUTPUT > (2) CAPTURE types use CROP targets, and OUTPUT types use COMPOSE targets > > Signed-off-by: Daniel Kurtz <djkurtz@xxxxxxxxxxxx> > Signed-off-by: Minghsiu Tsai <minghsiu.tsai@xxxxxxxxxxxx> > Signed-off-by: Houlong Wei <houlong.wei@xxxxxxxxxxxx> > > --- > Changes in v2: > . Can not use *_MPLANE type in g_/s_selection > --- > drivers/media/platform/mtk-mdp/mtk_mdp_m2m.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/media/platform/mtk-mdp/mtk_mdp_m2m.c b/drivers/media/platform/mtk-mdp/mtk_mdp_m2m.c > index 13afe48..e18ac626 100644 > --- a/drivers/media/platform/mtk-mdp/mtk_mdp_m2m.c > +++ b/drivers/media/platform/mtk-mdp/mtk_mdp_m2m.c > @@ -838,10 +838,10 @@ static int mtk_mdp_m2m_g_selection(struct file *file, void *fh, > bool valid = false; > > if (s->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) { > - if (mtk_mdp_is_target_compose(s->target)) > + if (mtk_mdp_is_target_crop(s->target)) > valid = true; > } else if (s->type == V4L2_BUF_TYPE_VIDEO_OUTPUT) { > - if (mtk_mdp_is_target_crop(s->target)) > + if (mtk_mdp_is_target_compose(s->target)) > valid = true; > } > if (!valid) { > @@ -908,10 +908,10 @@ static int mtk_mdp_m2m_s_selection(struct file *file, void *fh, > bool valid = false; > > if (s->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) { > - if (s->target == V4L2_SEL_TGT_COMPOSE) > + if (s->target == V4L2_SEL_TGT_CROP) > valid = true; > } else if (s->type == V4L2_BUF_TYPE_VIDEO_OUTPUT) { > - if (s->target == V4L2_SEL_TGT_CROP) > + if (s->target == V4L2_SEL_TGT_COMPOSE) > valid = true; > } > if (!valid) { > @@ -925,7 +925,7 @@ static int mtk_mdp_m2m_s_selection(struct file *file, void *fh, > if (ret) > return ret; > > - if (mtk_mdp_is_target_crop(s->target)) > + if (mtk_mdp_is_target_compose(s->target)) > frame = &ctx->s_frame; > else > frame = &ctx->d_frame;