how to use dvb_attach (was: Re: [linux-dvb] Re: Error unloading
WinTV NOVA T USB2)
Patrick Boettcher
patrick.boettcher at desy.de
Tue Aug 29 11:30:12 CEST 2006
Hi,
On Mon, 28 Aug 2006, Trent Piepho wrote:
> > On 8/22/06, Patrick Boettcher <patrick.boettcher at desy.de> wrote:
> > > Hi Mario,
> > >
> > > The wrong use_count for the dib3000mc is most likely because I'm not using
> > > the dvb_attach-function for attaching the demod/frontend, because the
> > > prototype of the dib3000mc_attach is not exactly the same as for other
> > > demod-drivers.
> > >
> > > Why? Because with the dib3000mc_attach (and with the future coming
> > > dib7000m_attach and dib7000p_attach) we can attach more than one demod at
> > > the same time - will be used on devices arriving late fall/autumn).
> > >
> > > Can someone please advise me how to proceed?
>
> You should not use dvb_frontend_detach() unless you are using dvb_attach(),
> which you are not using.
Am I using dvb_frontend_detach?
> I think it would make a lot more sense if you had dib3000mc_attach() just
> attach one frontend, like all the other front-end attach functions.
For whom would it make more sense? My understanding of the attach-function
is not, that it only has to attach exactly one frontend. If I missed
something in the dvb_attach-discussion I'm sorry.
> 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,
just because the software architecture (which was working fine before)
suddenly sets limitations. OTOH, I also wouldn't want to change
architecture just because there will be 4 frontend driver very soon which
are behaving differently (today there are 2). Difficult ;) .
What can I do? Add a small function which I then use to force the
symbol_get. (maybe struct dvb_frontend * dvb_get_frontend(struct
dvb_frontend *fe) { return fe; } and then I can called
dvb_frontend_attach(dvb_get_frontend, fe); )
> Why is dibusb_dib3000mb_frontend_attach() in dibusb-mb.c, and
> dibusb_dib3000mc_frontend_attach in dibusb-common.c?
Why why why? *sigh*. You can believe me, there is a reason:
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.
> BTW, the error path in dib3000mc_attach() is broken.
Thanks, but where? I'm too blind to see it.
best regards,
Patrick.
--
Mail: patrick.boettcher at desy.de
WWW: http://www.wi-bw.tfh-wildau.de/~pboettch/
More information about the linux-dvb
mailing list