All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Scheller <d.scheller.oss@gmail.com>
To: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Cc: linux-media@vger.kernel.org, mchehab@kernel.org, jasmin@anw.at,
	rjkm@metzlerbros.de
Subject: Re: [PATCH] [media] dvb-frontends/mxl5xx: fix lock check order
Date: Sun, 27 Aug 2017 14:50:23 +0200	[thread overview]
Message-ID: <20170827145023.5f09463c@audiostation.wuest.de> (raw)
In-Reply-To: <20170827091807.404a9907@vento.lan>

Am Sun, 27 Aug 2017 09:18:07 -0300
schrieb Mauro Carvalho Chehab <mchehab@s-opensource.com>:

Thanks for looking at this.

> Em Sun, 20 Aug 2017 12:45:45 +0200
> Daniel Scheller <d.scheller.oss@gmail.com> escreveu:
> 
> > From: Daniel Scheller <d.scheller@gmx.net>
> >   
> 
> Always add a description at the patch.

Sorry. Will remember to do so even for these rather self-explanatory
changes.

> > Signed-off-by: Daniel Scheller <d.scheller@gmx.net>
> > ---
> > When the mxl5xx driver together with the ddbridge glue gets merged
> > ([1]), this one should go in aswell - this fix is part of the
> > dddvb-0.9.31 release.
> > 
> >  drivers/media/dvb-frontends/mxl5xx.c | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/media/dvb-frontends/mxl5xx.c
> > b/drivers/media/dvb-frontends/mxl5xx.c index
> > 676c96c216c3..d9136d67f5d4 100644 ---
> > a/drivers/media/dvb-frontends/mxl5xx.c +++
> > b/drivers/media/dvb-frontends/mxl5xx.c @@ -638,13 +638,14 @@ static
> > int tune(struct dvb_frontend *fe, bool re_tune, state->tune_time =
> > jiffies; return 0;
> >  	}
> > -	if (*status & FE_HAS_LOCK)
> > -		return 0;
> >  
> >  	r = read_status(fe, status);
> >  	if (r)
> >  		return r;
> >  
> > +	if (*status & FE_HAS_LOCK)
> > +		return 0;
> > +
> >  	return 0;  
> 
> That's stupid! it will return 0 on all situations, no matter if
> FE_HAS_LOCK or not. So, no need for the if.
> 
> Anyway, IMHO, either the original code is right and it needs to
> use a previously cached value (with sounds weird to me, although
> it is possible), or the logic is utterly broken, and we should,
> instead, apply the enclosed patch.

Well, in fact, this change was straight picked from upstream ([1]), but
I honestly didn't take into account that during cleanup the
#if-0/#endif was removed (which will in turn result in the same
behaviour though - return 0 in all cases; some leftovers?).

[1]
https://github.com/DigitalDevices/dddvb/commit/a44dbc889b7030a100599d2bd2c93c976c011a03

> 
> >  	if (r)
> >  		return r;  
> 
> >  }
> >    
> 
> Thanks,
> Mauro
> 
> [PATCH RFC] media: mxl5xx: fix tuning logic
> 
> The tuning logic is broken with regards to status report:
> it relies on a previously-cached value that may not be valid
> if retuned.
> 
> Change the logic to always read the status.
> 
> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
> 
> 
> diff --git a/drivers/media/dvb-frontends/mxl5xx.c
> b/drivers/media/dvb-frontends/mxl5xx.c index
> 676c96c216c3..4b449a6943c5 100644 ---
> a/drivers/media/dvb-frontends/mxl5xx.c +++
> b/drivers/media/dvb-frontends/mxl5xx.c @@ -636,16 +636,9 @@ static
> int tune(struct dvb_frontend *fe, bool re_tune, if (r)
>  			return r;
>  		state->tune_time = jiffies;
> -		return 0;
>  	}
> -	if (*status & FE_HAS_LOCK)
> -		return 0;
>  
> -	r = read_status(fe, status);
> -	if (r)
> -		return r;
> -
> -	return 0;
> +	return read_status(fe, status);
>  }
>  
>  static enum fe_code_rate conv_fec(enum MXL_HYDRA_FEC_E fec)
> 

Indeed that makes more sense in this context (compared to dddvb
upstream), albeit on re_tune=1 read_status() will now also be called,
which I guess is totally fine. Let's do it this way. So:

Acked-by: Daniel Scheller <d.scheller@gmx.net>

Thanks & best regards,
Daniel Scheller
-- 
https://github.com/herrnst

      reply	other threads:[~2017-08-27 12:50 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-20 10:45 [PATCH] [media] dvb-frontends/mxl5xx: fix lock check order Daniel Scheller
2017-08-27 12:18 ` Mauro Carvalho Chehab
2017-08-27 12:50   ` Daniel Scheller [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170827145023.5f09463c@audiostation.wuest.de \
    --to=d.scheller.oss@gmail.com \
    --cc=jasmin@anw.at \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=mchehab@s-opensource.com \
    --cc=rjkm@metzlerbros.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.