[PATCH] dvb: Fix LNB power switching
Signed-off-by: Manu Abraham <manu@kromtek.com> Cc: Johannes Stezenbach <js@linuxtv.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Родитель
0eac3e486e
Коммит
8f6da8f166
|
@ -906,10 +906,7 @@ static int dst_tone_power_cmd(struct dst_state* state)
|
||||||
if (state->dst_type == DST_TYPE_IS_TERR)
|
if (state->dst_type == DST_TYPE_IS_TERR)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (state->voltage == SEC_VOLTAGE_OFF)
|
paket[4] = state->tx_tuna[4];
|
||||||
paket[4] = 0;
|
|
||||||
else
|
|
||||||
paket[4] = 1;
|
|
||||||
|
|
||||||
if (state->tone == SEC_TONE_ON)
|
if (state->tone == SEC_TONE_ON)
|
||||||
paket[2] = 0x02;
|
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)
|
static int dst_set_voltage(struct dvb_frontend* fe, fe_sec_voltage_t voltage)
|
||||||
{
|
{
|
||||||
u8 *val;
|
|
||||||
int need_cmd;
|
int need_cmd;
|
||||||
struct dst_state* state = fe->demodulator_priv;
|
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;
|
return 0;
|
||||||
|
|
||||||
need_cmd = 0;
|
need_cmd = 0;
|
||||||
val = &state->tx_tuna[0];
|
|
||||||
val[8] &= ~0x40;
|
|
||||||
switch (voltage) {
|
switch (voltage) {
|
||||||
case SEC_VOLTAGE_13:
|
case SEC_VOLTAGE_13:
|
||||||
if ((state->diseq_flags & HAS_POWER) == 0)
|
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_OFF:
|
||||||
need_cmd = 1;
|
need_cmd = 1;
|
||||||
state->diseq_flags |= HAS_POWER;
|
state->diseq_flags &= ~(HAS_POWER | HAS_LOCK | ATTEMPT_TUNE);
|
||||||
break;
|
state->tx_tuna[4] = 0x00;
|
||||||
|
break;
|
||||||
|
|
||||||
case SEC_VOLTAGE_18:
|
default:
|
||||||
if ((state->diseq_flags & HAS_POWER) == 0)
|
return -EINVAL;
|
||||||
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;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
}
|
||||||
if (need_cmd)
|
if (need_cmd)
|
||||||
dst_tone_power_cmd(state);
|
dst_tone_power_cmd(state);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче