--- src/dvb/diseqc.c 2011-11-07 22:13:40.000000000 +0100 +++ src/dvb/diseqc.c 2011-11-09 20:36:20.111306500 +0100 @@ -67,23 +67,37 @@ if ((err = ioctl(fd, FE_SET_VOLTAGE, v))) return err; - msleep(15); + msleep(30); + while (*cmd) { if ((err = ioctl(fd, FE_DISEQC_SEND_MASTER_CMD, &(*cmd)->cmd))) return err; msleep((*cmd)->wait); + msleep(100); + + /* Do it again just to be sure. */ + if ((err = ioctl(fd, FE_DISEQC_SEND_MASTER_CMD, &(*cmd)->cmd))) + return err; + + msleep((*cmd)->wait); + msleep(100); + cmd++; } - msleep(15); - if ((err = ioctl(fd, FE_DISEQC_SEND_BURST, b))) return err; - msleep(15); + msleep(30); + + if ((err = ioctl(fd, FE_SET_TONE, t))) + return err; + + msleep(30); + + return err; - return ioctl(fd, FE_SET_TONE, t); }