Re: Re: [RFC] multi std silicon tuners and analog tuners

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 5/15/07, Manu Abraham <abraham.manu@xxxxxxxxx> wrote:
Markus Rechberger wrote:
> Hi,
>
> TUNER_SET_TYPE_ADDR, seems to break with that approach, it's possible
> to change the tuner type on the fly with it.
> There have been some devices around which for example use an xc3028
> for analogue TV and a qt1010 for DVB-T, so in that case we wouldn't
> like the xc3028 hybrid tuner module to attach to the DVB part.



Normally, a tuner/PLL (note that a tuner is not exactly the same as a
PLL) is behind a DVB demodulator in most cases ~90% of the times. The
demod of course does control access to it, also this control is private
to the demod a control which is exported to the dvb-core such that
DVB-CORE might use that control to do various operations with regards to
the devices that are behind the demodulator.

Now, there are few devices, that do not use the bus behind the
demodulator. But these devices are comparatively lesser in number, say
the remaining ~10%.

The statement that V4L cannot set tuner address is baseless, as V4L is
not supposed to do that since what the DVB subsystem controls, that
alone should handle.


that your current approach breaks the TUNER_SET_TYPE_ADDR approach is
not baseless. Look up where it's used at the moment and how it is
used. This was the only point of what I wrote there.

http://article.gmane.org/gmane.comp.video.video4linux/32821/match=multi+std+silicon+tuners+analog

If you have read through the code that i posted you see this comment

+/* NOTE!
+ * Almost all tuners are behind a secondary bus behind a digital
demodulator.
+ * Access to this bus is controlled by the demodulator itself by the
means of a
+ * control with the demodulator. viz, i2c_gate_ctrl. A hybrid device
(in Analog
+ * mode) should never try to enable/disable the i2c_gate_ctrl, ie the gate
+ * control is private to the demodulator. Since the demodulator only
has access
+ * to this secondary bus, initialization is handled in a better manner
by the
+ * digital mode. ie, dvb-core
+ */

The reason being manufacturers are more oriented to making DVB devices
with Analog as a small add on feature, not that Analog is the main
feature on it. moreover if you think that a hybrid tuner which has a
major feature such as DVB stating things like:

"> There have been some devices around which for example use an xc3028
> for analogue TV and a qt1010 for DVB-T, so in that case we wouldn't
> like the xc3028 hybrid tuner module to attach to the DVB part."

is absurd.

If you think that V4L should handle this, then your thoughts (logic)
itself is fundamentally flawed to a very great extend.


I think you have the wrong idea about what I  wrote.
V4L should only deal with analogue/radio mode of a tuner, dvb only the
digital part.

Additionally, if you take a look, the proposed method doesn't require
*all* the DVB drivers to be modified to make the XC3028 to work. Only
the XC3028 need to be modified, which IMHO is much easier and cleaner
approach that will work with other hybrid devices too in a nice and
clean way, rather than messing up with the entire DVB tree.


Remember there was a proposal which didn't touch that many drivers, it
got discussed till there was nothing to discuss anymore and that
approach just died,
I encourage everyone to participate at both projects and I don't
insist on keeping
the old structures as they are because they were ok for the first
devices which were available but the framework simply doesn't fit for
current devices anymore.


It is not that i do want to see my code being accepted or anything like
that, but i do prefer to not have changes that do have a negative impact
going into the DVB tree. I just wrote that as a means for people to look
at it such that better drivers can be written, rather than wasting time
again and again on long discussions that lead to nowhere.

Also if you think that the code that which i have pasted doesn't work
for you, with regards to personality issues: You can as an alternate use
an approach handled by Michael which has been proven to work as well.

http://www.linuxtv.org/~mkrufky/xc-bluebird.patch

This will save you a lot of time too, as he is offering to spend some of
his time to have a better approach. You should probably additionally
test that tree whether it breaks things for you.

Additionally for one driver, if the entire DVB driver tree has to be
changed, don't you think that there is something wrong with your
patches/driver ?


This bluebird patch makes a DVB tuner out of the v4l tuner so this is
no solution for the problem, my change introduces a new way for
handling these hybrid tuners which aren't directly handled by the dvb
demodulator (eg. which are not behind a demod bus)

dvb_tuner_ops was designed to split out the tuner functionality in
DVB, this is where the V4L approach connects. The only change that
I've done there is to unify the function parameters that v4l doesn't
need initialized dvb structures (for example dvb_frontend).
If you look at the mt2060 it's also a hybrid _tuner_ which is not
directly controlled by the demod and it also uses that split out
dvb_tuner_ops mechanism.

I also remember that you claimed the dvb_tuner_ops approach to be
broken, it exists and it is included at the moment and it works fine
with many devices already.
The patches I sent is only an approach to reuse that method in the v4l
framework.

After all that the "design" changes are very small for the DVB part,
all together it's about unifying the parameters, fixing the user
counter and adding a locking mechanism.

I doubt that i will be able write any further on this thread, time being
very much limited.

HTH
Manu




--
Markus Rechberger

_______________________________________________
linux-dvb mailing list
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux