[linux-dvb] Sending diseqc commands on DST frontend
Manu Abraham
abraham.manu at gmail.com
Mon Oct 24 14:15:11 CEST 2005
Hi,
Sorry about the confusion, but a minor correction to the patch ..
since message length is 6 we sould be checking for a message length > 6
to be an Invalid value.
Sorry for the confusion ..
Manu
>@@ -1260,9 +1263,20 @@ static int dst_set_diseqc(struct dvb_fro
>
> if (state->dst_type != DST_TYPE_IS_SAT)
> return 0;
>- if (cmd->msg_len == 0 || cmd->msg_len > 4)
>+// if (cmd->msg_len == 0 || cmd->msg_len > 4)
>+// return -EINVAL;
>+ if (cmd->msg_len == 0 || cmd->msg_len > 5)
>
>
This should be
if (cmd->msg_len == 0 || cmd->msg_len > 6)
instead of 5.
> return -EINVAL;
>- memcpy(&paket[3], cmd->msg, cmd->msg_len);
>+ if ((cmd->msg_len == 3) && (state->dst_hw_cap & DST_TYPE_HAS_DISEQC3)) {
>+ memcpy(&paket[3], cmd->msg, cmd->msg_len);
>+ paket[2] = 0x03;
>+ } else if ((cmd->msg_len == 4) && (state->dst_hw_cap & DST_TYPE_HAS_DISEQC4)) {
>+ memcpy(&paket[3], cmd->msg, cmd->msg_len);
>+ paket[2] = 0x04;
>+ } else if ((cmd->msg_len == 5) && (state->dst_hw_cap & DST_TYPE_HAS_DISEQC5)) {
>+ memcpy(&paket[2], cmd->msg, cmd->msg_len);
>+ }
>+
> paket[7] = dst_check_sum(&paket[0], 7);
> dst_command(state, paket, 8);
> return 0;
>
>
>------------------------------------------------------------------------
>
More information about the linux-dvb
mailing list