[linux-dvb] Re: DST/BT878 module customization (.. was: Critical points about ...)

Mauro Carvalho Chehab mchehab at infradead.org
Fri May 4 11:23:34 CEST 2007


> > It would be nice, however, to have a patch making dvb_attach more
> > generic, by e.g. having a variant that allows passing another message.
> 
> Only this message is from dvb_attach():
> > DVB: Unable to find symbol dst_attach()
> 
> Is it saying that it cannot load the module that dst_attach() is in (it
> doesn't know what module that is, modprobe knows that).  If you enabled dst
> support and deleted the module, it would be the same.
> 
> If you turn off dvb_attach() and also disable dst, you should instead get
> this message:
> dst_attach: driver disabled by Kconfig
> 
> Maybe that would look nicer with a "DVB:  " prefix?  That would easier if it
> wasn't necessary to update the printk in each boilerplate stub function.  What
> if one macro created these stubs....
> 
> > frontend_init: Could not find a Twinhan DST.
> > dvb-bt8xx: A frontend driver was not found for device 109e/0878 subsystem fbfb/f800
> 
> These two messages are printed by the dvb-bt8xx driver, not by dvb_attach().
> It would be trivial to change of course, but I'm not sure what would be
> pedantically correct for both dst and non-dst based hardware.

Sorry, this is what I meant: to fix the above message. The dvb_attach is
generic enough.

Maybe a more nice text would be something like:
	"Couldn't initialize frontend helper modules for device ..."

since dvb_attach will also print what modules were not loaded.
> 
> > There's an argument against the prototype changes on dst_attach and
> > dst_ca_attach since they aren't frontend.
> 
> The reason I changed that, is the dst_attach() already did return a
> dvb_frontend pointer, it was just inside an enclosing structure.  i.e. what
> existed before:
> 
> {
> 	struct dst_state *state;
> 	state = dst_attach(...);
> 	card->fe = &state->frontend;
> } /* state goes out of scope */
> 
> The frontend is inside the state struct and the state pointer isn't saved
> anywhere.  dvb-bt8xx just saves a frontend pointer from inside the dst state
> and tosses the state pointer away.  So I changed that to:
> 
> 	card->fe = dst_attach(...);

IMO, this made the code cleaner.

-- 
Cheers,
Mauro




More information about the linux-dvb mailing list