Fix Mini DiSEqC bug
PATCH 1/5 Fix Mini DiSEqC bug
o Fix bug in Mini DiSEqC code
The bug was visible as a warning with gcc-3.4.4 (prerelease)
Message:drivers/media/dvb/bt8xx/dst.c:1349: warning: initialization from incompatible pointer type.
Signed-off-by Manu Abraham <[email protected]>
dst.c | 31 ++++++++++++++++++++++++++-----
1 files changed, 26 insertions(+), 5 deletions(-)
drivers/media/dvb/bt8xx/dst.c +26 -5
@@ -915,13 +915,11 @@ static int dst_tone_power_cmd(struct dst paket[2 ] =0x02 ; else paket[2 ] =0 ; -if (state->minicmd ==SEC_MINI_A ) - paket[3 ] =0x02 ; -else - paket[3 ] =0 ; + paket[3 ] = state->tx_tuna[3 ]; paket[7 ] =dst_check_sum (paket,7 );dst_command (state, paket,8 ); +return 0 ; }
@@ -1134,6 +1132,29 @@ static int dst_set_tone(struct dvb_frontreturn 0 ; } +static int dst_send_burst (struct dvb_frontend *fe,fe_sec_mini_cmd_t minicmd) +{ +struct dst_state *state = fe->demodulator_priv; + +if ((state->dst_type ==DST_TYPE_IS_TERR ) || (state->dst_type ==DST_TYPE_IS_CABLE )) +return 0 ; + + state->minicmd = minicmd; + +switch (minicmd) { +case SEC_MINI_A : + state->tx_tuna[3 ] =0x02 ; +break ; +case SEC_MINI_B : + state->tx_tuna[3 ] =0xff ; +break ; + } +dst_tone_power_cmd (state); + +return 0 ; +} + +static int dst_init (struct dvb_frontend * fe) {struct dst_state * state = (struct dst_state *) fe->demodulator_priv;
@@ -1346,7 +1367,7 @@ static struct dvb_frontend_ops dst_dvbs_ .read_signal_strength = dst_read_signal_strength, .read_snr = dst_read_snr, - .diseqc_send_burst = dst_set_tone, + .diseqc_send_burst = dst_send_burst, .diseqc_send_master_cmd = dst_set_diseqc, .set_voltage = dst_set_voltage, .set_tone = dst_set_tone,