diff options
Diffstat (limited to 'drivers/media')
-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); |