diff --git a/ddbridge/ddbridge-max.c b/ddbridge/ddbridge-max.c index cef0468..6c5a528 100644 --- a/ddbridge/ddbridge-max.c +++ b/ddbridge/ddbridge-max.c @@ -113,12 +113,14 @@ static int max_send_master_cmd(struct dvb_frontend *fe, if (cmd->msg_len && cmd->msg_len == input_diseqc_sequence_length && - !memcmp(cmd->msg, input_diseqc_sequence, cmd->msg_len - 1)) - return max_set_input(fe, cmd->msg[cmd->msg_len - 1] & 0x0f); - + !memcmp(cmd->msg, input_diseqc_sequence, cmd->msg_len - 1)) { + 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) dvb->diseqc_send_master_cmd(fe, cmd); - mutex_lock(&dev->link[port->lnr].lnb.lock); ddbwritel(dev, 0, tag | base | LNB_BUF_LEVEL(dvb->input)); for (i = 0; i < cmd->msg_len; i++)