summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/b2c2/skystar2.c
diff options
context:
space:
mode:
Diffstat (limited to 'linux/drivers/media/dvb/b2c2/skystar2.c')
-rw-r--r--linux/drivers/media/dvb/b2c2/skystar2.c44
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");