diff options
Diffstat (limited to 'linux/drivers/media/dvb/b2c2/skystar2.c')
-rw-r--r-- | linux/drivers/media/dvb/b2c2/skystar2.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/linux/drivers/media/dvb/b2c2/skystar2.c b/linux/drivers/media/dvb/b2c2/skystar2.c index 4490cbc86..93491d2a1 100644 --- a/linux/drivers/media/dvb/b2c2/skystar2.c +++ b/linux/drivers/media/dvb/b2c2/skystar2.c @@ -4,6 +4,9 @@ * * Copyright (C) 2003 Vadim Catana, skystar@moldova.cc * + * FIX: DISEQC Tone Burst in flexcop_diseqc_ioctl() + * Vincenzo Di Massa, hawk.it at tiscalinet.it + * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 2.1 @@ -2281,6 +2284,44 @@ static int flexcop_diseqc_ioctl(struct dvb_frontend *fe, unsigned int cmd, void struct dvb_frontend_info info; switch (cmd) { + + case FE_DISEQC_SEND_BURST: + { + u8 count; + dprintk("%s: FE_SEND_BURST ", __FUNCTION__); + fe_sec_mini_cmd_t b = (fe_sec_mini_cmd_t) arg; + switch ( b ) + { + case SEC_MINI_A: + { + dprintk("SEC_MINI_A\n"); + set_tuner_tone(adapter, 1); // This lines are needed + udelay(500*25); // to do a down-step + set_tuner_tone(adapter, 0); + udelay(500*25); + break; + } + case SEC_MINI_B: + { + dprintk("SEC_MINI_B\n"); + set_tuner_tone(adapter, 0); + udelay(1000*15); + for (count=0;count<9; count++) + { + set_tuner_tone(adapter, 1); + udelay(500); + set_tuner_tone(adapter, 0); + udelay(1000); + } + udelay(1000*15); + break; + } + default: + break; + }; + return 0; + } + case FE_SLEEP: { @@ -2511,5 +2552,8 @@ static void skystar2_cleanup(void) module_init(skystar2_init); module_exit(skystar2_cleanup); +MODULE_PARM(debug,"i"); +MODULE_PARM_DESC(debug, "enable verbose debug messages"); + MODULE_DESCRIPTION("Technisat SkyStar2 DVB PCI Driver"); MODULE_LICENSE("GPL"); |