Mailing List archive

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

[linux-dvb] Re: [PATCH] SS2 : Fix for OpenWholeBandWidth



Updated patch to look like Roberto's one, but a bit faster than
Roberto's.
Mine previous PATCH is also OK, but this one dosen't need an extra
variable into adapter struct.
Roberto's PATCH is OK, but calls CheckPID (heavy!!) twice for every
packet in.

Il sab, 2003-11-22 alle 21:58, Vincenzo Di Massa ha scritto:
> This patch let SS2 recieve the whole ts stream.
> To use it select pid 8192.
> To use it with szap you have to commnet the istructions that check for
> valid pids (8192 sems to be too high!).
> 
> I don't know if pids need to be removed before disabling the pid filter.
> For now I'll leave them alone, this works for me.
> 
> It seems that there are 2 pid filters. One is the hawrdware filter, the
> other is a software filter. Are both needed?
> -- 
> 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.12
diff -p -u -r1.12 skystar2.c
--- dvb-kernel/linux/drivers/media/dvb/b2c2/skystar2.c	18 Nov 2003 11:48:12 -0000	1.12
+++ dvb-kernel/linux/drivers/media/dvb/b2c2/skystar2.c	23 Nov 2003 10:35:07 -0000
@@ -1108,9 +1108,9 @@ static int CheckPID(struct adapter *adap
 
 	if (pid == 0x1FFF)
 		return 0;
-
+        
 	for (i = 0; i < 0x27; i++) {
-		if (adapter->pids[i] == pid)
+		if (adapter->pids[i] == pid || adapter->pids[i] == 0x2000)
 			return 1;
 	}
 
@@ -1293,11 +1293,14 @@ static void ResetHardwarePIDFilter(struc
 
 static void OpenWholeBandwidth(struct adapter *adapter)
 {
+        dprintk("%s:\n", __FUNCTION__);
+	
 	PidSetGroupPID(adapter, 0);
 
 	PidSetGroupMASK(adapter, 0);
 
 	FilterEnableMaskFilter(adapter, 1);
+
 }
 
 static int AddHwPID(struct adapter *adapter, u32 pid)
@@ -1423,7 +1426,7 @@ static int AddPID(struct adapter *adapte
 
 	dprintk("%s: pid=%d\n", __FUNCTION__, pid);
 
-	if (pid > 0x1FFE)
+	if (pid > 0x1FFE && pid != 0x2000)
 		return -1;
 
 	if (CheckPID(adapter, pid) == 1)
@@ -1434,9 +1437,9 @@ static int AddPID(struct adapter *adapte
 		{
 			adapter->pids[i] = pid;
 
-			if (AddHwPID(adapter, pid) < 0)
+			if (pid != 0x2000 || AddHwPID(adapter, pid) < 0)
 				OpenWholeBandwidth(adapter);
-
+			
 			return 1;
 		}
 	}
@@ -2453,7 +2456,7 @@ static int skystar2_probe(struct pci_dev
 
 	if (!adapter->i2c_bus)
 		return -ENOMEM;
-
+	
 	dvb_add_frontend_ioctls(adapter->dvb_adapter, flexcop_diseqc_ioctl, NULL, adapter);
 
 	dvbdemux = &adapter->demux;

Home | Main Index | Thread Index