Mailing List archive

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

[linux-dvb] Re: [PATCH?] proposed rewrite of skystar2 filters



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.
* 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



--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index