aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/dvb/frontends/stv090x.c7
-rw-r--r--drivers/media/dvb/frontends/stv090x.h2
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);