Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] [PATCH]Skystar2(<2.6B) diseqc tone burst support



I'm now able to make home-made patchfiles!
WOW!
P.S.
In this patch I had to force tone on(12.5ms), then off(12.5ms), to make
MINI_A work. (I don't know why you must set tone on first anyway)

-- 
Vincenzo Di Massa <hawk.it@tiscalinet.it>
-- 
Vincenzo Di Massa <hawk78_it@yahoo.it>
Index: dvb-kernel/linux/drivers/media/dvb/b2c2/skystar2.c
===================================================================
RCS file: /cvs/linuxtv/dvb-kernel/linux/drivers/media/dvb/b2c2/skystar2.c,v
retrieving revision 1.10
diff -p -u -r1.10 skystar2.c
--- dvb-kernel/linux/drivers/media/dvb/b2c2/skystar2.c	7 Nov 2003 18:47:11 -0000	1.10
+++ dvb-kernel/linux/drivers/media/dvb/b2c2/skystar2.c	9 Nov 2003 18:36:07 -0000
@@ -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 d
 	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:
 	    {
@@ -2510,6 +2551,9 @@ 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");

Home | Main Index | Thread Index