Mailing List archive

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

[vdr] Patch for New driver + Old Firmware + Remote Control Plugin



Hi all,

due to problems with RTL recordings, some of you might have switched 
back to the old firmware. If you want to use the built-in remote 
control port of the DVB-S together with the Remote Control plugin, 
you have to apply the following patch to the driver:

----------------------------------------  snip  ------------------------------------------
diff -ru linux-dvb.2002-11-01/driver/av7110/av7110_ir.c linux-dvb.2002-11-01-oldfirm/driver/av7110/av7110_ir.c
--- linux-dvb.2002-11-01/driver/av7110/av7110_ir.c	Thu Oct 10 21:22:29 2002
+++ linux-dvb.2002-11-01-oldfirm/driver/av7110/av7110_ir.c	Sun Dec  1 06:02:16 2002
@@ -9,6 +9,8 @@
 #include "input_fake.h"
 
 
+#define OLDFIRM
+#define REP_TIMEOUT (HZ/8)
 #define UP_TIMEOUT (HZ/2)
 
 static int av7110_ir_debug = 0;
@@ -45,20 +47,31 @@
 
 
 static
+void av7110_emit_keyup (unsigned long data);
+
+	
+static
+struct timer_list keyup_timer = { function: av7110_emit_keyup };
+
+
+static
 void av7110_emit_keyup (unsigned long data)
 {
+#ifdef OLDFIRM
+	clear_bit (data, input_dev.key);
+	input_event (&input_dev, EV_KEY, data, 1);
+	keyup_timer.expires = jiffies + REP_TIMEOUT;
+	add_timer (&keyup_timer);
+#else
 	if (!data || !test_bit (data, input_dev.key))
 		return;
 
 	input_event (&input_dev, EV_KEY, data, !!0);
+#endif
 }
 
 
 static
-struct timer_list keyup_timer = { function: av7110_emit_keyup };
-
-
-static
 void av7110_emit_key (u32 ircom)
 {
 	int down = ircom & (0x80000000);
@@ -73,6 +86,17 @@
 		return;
 	}
 
+#ifdef OLDFIRM
+	if (down) {
+		input_event (&input_dev, EV_KEY, keycode, 1);
+	        keyup_timer.expires = jiffies + UP_TIMEOUT;
+	        keyup_timer.data = keycode;
+	        add_timer (&keyup_timer);
+	} else {
+		input_event (&input_dev, EV_KEY, keycode, 0);
+		del_timer (&keyup_timer);
+	}
+#else
 	if (timer_pending (&keyup_timer)) {
 		del_timer (&keyup_timer);
 		if (keyup_timer.data != keycode)
@@ -87,6 +111,7 @@
 	keyup_timer.data = keycode;
 
 	add_timer (&keyup_timer);
+#endif
 }
 
 static
----------------------------------------  snip  ------------------------------------------

Notes:
(1) This patch should only be applied, if you use 
    *new* driver + *old* firmware + built-in remote control port.

(2) The autorepeat function of the remote control works with the old firmware.


Merry Christmas!

Oliver



-- 
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe vdr" as subject.



Home | Main Index | Thread Index