media: i2c: tvp5150: Fix horizontal crop stop boundry

Message ID 20190917071442.24986-1-robin@protonic.nl (mailing list archive)
State Obsoleted, archived
Delegated to: Hans Verkuil
Headers
Series media: i2c: tvp5150: Fix horizontal crop stop boundry |

Commit Message

Robin van der Gracht Sept. 17, 2019, 7:14 a.m. UTC
  The value for AVID stop is relative to the width of the active video area,
not the maximum register value. Zero means equal and a negative value means
we're cropping on the right side.

Signed-off-by: Robin van der Gracht <robin@protonic.nl>
---
 drivers/media/i2c/tvp5150.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Hans Verkuil June 25, 2020, 11:05 a.m. UTC | #1
On 17/09/2019 09:14, Robin van der Gracht wrote:
> The value for AVID stop is relative to the width of the active video area,
> not the maximum register value. Zero means equal and a negative value means
> we're cropping on the right side.

While going through old unreviewed patches I came across this one (sorry Robin,
your patch fell through the cracks).

Can someone verify/test that this is correct? Marco perhaps?

Regards,

	Hans

> 
> Signed-off-by: Robin van der Gracht <robin@protonic.nl>
> ---
>  drivers/media/i2c/tvp5150.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/media/i2c/tvp5150.c b/drivers/media/i2c/tvp5150.c
> index f47cb9a023fb..6bc65ab5e8ab 100644
> --- a/drivers/media/i2c/tvp5150.c
> +++ b/drivers/media/i2c/tvp5150.c
> @@ -1231,10 +1231,10 @@ __tvp5150_set_selection(struct v4l2_subdev *sd, struct v4l2_rect rect)
>  	regmap_write(decoder->regmap, TVP5150_ACT_VD_CROP_ST_LSB,
>  		     rect.left | (1 << TVP5150_CROP_SHIFT));
>  	regmap_write(decoder->regmap, TVP5150_ACT_VD_CROP_STP_MSB,
> -		     (rect.left + rect.width - TVP5150_MAX_CROP_LEFT) >>
> +		     (rect.left + rect.width - TVP5150_H_MAX) >>
>  		     TVP5150_CROP_SHIFT);
>  	regmap_write(decoder->regmap, TVP5150_ACT_VD_CROP_STP_LSB,
> -		     rect.left + rect.width - TVP5150_MAX_CROP_LEFT);
> +		     rect.left + rect.width - TVP5150_H_MAX);
>  }
>  
>  static int tvp5150_set_selection(struct v4l2_subdev *sd,
>
  
Marco Felsch July 29, 2020, 9:29 a.m. UTC | #2
Hi,

On 20-06-25 13:05, Hans Verkuil wrote:
> On 17/09/2019 09:14, Robin van der Gracht wrote:
> > The value for AVID stop is relative to the width of the active video area,
> > not the maximum register value. Zero means equal and a negative value means
> > we're cropping on the right side.
> 
> While going through old unreviewed patches I came across this one (sorry Robin,
> your patch fell through the cracks).
> 
> Can someone verify/test that this is correct? Marco perhaps?

sorry for my long absence on this. I will test it next week if it is not
already to late.

Regards,
  Marco

> Regards,
> 
> 	Hans
> 
> > 
> > Signed-off-by: Robin van der Gracht <robin@protonic.nl>
> > ---
> >  drivers/media/i2c/tvp5150.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/media/i2c/tvp5150.c b/drivers/media/i2c/tvp5150.c
> > index f47cb9a023fb..6bc65ab5e8ab 100644
> > --- a/drivers/media/i2c/tvp5150.c
> > +++ b/drivers/media/i2c/tvp5150.c
> > @@ -1231,10 +1231,10 @@ __tvp5150_set_selection(struct v4l2_subdev *sd, struct v4l2_rect rect)
> >  	regmap_write(decoder->regmap, TVP5150_ACT_VD_CROP_ST_LSB,
> >  		     rect.left | (1 << TVP5150_CROP_SHIFT));
> >  	regmap_write(decoder->regmap, TVP5150_ACT_VD_CROP_STP_MSB,
> > -		     (rect.left + rect.width - TVP5150_MAX_CROP_LEFT) >>
> > +		     (rect.left + rect.width - TVP5150_H_MAX) >>
> >  		     TVP5150_CROP_SHIFT);
> >  	regmap_write(decoder->regmap, TVP5150_ACT_VD_CROP_STP_LSB,
> > -		     rect.left + rect.width - TVP5150_MAX_CROP_LEFT);
> > +		     rect.left + rect.width - TVP5150_H_MAX);
> >  }
> >  
> >  static int tvp5150_set_selection(struct v4l2_subdev *sd,
> > 
> 
>
  
Robin van der Gracht Aug. 3, 2020, 7:57 a.m. UTC | #3
Marco,

On 2020-07-29 11:29, Marco Felsch wrote:
> Hi,
> 
> On 20-06-25 13:05, Hans Verkuil wrote:
>> On 17/09/2019 09:14, Robin van der Gracht wrote:
>> > The value for AVID stop is relative to the width of the active video area,
>> > not the maximum register value. Zero means equal and a negative value means
>> > we're cropping on the right side.
>> 
>> While going through old unreviewed patches I came across this one 
>> (sorry Robin,
>> your patch fell through the cracks).
>> 
>> Can someone verify/test that this is correct? Marco perhaps?
> 
> sorry for my long absence on this. I will test it next week if it is 
> not
> already to late.

Thanks. Let me know if you need more info.

Robin
  

Patch

diff --git a/drivers/media/i2c/tvp5150.c b/drivers/media/i2c/tvp5150.c
index f47cb9a023fb..6bc65ab5e8ab 100644
--- a/drivers/media/i2c/tvp5150.c
+++ b/drivers/media/i2c/tvp5150.c
@@ -1231,10 +1231,10 @@  __tvp5150_set_selection(struct v4l2_subdev *sd, struct v4l2_rect rect)
 	regmap_write(decoder->regmap, TVP5150_ACT_VD_CROP_ST_LSB,
 		     rect.left | (1 << TVP5150_CROP_SHIFT));
 	regmap_write(decoder->regmap, TVP5150_ACT_VD_CROP_STP_MSB,
-		     (rect.left + rect.width - TVP5150_MAX_CROP_LEFT) >>
+		     (rect.left + rect.width - TVP5150_H_MAX) >>
 		     TVP5150_CROP_SHIFT);
 	regmap_write(decoder->regmap, TVP5150_ACT_VD_CROP_STP_LSB,
-		     rect.left + rect.width - TVP5150_MAX_CROP_LEFT);
+		     rect.left + rect.width - TVP5150_H_MAX);
 }
 
 static int tvp5150_set_selection(struct v4l2_subdev *sd,