Il mer, 2003-12-03 alle 07:37, Niklas Peinecke ha scritto: > Wolfgang Thiel wrote: > > On Tue, Dec 02, 2003 at 12:12:02PM +0100, Niklas Peinecke wrote: > > > >>I tried my best to take all your suggestions into account and rewrote > >>the filters for the skystar2 cards. Especially (based on the valueable > >>info given by Augusto) there is now a different handling for FC IIb and > >>FC III based cards, the additional 32 PID filters should work. Also I > >>tried my best to handle the 0x2000/open_whole_bandwidth issue in a > >>transparent way. > >>... > > > > > > Hi Niklas, > > > > I'm sending you back your patch (it's against yesterdays CVS) ;-) > > - I fixed some things to get it to compile ;-) > > - I added a two-level debug: 2 is the old version, 1 is less noisy. > > - I did some cosmetic changes (see /usr/src/linux/Documentation/CodingStyle). > > - I did _not_ change anything of the functionality of your code. > > > > Your patch is working fine here, but I can only check the 6 hw pids: > > I also have a FlexCopII :-( > > > > Your patch is very similiar to mine; differences: e.g. I removed the > > default 0x1f mask, and I added a counter how often open_whole_bandwidth() > > was called and only close it, when the counter is 0 again. > > > > I'll come back with some proposals when I had more time to have a look at > > your code: > > One problem might be that we might have to track how often an identical > > hw_pid was requested before we can savely remove it from the list, and we > > should add a modul parameter like 'use_hardware_filters'. > > Do we really need pid_counter? I think the upper layer will do that for > > us. > > More later ... > > > > Wolfgang > > Hi Wolfgang, > > thanks for the testing and the suggestions. Here are some thoughts for > where we should go now: > > * The 0x1f mask could be useful for some applications. Maybe we could > have this as an extra kernel parameter? > * I did not implement reference counting for 0x2000 pids, because I > thought they would not be added more than once. However thinking about > it now, it seems that this can actually happen to every pid, e.g. if you > run dvbstream and scan at once. Therefore we probably need ref-counting > for all pids? This is a nightmare for implementation and should probably > done using some hash map technique.
We have plenty of space in the hi bits of the two pid lists (0-57343 value range)! Why don't we do ref-counting in theese unused hi bits. Should be quick, and no space and code consuming. > * pid_counter is merely there to separate the physical mapping of the > pids to the registers from the list of the pids that are present. This > speeds up checking for a pid since you don't have to examine all 38 > registers every time, furthermore (because of open_whole_bandwidth) > there can be more pids present in the ts than the onchip filters are > aware of, so the driver needs some bookkeeping. > * I don't think we need a kernel parameter for disabling the hw filters, > since they are disabled for the FC II automaticly and (once working) > they should not break anything for the other chips. Nevertheless such a > switch could be useful for debugging purposes, so I'd vote to have them > turned on by default and disable them on request. > > Don't hesitate to steal as much from my code as you need to get > everything we talked about the last few days working ;) I'm really > looking forward to see this patch in CVS. > > Niklas -- Vincenzo Di Massa <[EMAIL PROTECTED]> -- Info: To unsubscribe send a mail to [EMAIL PROTECTED] with "unsubscribe linux-dvb" as subject.
