how to use dvb_attach (was: Re: [linux-dvb] Re: Error unloading
WinTV NOVA T USB2)
patrick.boettcher at desy.de
Wed Aug 30 09:33:14 CEST 2006
On Tue, 29 Aug 2006, Trent Piepho wrote:
> > > If something has multiple front-ends, just call the attach function
> > > multiple times.
> > For the so-called I2C-enumeration of the DiBcom-demods (to get all the
> > demod reachable by I2C) it is necessary to have some information which is
> > present in the config-struct. I actually don't like to change all that,
> That would be dib3000mc_i2c_enumeration(demod,no_of_demods,default_addr),
> which is never actually called in the current code?
You are right.
> It does not look like it needs anything in the dib3000mc_config structure,
> only all the frontend pointers and the default i2c address.
You are right again, only for dib7000-drivers it will use a field from the
config-structure to do I2C-enumeration.
> It looks like it remaps the demods to different I2C addresses?
> Could you just have a function that does this after all the demods have
> been attached? Or just re-map them one at a time as they are attached?
I could do it before attaching all demods and then I need also the
config-strut. Attaching also means probing and in a diversity-chain the
only the last demod is reachable before I2C-enumeration.
> Have a parameter to dib3000mc_attach that specifies the I2C address to
> re-map too or 0 to not remap.
As stated above remap happens during the i2c-enumeration.
> > At first dibusb_dib3000mc_frontend_attach was only located in dibusb-mc.c,
> > then a device appeared with the 3000mc inside but with USB firmware
> > interface which normally only used with the 3000mb onboard. So, I put the
> > dibusb_dib3000mc_frontend_attach in common, because it was used by two
> > different modules.
> This makes everything which uses dibusb-common depend on the 3000mc
> demodulator module. Why not just put dibusb_dib3000mc_frontend_attach(),
> the dvb-usb wrapper for the frontend attach function, in dib3000mc.c?
That would make the dib3000mc-module depend on USB, would it. There are
more applications for this demod, than just USB. Unfortunately, nothing
which is OpenSource as of today.
> > > BTW, the error path in dib3000mc_attach() is broken.
> > Thanks, but where? I'm too blind to see it.
> It de-references uninitialized front-end pointers. I suppose that this
> goes to show that the way the front-end attach function tries to do
> multiple frontends at once makes it too complex.
If you refer to the kfree - the loop is done with num not with
I think I will change the way the i2c-enumeration is done. Thanks for
pushing for this. .. In fact I really think this is the better way.
But as usually my time is very limited and I promised so much during the
past weeks and a lot of it is still in the FIFO... And during working time
I will have no time to do it. Another *sigh*. I'll try my best.
Mail: patrick.boettcher at desy.de
More information about the linux-dvb