Re: Zoran-0.7a vs Linux Kernel Source Tree

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



Wolfgang Scherr wrote:

> Pauline is totally right. I already saw this problem before and dicussed
> it with Serguei on the buz list, but in a too early stage - My dc1
> driver uses also hardware already used in the kernel so I decided not to
> use the i2c stuff but left it in the driver directly. But this was with
> the now called i2c-old.
>
> Some mechanism in the i2c core telling the attached i2c device (or
> module) something abut the i2c host/driver to setup the lowlevel stuff
> would help - but its this possible?

Just an idea:

1. We need to add one more command in video_decoder.h, like DECODER_SET_HOST and use it to send card ID. The ID could be integer (needs xxx.h file or even some database-like file which should be maintained properly), or it can be a string, like "LML33". Latter is more flexible, I think.

2. In xxx.c file (decoder driver code) a table of some structs should be created, which includes the card ID (string, or integer, as mentioned above) and all unique settings for this card. At initialization, if host uses DECODER_SET_HOST, the xxx.c performs lookup for the card name and chooses proper settings. This table may be even just an array of pointers to the card IDs, and the ordering number of found entry can be used as internal integer ID.

This is just a proposal... The same, probably, should be also done for video encoders. Any other ideas?

> Because just using module parameters for load is not possible when e.g.
> two types of hardware use the same device with other settings...

Sure. Negotiation about low level drivers should be internal.

> Serguei Miridonov wrote:
> >
> > Pauline Middelink wrote:
> >
> > > On Sat, 03 Mar 2001 around 18:05:18 -0800, Jon Pennington wrote:
> > > > To address the third and most difficult problem:
> > > >
> > > > As it stands on my system (Linux-2.4.2), there are five modules necessary to run my Pinnacle DC10+; zoran, adv7175, saa7110, i2c-old, and videodev.  I've asked repeated times on this and other lists about a more `permanent' solution than using Serguei's update script, but nobody has been able to give me a straight answer.  With my trusty Bt878 board, all I had to do was put `alias char-major-81 bttv' in /etc/modules.conf, and it was done for me.  By using a placeholder module model, I (or anyone else) could do the same thing, but use `dc10' instead of `bttv'.  As I stated at the start of this largely incoherent rant, I'm NOT a programmer and know nothing of the way the Linux kernel and it's modules work.  If my idea were sound, though, it could change the way all v4l modules were loaded.
> > >
> > > The problem is that those saa7110 and prob. adv7175 are generic encoder/decoder
> > > chips which are used in more than one driver (my own zr36120 zoran driver for
> > > example). Just binding them tight to some driver and just forgetting about
> > > the other drivers is not very nice...
> >
> > I agree, but we have to deal with the fact that when these chip are integrated with different hardware, they require different low level settings (like V and H timing, I/O filters, etc.). And, video decoder/encoder API does not support these. Therefore, the only way right now is to keep separate sources for different cards :-(.
> >
> > Any idea how to solve this?
> >
> > --
> > Serguei Miridonov
> >
> > _______________________________________________
> > Video4linux-list mailing list
> > Video4linux-list@xxxxxxxxxx
> > https://listman.redhat.com/mailman/listinfo/video4linux-list
>
> _______________________________________________
> Video4linux-list mailing list
> Video4linux-list@xxxxxxxxxx
> https://listman.redhat.com/mailman/listinfo/video4linux-list

--
Serguei Miridonov






[Index of Archives]     [Linux DVB]     [Video Disk Recorder]     [Asterisk]     [Photo]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Free Photo Albums]     [Fedora Users]     [Fedora Women]     [ALSA Users]     [ALSA Devel]     [Linux USB]

Powered by Linux