media: stv090x: fix if-else order

Message ID 20180601161221.24807-1-brnkv.i1@gmail.com (mailing list archive)
State Changes Requested, archived
Headers

Commit Message

Ivan Bornyakov June 1, 2018, 4:12 p.m. UTC
  There is this code:

	if (v >= 0x20) {
		...
	} else if (v < 0x20) {
		...
	} else if (v > 0x30) {
		/* this branch is impossible */
	}

It would be sensibly for last branch to be on the top.

Signed-off-by: Ivan Bornyakov <brnkv.i1@gmail.com>
---
 drivers/media/dvb-frontends/stv090x.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
  

Comments

Mauro Carvalho Chehab July 26, 2018, 7:26 p.m. UTC | #1
Em Fri,  1 Jun 2018 19:12:21 +0300
Ivan Bornyakov <brnkv.i1@gmail.com> escreveu:

> There is this code:
> 
> 	if (v >= 0x20) {
> 		...
> 	} else if (v < 0x20) {
> 		...
> 	} else if (v > 0x30) {
> 		/* this branch is impossible */
> 	}
> 
> It would be sensibly for last branch to be on the top.

Have you tested it and check at the datasheets if dev_ver > 0x30 makes
sense?

If not, I would prefer, instead, to remove the dead code, as this
patch may cause regressions (adding a FIXME comment about this
special case).

> 
> Signed-off-by: Ivan Bornyakov <brnkv.i1@gmail.com>
> ---
>  drivers/media/dvb-frontends/stv090x.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/media/dvb-frontends/stv090x.c b/drivers/media/dvb-frontends/stv090x.c
> index 9133f65d4623..d70eb311ebaf 100644
> --- a/drivers/media/dvb-frontends/stv090x.c
> +++ b/drivers/media/dvb-frontends/stv090x.c
> @@ -4841,7 +4841,11 @@ static int stv090x_setup(struct dvb_frontend *fe)
>  	}
>  
>  	state->internal->dev_ver = stv090x_read_reg(state, STV090x_MID);
> -	if (state->internal->dev_ver >= 0x20) {
> +	if (state->internal->dev_ver > 0x30) {
> +		/* we shouldn't bail out from here */
> +		dprintk(FE_ERROR, 1, "INFO: Cut: 0x%02x probably incomplete support!",
> +			state->internal->dev_ver);
> +	} else if (state->internal->dev_ver >= 0x20) {
>  		if (stv090x_write_reg(state, STV090x_TSGENERAL, 0x0c) < 0)
>  			goto err;
>  
> @@ -4857,10 +4861,6 @@ static int stv090x_setup(struct dvb_frontend *fe)
>  			state->internal->dev_ver);
>  
>  		goto err;
> -	} else if (state->internal->dev_ver > 0x30) {
> -		/* we shouldn't bail out from here */
> -		dprintk(FE_ERROR, 1, "INFO: Cut: 0x%02x probably incomplete support!",
> -			state->internal->dev_ver);
>  	}
>  
>  	/* ADC1 range */



Thanks,
Mauro
  
Ivan Bornyakov July 27, 2018, 11:10 a.m. UTC | #2
On Thu, Jul 26, 2018 at 04:26:07PM -0300, Mauro Carvalho Chehab wrote:
> Em Fri,  1 Jun 2018 19:12:21 +0300
> Ivan Bornyakov <brnkv.i1@gmail.com> escreveu:
> 
> > There is this code:
> > 
> > 	if (v >= 0x20) {
> > 		...
> > 	} else if (v < 0x20) {
> > 		...
> > 	} else if (v > 0x30) {
> > 		/* this branch is impossible */
> > 	}
> > 
> > It would be sensibly for last branch to be on the top.
> 
> Have you tested it and check at the datasheets if dev_ver > 0x30 makes
> sense?
> 
> If not, I would prefer, instead, to remove the dead code, as this
> patch may cause regressions (adding a FIXME comment about this
> special case).
> 

Hi, Mauro!

Actually, I did not test it, because I did not have the hardware.
But, in the other places of the code, the same if cases are used.

Here are a couple examples:

  static int stv090x_dvbs_track_crl(struct stv090x_state *state)
  {
          if (state->internal->dev_ver >= 0x30) {
                  ...
	  } else {
	          ...
	  }

	  ...
  }

  static u32 stv090x_srate_srch_coarse(struct stv090x_state *state)
  {
	...

	if (state->internal->dev_ver >= 0x30) {
                ...
	} else if (state->internal->dev_ver >= 0x20) {
	        ...
	}

	...
  }
  

Patch

diff --git a/drivers/media/dvb-frontends/stv090x.c b/drivers/media/dvb-frontends/stv090x.c
index 9133f65d4623..d70eb311ebaf 100644
--- a/drivers/media/dvb-frontends/stv090x.c
+++ b/drivers/media/dvb-frontends/stv090x.c
@@ -4841,7 +4841,11 @@  static int stv090x_setup(struct dvb_frontend *fe)
 	}
 
 	state->internal->dev_ver = stv090x_read_reg(state, STV090x_MID);
-	if (state->internal->dev_ver >= 0x20) {
+	if (state->internal->dev_ver > 0x30) {
+		/* we shouldn't bail out from here */
+		dprintk(FE_ERROR, 1, "INFO: Cut: 0x%02x probably incomplete support!",
+			state->internal->dev_ver);
+	} else if (state->internal->dev_ver >= 0x20) {
 		if (stv090x_write_reg(state, STV090x_TSGENERAL, 0x0c) < 0)
 			goto err;
 
@@ -4857,10 +4861,6 @@  static int stv090x_setup(struct dvb_frontend *fe)
 			state->internal->dev_ver);
 
 		goto err;
-	} else if (state->internal->dev_ver > 0x30) {
-		/* we shouldn't bail out from here */
-		dprintk(FE_ERROR, 1, "INFO: Cut: 0x%02x probably incomplete support!",
-			state->internal->dev_ver);
 	}
 
 	/* ADC1 range */