Hi,
I've made some patches which should help the cx88 and saa7134 drivers
with multiple frontends. The patch description should describe the basic
changes well enough. See http://linuxtv.org/hg/~stoth/hvr3000.
The patches are far from complete but they should give anyone a basic
overview of the approach, which is:
videobuf_dvb.c/h now has some extra structures and functions that are
used by the cx88 and saa7134 drivers to manage a list of videobuf_dvb
structures (a dynamic a list of 'frontends'). This dynamic list is held
in cx8802_dev or saa7134_dev(?), replacing the existing 'struct
videobuf_dvb' field.
The patches show how the generic structures are implement. The best tree
to look at is the cx88 tree, especially the
cx88-dvb.c/dvb_register+_probe and cx88-mpeg.c/_probe functions. I still
need to implement some of this initialisation code in the saa7134
driver, it's still in progress.
Other changes including adding a 'num_frontends' field to the
saa7134_boards and cx88_boards structures. This is used during
initialisation to signal how many frontends will be created and
attached, this simplifies the switch statement in dvb_register
significantly.
Lastly, after the list of videobuf_dvb_frontend structures is created,
it's passed to videobuf_dvb_register_bus() via cx88-dvb/dvb_register
which is responsible for register a single adapter and any number of
frontends.
Over the next few days I'll be cleaning up saa7134 and testing the
hvr3000 with multiple frontends. Todate I've tested with cx88 card=28, a
DVICO ATSC product. The driver is working as expected and appears to be
stable.
Te patches need cleaned up but it's ready for the public review and I'd
appreciate any feedback or comments.
Outside of the scope of these patches is the need in the saa7134 driver
to manage a single transport bus (if required) between multiple
frontends. A working example of this in the cx88 driver is the
cx88-dvb.c/cx88-dvb-bus-ctrl() function.
Regards,
Steve
_______________________________________________
linux-dvb mailing list
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb