Mailing List archive

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

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



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	22 Nov 2003 20:54:44 -0000
@@ -105,6 +105,7 @@ struct adapter {
 
 	u16 pids[0x27];
 	u32 mac_filter;
+        u8 whole_band_width_opened;
 };
 
 #define WriteRegDW(adapter,reg,value) writel(value, adapter->io_mem + reg)
@@ -1108,7 +1109,9 @@ static int CheckPID(struct adapter *adap
 
 	if (pid == 0x1FFF)
 		return 0;
-
+        
+	if (adapter->whole_band_width_opened==1) return 1;
+	
 	for (i = 0; i < 0x27; i++) {
 		if (adapter->pids[i] == pid)
 			return 1;
@@ -1293,11 +1296,15 @@ static void ResetHardwarePIDFilter(struc
 
 static void OpenWholeBandwidth(struct adapter *adapter)
 {
+        dprintk("%s:\n", __FUNCTION__);
+	
 	PidSetGroupPID(adapter, 0);
 
 	PidSetGroupMASK(adapter, 0);
 
 	FilterEnableMaskFilter(adapter, 1);
+
+        adapter->whole_band_width_opened=1;
 }
 
 static int AddHwPID(struct adapter *adapter, u32 pid)
@@ -1423,6 +1430,14 @@ static int AddPID(struct adapter *adapte
 
 	dprintk("%s: pid=%d\n", __FUNCTION__, pid);
 
+	if(pid == 0x2000)
+	{
+		OpenWholeBandwidth(adapter);
+		return 1;
+	}
+		
+	adapter->whole_band_width_opened=0;
+	
 	if (pid > 0x1FFE)
 		return -1;
 
@@ -1436,7 +1451,7 @@ static int AddPID(struct adapter *adapte
 
 			if (AddHwPID(adapter, pid) < 0)
 				OpenWholeBandwidth(adapter);
-
+			
 			return 1;
 		}
 	}
@@ -2453,6 +2468,8 @@ static int skystar2_probe(struct pci_dev
 
 	if (!adapter->i2c_bus)
 		return -ENOMEM;
+	
+	adapter->whole_band_width_opened=0;
 
 	dvb_add_frontend_ioctls(adapter->dvb_adapter, flexcop_diseqc_ioctl, NULL, adapter);
 

Home | Main Index | Thread Index