summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManu Abraham <devnull@localhost>2005-05-26 20:12:21 +0000
committerManu Abraham <devnull@localhost>2005-05-26 20:12:21 +0000
commit14a73bc1c9eef4432f4e8b1ad62c8557a65835e4 (patch)
tree5bccee60269ac119b5d0779c3ae48cd6f8cb6f24
parentc5e76a19c81d97e50d735213df14fad426503d77 (diff)
downloadmediapointer-dvb-s2-14a73bc1c9eef4432f4e8b1ad62c8557a65835e4.tar.gz
mediapointer-dvb-s2-14a73bc1c9eef4432f4e8b1ad62c8557a65835e4.tar.bz2
Fix bug in LNB Power switching
Signed-off-by: Manu Abraham <manu@kromtek.com>
-rw-r--r--linux/drivers/media/dvb/bt8xx/dst.c38
1 files changed, 14 insertions, 24 deletions
diff --git a/linux/drivers/media/dvb/bt8xx/dst.c b/linux/drivers/media/dvb/bt8xx/dst.c
index e5e8c3e86..33cca69d6 100644
--- a/linux/drivers/media/dvb/bt8xx/dst.c
+++ b/linux/drivers/media/dvb/bt8xx/dst.c
@@ -906,10 +906,7 @@ static int dst_tone_power_cmd(struct dst_state* state)
if (state->dst_type == DST_TYPE_IS_TERR)
return 0;
- if (state->voltage == SEC_VOLTAGE_OFF)
- paket[4] = 0;
- else
- paket[4] = 1;
+ paket[4] = state->tx_tuna[4];
if (state->tone == SEC_TONE_ON)
paket[2] = 0x02;
@@ -1062,7 +1059,6 @@ static int dst_set_diseqc(struct dvb_frontend* fe, struct dvb_diseqc_master_cmd*
static int dst_set_voltage(struct dvb_frontend* fe, fe_sec_voltage_t voltage)
{
- u8 *val;
int need_cmd;
struct dst_state* state = fe->demodulator_priv;
@@ -1072,29 +1068,23 @@ static int dst_set_voltage(struct dvb_frontend* fe, fe_sec_voltage_t voltage)
return 0;
need_cmd = 0;
- val = &state->tx_tuna[0];
- val[8] &= ~0x40;
switch (voltage) {
- case SEC_VOLTAGE_13:
- if ((state->diseq_flags & HAS_POWER) == 0)
- need_cmd = 1;
- state->diseq_flags |= HAS_POWER;
- break;
+ case SEC_VOLTAGE_13:
+ case SEC_VOLTAGE_18:
+ if ((state->diseq_flags & HAS_POWER) == 0)
+ need_cmd = 1;
+ state->diseq_flags |= HAS_POWER;
+ state->tx_tuna[4] = 0x01;
+ break;
- case SEC_VOLTAGE_18:
- if ((state->diseq_flags & HAS_POWER) == 0)
+ case SEC_VOLTAGE_OFF:
need_cmd = 1;
- state->diseq_flags |= HAS_POWER;
- val[8] |= 0x40;
- break;
-
- case SEC_VOLTAGE_OFF:
- need_cmd = 1;
- state->diseq_flags &= ~(HAS_POWER | HAS_LOCK | ATTEMPT_TUNE);
- break;
+ state->diseq_flags &= ~(HAS_POWER | HAS_LOCK | ATTEMPT_TUNE);
+ state->tx_tuna[4] = 0x00;
+ break;
- default:
- return -EINVAL;
+ default:
+ return -EINVAL;
}
if (need_cmd)
dst_tone_power_cmd(state);