Re: [PATCH] media: rcar-vin: Update crop and compose settings for every s_fmt call

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Hans,

On Sat, Aug 1, 2020 at 10:04 AM Niklas <niklas.soderlund@xxxxxxxxxxxx> wrote:
>
> Hi Lad,
>
> Thanks for your work.
>
> On 2020-07-31 10:29:05 +0100, Lad Prabhakar wrote:
> > The crop and compose settings for VIN in non mc mode werent updated
> > in s_fmt call this resulted in captured images being clipped.
> >
> > With the below sequence on the third capture where size is set to
> > 640x480 resulted in clipped image of size 320x240.
> >
> > high(640x480) -> low (320x240) -> high (640x480)
> >
> > This patch makes sure the VIN crop and compose settings are updated.
>
> This is clearly an inconsistency in the VIN driver that should be fixed.
> But I think the none-mc mode implements the correct behavior. That is
> that S_FMT should not modify the crop/compose rectangles other then make
> sure they don't go out of bounds. This is an area we tried to clarify in
> the past but I'm still not sure what the correct answer to.
>
What should be the exact behaviour of the bridge driver  for s_fmt
call. Should the crop/compose settings be updated for every s_fmt
callback or should they be only updated on s_selection callback.
Currently the non-mc rcar-vin doesnt update the crop/compose setting
in s_fmt callback due to which I see the above issue as mentioned.

Cheers,
Prabhakar

> >
> > Fixes: 104464f573d ("media: rcar-vin: Do not reset the crop and compose rectangles in s_fmt")
> > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
> > Reviewed-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>
> > ---
> >  drivers/media/platform/rcar-vin/rcar-v4l2.c | 6 ++++++
> >  1 file changed, 6 insertions(+)
> >
> > diff --git a/drivers/media/platform/rcar-vin/rcar-v4l2.c b/drivers/media/platform/rcar-vin/rcar-v4l2.c
> > index f421e25..a9b13d9 100644
> > --- a/drivers/media/platform/rcar-vin/rcar-v4l2.c
> > +++ b/drivers/media/platform/rcar-vin/rcar-v4l2.c
> > @@ -319,6 +319,12 @@ static int rvin_s_fmt_vid_cap(struct file *file, void *priv,
> >       fmt_rect.width = vin->format.width;
> >       fmt_rect.height = vin->format.height;
> >
> > +     vin->crop.top = 0;
> > +     vin->crop.left = 0;
> > +     vin->crop.width = vin->format.width;
> > +     vin->crop.height = vin->format.height;
> > +     vin->compose = vin->crop;
> > +
> >       v4l2_rect_map_inside(&vin->crop, &src_rect);
> >       v4l2_rect_map_inside(&vin->compose, &fmt_rect);
> >       vin->src_rect = src_rect;
> > --
> > 2.7.4
> >
>
> --
> Regards,
> Niklas Söderlund




[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux