Mailing List archive

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

[linux-dvb] Re: [PATCH] heavy section filter crunchingcancrash the arm



On Mon, 2003-03-17 at 18:47, Jeremy Hall wrote:
> Can you make a patch that will apply to DVB that adds this module 
> functionality? (my machine runs 2.4.x and my understanding is that 
> DVB-kernel only works with 2.5.x)

ok, here it is.

dvb-kernel can be used with recent 2.4.x kernels, too. i am using
2.4.20. see dvb-kernel/build-2.4/README for details.

Andreas

p.s.: shall i commit this to "DVB" cvs, too?
Index: av7110.c
===================================================================
RCS file: /cvs/linuxtv/DVB/driver/av7110/av7110.c,v
retrieving revision 1.29
diff -u -r1.29 av7110.c
--- av7110.c	4 Mar 2003 18:31:42 -0000	1.29
+++ av7110.c	17 Mar 2003 18:06:40 -0000
@@ -104,6 +104,7 @@
 static int vidmode=CVBS_RGB_OUT;
 static int pids_off;
 static int adac=DVB_ADAC_TI;
+static int hw_sections = 1;
 
 #define saacomm(x,y) av7110->saa->command(av7110->saa->i2c_bus, (x), (y))
 
@@ -3340,12 +3341,14 @@
         u16 mode=0xb96a;
         
         if (dvbdmxfilter->type==DMX_TYPE_SEC) {
-                buf[4]=(dvbdmxfilter->filter.filter_value[0]<<8)|
-                        dvbdmxfilter->maskandmode[0];
-                for (i=3; i<18; i++)
-                        buf[i+4-2]=(dvbdmxfilter->filter.filter_value[i]<<8)|
-                                dvbdmxfilter->maskandmode[i];
-                mode=4;
+		if (hw_sections) {
+	                buf[4]=(dvbdmxfilter->filter.filter_value[0]<<8)|
+        	                dvbdmxfilter->maskandmode[0];
+                	for (i=3; i<18; i++)
+                        	buf[i+4-2]=(dvbdmxfilter->filter.filter_value[i]<<8)|
+                                	dvbdmxfilter->maskandmode[i];
+	                mode=4;
+		}
         } else
         if ((dvbdmxfeed->ts_type & TS_PACKET) &&
             !(dvbdmxfeed->ts_type & TS_PAYLOAD_ONLY)) 
@@ -4926,6 +4929,7 @@
 MODULE_PARM(vidmode,"i");
 MODULE_PARM(pids_off,"i");
 MODULE_PARM(adac,"i");
+MODULE_PARM(hw_sections, "i");
 
 /*
  * Local variables:

Home | Main Index | Thread Index