Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] Re: DVB-CI question
> If it were as complicated as you say, userspace would be the right
> place. But we have the av7110 firmware implementation, and a proprietary
> STB driver, and while it is admittedly not simple there is *no* locking at
> all. Because CI is essentially driven by polling (the CAM cannot send
> data spontaneously, the host has to poll for data).
>
> Also note, the av7110 implementatton uses a single 64K buffer for all
> fragments, and that seems quite sufficent. The list handling for fragment
> reassembly is not easy though.
>
> It works approximately like this:
>
> o send TPDU to CAM:
> - fragment TPDU to negotiated fragment size and put in list
> o receive TPDU from CAM:
> - wait on ringbuffer wait queue
> o poll CAM (from kernel thread or similar):
> - receive fragments from CAM and put in list
> - send fragments from list to CAM
> - check received fragments in list for completed TPDU
> and put in ringbuffer
Yeah, thats pretty much how mine works, except I also support read/write IRQs
from the CAM (the one I have supports them).
Its the complex list handling for fragment reassembly thats the bit I don't
see any reason for having cluttering up the kernel. Theres no high bandwidth
data being transferred, so theres no real gain in doing in the kernel.
However, in the av7110 instance, I can see that perhaps there were other
reasons it was done in the firmware, but those are not necessarily the case
here.
The extra locking in mine is because it is intended to be a generic API
implementation for CA devices, along the lines of the other parts of
dvb_core, so I cannot make any assumptions about any particular device. Note
that the implementation is pefectly happy with dealing with the av7110-style
defragmented packets as well, so it could be used to replace the current
av7110 opensource CA code with the generic API implementation.
I can write sample userspace code for doing the defragmentation if that would
help people (I've already released a partial version of it, so I can release
that fine).
--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.
Home |
Main Index |
Thread Index