only allow input set via diseqc if input setting exists for this card

This commit is contained in:
rjkm
2025-04-23 00:56:27 +02:00
parent 2d1214d00b
commit 7a1f1cf3cf

View File

@@ -113,12 +113,14 @@ static int max_send_master_cmd(struct dvb_frontend *fe,
if (cmd->msg_len && if (cmd->msg_len &&
cmd->msg_len == input_diseqc_sequence_length && cmd->msg_len == input_diseqc_sequence_length &&
!memcmp(cmd->msg, input_diseqc_sequence, cmd->msg_len - 1)) !memcmp(cmd->msg, input_diseqc_sequence, cmd->msg_len - 1)) {
return max_set_input(fe, cmd->msg[cmd->msg_len - 1] & 0x0f); if (dvb->fe->ops.set_input == max_set_input)
return max_set_input(fe, cmd->msg[cmd->msg_len - 1] & 0x0f);
else
return 0;
}
if (dvb->diseqc_send_master_cmd) if (dvb->diseqc_send_master_cmd)
dvb->diseqc_send_master_cmd(fe, cmd); dvb->diseqc_send_master_cmd(fe, cmd);
mutex_lock(&dev->link[port->lnr].lnb.lock); mutex_lock(&dev->link[port->lnr].lnb.lock);
ddbwritel(dev, 0, tag | base | LNB_BUF_LEVEL(dvb->input)); ddbwritel(dev, 0, tag | base | LNB_BUF_LEVEL(dvb->input));
for (i = 0; i < cmd->msg_len; i++) for (i = 0; i < cmd->msg_len; i++)