Trent Piepho wrote: > On Fri, 12 May 2006, Johannes Stezenbach wrote: > > > > - add dvb_attach() and dvb_detach() functions > > > > - leave frontend drivers unmodified > > > > - so nothing changes for out-of-tree STB like users like tuxbox > > > > > > How can dvb_detach() work, satisfy your three requirements here, AND still > > > work with chained front-ends? > > > > > > Without chained frontends, it's easy enough (*): > > > > > > int dvb_detach(struct dvb_frontend* fe) > > > { > > > void *addr = (void*)fe->ops->release; > > > dvb_unregister_frontend(fe); > > > symbol_put_addr(addr); > > > } > > > > > > But this doesn't work at all with chained frontends. > > > > Looks like I didn't get something... > > > > What is a "chained frontend"? How is this handled currently > > First, let me say that chained frontends *isn't* something new that is > mixed in with this attach/detach stuff. It's already there. See the > lnbp21 driver for an example. Is chaining used anywhere else than in the lnbp21 driver? I introduced it because I thought that it would be a good idea to limit the number of private pointers in struct dvb_frontend. ;-) Obviously it makes life harder, not easier. So just remove chaining from lnbp21.[ch], and rename misc_priv to something like sec_priv... Imho it's not worth the trouble. ;-) Oliver -- -------------------------------------------------------- VDR Remote Plugin available at http://www.escape-edv.de/endriss/vdr/ -------------------------------------------------------- _______________________________________________ linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb