media: dvb-frontends/stv0910: deduplicate writes in enable_puncture_rate()

For all code rates, the same write is performed, only with a differing
value. Clean this up by putting that value into a variable instead and
perform the write at the end with that value.

Picked up from the dddvb upstream.

Cc: Ralph Metzler <rjkm@metzlerbros.de>
Signed-off-by: Daniel Scheller <d.scheller@gmx.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
Daniel Scheller 2017-12-26 18:37:56 -05:00 committed by Mauro Carvalho Chehab
parent 3bdf481e39
commit 4b596bd70a
1 changed files with 16 additions and 12 deletions

View File

@ -908,27 +908,31 @@ static int init_search_param(struct stv *state)
static int enable_puncture_rate(struct stv *state, enum fe_code_rate rate)
{
u8 val;
switch (rate) {
case FEC_1_2:
return write_reg(state,
RSTV0910_P2_PRVIT + state->regoff, 0x01);
val = 0x01;
break;
case FEC_2_3:
return write_reg(state,
RSTV0910_P2_PRVIT + state->regoff, 0x02);
val = 0x02;
break;
case FEC_3_4:
return write_reg(state,
RSTV0910_P2_PRVIT + state->regoff, 0x04);
val = 0x04;
break;
case FEC_5_6:
return write_reg(state,
RSTV0910_P2_PRVIT + state->regoff, 0x08);
val = 0x08;
break;
case FEC_7_8:
return write_reg(state,
RSTV0910_P2_PRVIT + state->regoff, 0x20);
val = 0x20;
break;
case FEC_NONE:
default:
return write_reg(state,
RSTV0910_P2_PRVIT + state->regoff, 0x2f);
val = 0x2f;
break;
}
return write_reg(state, RSTV0910_P2_PRVIT + state->regoff, val);
}
static int set_vth_default(struct stv *state)