lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180326222921.GA5373@smart-ThinkPad-T410>
Date:   Tue, 27 Mar 2018 02:59:21 +0430
From:   Nasser <afshin.nasser@...il.com>
To:     Mauro Carvalho Chehab <mchehab@...nel.org>
Cc:     p.zabel@...gutronix.de, sakari.ailus@...ux.intel.com,
        hans.verkuil@...co.com, bparrot@...com, garsilva@...eddedor.com,
        linux-media@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] media: i2c: tvp5150: fix color burst lock instability on
 some hardware

On Mon, Mar 26, 2018 at 06:43:53AM -0300, Mauro Carvalho Chehab wrote:
> Hi Nasser,
> 
> Em Mon, 26 Mar 2018 03:26:33 +0430
> Nasser Afshin <afshin.nasser@...il.com> escreveu:
> 
> > According to the datasheet, INTREQ/GPCL/VBLK should have a pull-up/down
> > resistor if it's been disabled. On hardware that does not have such
> > resistor, we should use the default output enable value.
> > This prevents the color burst lock instability problem.
>

Color burst lock instability is just a side effect of not using the
recommended value for this bit. If we use the recommended setting, we
will support more hardware while not breaking anything.

> If this is hardware-dependent, you should instead store it at
> OF (for SoC) or pass via platform_data (for PCI/USB devices).
>

We have used the recommended value for this bit (as the datasheet
suggests) while we are in tvp5150_init_enable but in tvp5150_s_stream
we are using the wrong value.

Also we have this comment at line 319:
    /* Default values as sugested at TVP5150AM1 datasheet */
But as you see, TVP5150_MISC_CTL is not set to its suggested default
value.
 
> > 
> > Signed-off-by: Nasser Afshin <Afshin.Nasser@...il.com>
> > ---
> >  drivers/media/i2c/tvp5150.c | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/media/i2c/tvp5150.c b/drivers/media/i2c/tvp5150.c
> > index 2476d812f669..0e9713814816 100644
> > --- a/drivers/media/i2c/tvp5150.c
> > +++ b/drivers/media/i2c/tvp5150.c
> > @@ -328,7 +328,7 @@ static const struct i2c_reg_value tvp5150_init_default[] = {
> >  		TVP5150_OP_MODE_CTL,0x00
> >  	},
> >  	{ /* 0x03 */
> > -		TVP5150_MISC_CTL,0x01
> > +		TVP5150_MISC_CTL,0x21
> >  	},
> >  	{ /* 0x06 */
> >  		TVP5150_COLOR_KIL_THSH_CTL,0x10
> > @@ -1072,7 +1072,8 @@ static int tvp5150_s_stream(struct v4l2_subdev *sd, int enable)
> >  		 * Enable the YCbCr and clock outputs. In discrete sync mode
> >  		 * (non-BT.656) additionally enable the the sync outputs.
> >  		 */
> > -		val |= TVP5150_MISC_CTL_YCBCR_OE | TVP5150_MISC_CTL_CLOCK_OE;
> > +		val |= TVP5150_MISC_CTL_YCBCR_OE | TVP5150_MISC_CTL_CLOCK_OE |
> > +			TVP5150_MISC_CTL_INTREQ_OE;
> >  		if (decoder->mbus_type == V4L2_MBUS_PARALLEL)
> >  			val |= TVP5150_MISC_CTL_SYNC_OE;
> >  	}
> 
> 
> 
> Thanks,
> Mauro

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ