diff options
| -rw-r--r-- | drivers/media/dvb/frontends/stv090x.c | 7 | ||||
| -rw-r--r-- | drivers/media/dvb/frontends/stv090x.h | 2 |
2 files changed, 6 insertions, 3 deletions
diff --git a/drivers/media/dvb/frontends/stv090x.c b/drivers/media/dvb/frontends/stv090x.c index 48edd542242e..1573466a5c74 100644 --- a/drivers/media/dvb/frontends/stv090x.c +++ b/drivers/media/dvb/frontends/stv090x.c | |||
| @@ -3597,7 +3597,8 @@ static int stv090x_send_diseqc_msg(struct dvb_frontend *fe, struct dvb_diseqc_ma | |||
| 3597 | 3597 | ||
| 3598 | reg = STV090x_READ_DEMOD(state, DISTXCTL); | 3598 | reg = STV090x_READ_DEMOD(state, DISTXCTL); |
| 3599 | 3599 | ||
| 3600 | STV090x_SETFIELD_Px(reg, DISTX_MODE_FIELD, 2); | 3600 | STV090x_SETFIELD_Px(reg, DISTX_MODE_FIELD, |
| 3601 | (state->config->diseqc_envelope_mode) ? 4 : 2); | ||
| 3601 | STV090x_SETFIELD_Px(reg, DISEQC_RESET_FIELD, 1); | 3602 | STV090x_SETFIELD_Px(reg, DISEQC_RESET_FIELD, 1); |
| 3602 | if (STV090x_WRITE_DEMOD(state, DISTXCTL, reg) < 0) | 3603 | if (STV090x_WRITE_DEMOD(state, DISTXCTL, reg) < 0) |
| 3603 | goto err; | 3604 | goto err; |
| @@ -3649,10 +3650,10 @@ static int stv090x_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t | |||
| 3649 | reg = STV090x_READ_DEMOD(state, DISTXCTL); | 3650 | reg = STV090x_READ_DEMOD(state, DISTXCTL); |
| 3650 | 3651 | ||
| 3651 | if (burst == SEC_MINI_A) { | 3652 | if (burst == SEC_MINI_A) { |
| 3652 | mode = 3; | 3653 | mode = (state->config->diseqc_envelope_mode) ? 5 : 3; |
| 3653 | value = 0x00; | 3654 | value = 0x00; |
| 3654 | } else { | 3655 | } else { |
| 3655 | mode = 2; | 3656 | mode = (state->config->diseqc_envelope_mode) ? 4 : 2; |
| 3656 | value = 0xFF; | 3657 | value = 0xFF; |
| 3657 | } | 3658 | } |
| 3658 | 3659 | ||
diff --git a/drivers/media/dvb/frontends/stv090x.h b/drivers/media/dvb/frontends/stv090x.h index e968c98bb70f..b133807663ea 100644 --- a/drivers/media/dvb/frontends/stv090x.h +++ b/drivers/media/dvb/frontends/stv090x.h | |||
| @@ -75,6 +75,8 @@ struct stv090x_config { | |||
| 75 | 75 | ||
| 76 | enum stv090x_i2crpt repeater_level; | 76 | enum stv090x_i2crpt repeater_level; |
| 77 | 77 | ||
| 78 | bool diseqc_envelope_mode; | ||
| 79 | |||
| 78 | int (*tuner_init) (struct dvb_frontend *fe); | 80 | int (*tuner_init) (struct dvb_frontend *fe); |
| 79 | int (*tuner_set_mode) (struct dvb_frontend *fe, enum tuner_mode mode); | 81 | int (*tuner_set_mode) (struct dvb_frontend *fe, enum tuner_mode mode); |
| 80 | int (*tuner_set_frequency) (struct dvb_frontend *fe, u32 frequency); | 82 | int (*tuner_set_frequency) (struct dvb_frontend *fe, u32 frequency); |
