> > ---------- Missatge reenviat ---------- > From: "Michael Krufky" < [EMAIL PROTECTED]> > To: "Ivor Hewitt" <[EMAIL PROTECTED]> > Date: Mon, 21 Jan 2008 15:45:31 -0500 > Subject: Re: [linux-dvb] [PATCH] allow dvb-usb firmware loading in warm > state? > On Jan 21, 2008 3:19 PM, Ivor Hewitt <[EMAIL PROTECTED]> wrote: > > Hi, > > I was having (still am! :) trouble with my nova-t 500 card and I wanted > > a way to be able try a different firmware... but the current code only > > loads in a cold state... and my "mythbackend" is pretty inaccessible, so > > I made the attached change. This allows a module parameter of > > "force_load_firmware" which causes the "cold state" logic to be used > > when warm. Thought this might be a useful idea, it was handy for me > anyway. > > > > Cheers, > > Ivor > > > > -- snip -- > > > > /* DIB7070 generic */ > > diff -r 7564c110491e linux/drivers/media/dvb/dvb-usb/dvb-usb-init.c > > --- a/linux/drivers/media/dvb/dvb-usb/dvb-usb-init.c Sun Jan 20 > > 09:13:44 2008 -0200 > > +++ b/linux/drivers/media/dvb/dvb-usb/dvb-usb-init.c Mon Jan 21 > > 11:55:20 2008 +0000 > > @@ -25,6 +25,10 @@ static int dvb_usb_force_pid_filter_usag > > static int dvb_usb_force_pid_filter_usage; > > module_param_named(force_pid_filter_usage, > > dvb_usb_force_pid_filter_usage, int, 0444); > > MODULE_PARM_DESC(force_pid_filter_usage, "force all dvb-usb-devices to > > use a PID filter, if any (default: 0)."); > > + > > +int dvb_usb_force_firmware; > > +module_param_named(force_load_firmware, dvb_usb_force_firmware, int, > 0444); > > +MODULE_PARM_DESC(force_load_firmware, "force firmware loading even when > > in warm state."); > > > > static int dvb_usb_adapter_init(struct dvb_usb_device *d) > > { > > @@ -230,7 +234,7 @@ int dvb_usb_device_init(struct usb_inter > > return -ENODEV; > > } > > > > - if (cold) { > > + if (cold||dvb_usb_force_firmware) { > > info("found a '%s' in cold state, will try to load a > > firmware",desc->name); > > ret = dvb_usb_download_firmware(udev,props); > > if (!props->no_reconnect || ret != 0) > > > Doesn't this cause an endless loop? How does the driver know when to > stop uploading firmware? > > -Mike >
I think that code executes once only at driver initialisation phase. That means that now probably you'll be able to force a firmware reload by doing "rmmod dvb-usb-dib0700; modprobe dvb-usb-dib0700", which is pretty good IMHO. If so, that would solve a number of issues with this card that now require a full power-off cycle (a reboot isn't enough to make the card reload the firmware). Please, correct me if I'm wrong... Regards, Eduard PS: sorry, forgot to change the topic title in the previous message.
_______________________________________________ linux-dvb mailing list linux-dvb@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb