[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