Mailing List archive

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

[linux-dvb] Re: [vdr] Re: ERROR (dvbdevice.c,533)



Andreas Kool wrote:
> On Sun, May 04, 2003 at 12:49:40AM +0200, Oliver Endriss wrote:
> > Andreas Kool wrote:
> > > On Sat, May 03, 2003 at 11:24:18PM +0200, Oliver Endriss wrote:
> > > > ...
> > > > You can fix later drivers by adding your card id to the 'if'
> > > > statement at line 4965 (av7110.c). You can simply replace
> > > > 0x1004, which is wrong anyway (IMHO).
> > >
> > > Yes, you are right, the 0x1004 is definitely wrong.
> > > Please remove that statement from the CVS!
> >
> > Hmm, in another thread Holger wrote that you told him to add this
> > id...
>
> I told Holger to add the subsystem id 0x13c2, but nothing else!

Ok, no problem.

> > Anyway, it doesn't hurt as this piece of code will never be reached
> > for a budget card (0x1004).
> >
> > > > Volume control will only work for DVB-C if you have an analog
> > > > module.
> > >
> > > Shure. The MSP34xx chip is mounted on the analogue-tuner-module.
> > > I dont know why, but ... shit happens ...
> >
> > IIRC Uwe's problem was that he gets no sound with his *Siemens*
> > card.
> >
> > > > Adding cable card ids here might break DVB-S support, if the
> > > > same id is being used by DVB-C and DVB-S.
> > >
> > > Oh yes, that might be a problem ...
> >
> > You see the problem: I might add the ids 0x0000/0x0002 but I
> > suspect that this will break DVB-S support (for cards without
> > crystal DAC). My DVB-S Nexus 2.1 has id 13c2:0003.
>
> Oh my god :-(

;-)

> > I think we need a reliable way to identify cable cards.
>
> Correct. Maybe the MSP34xx chip could be another criteria for cable
> cards?

It's easy to auto-detect the MSP34xx chip but this will only help for 
cable cards *with* analog module installed. Without analog module we do 
not know whether we have a DVB-S or a DVB-C.

The current code works like this:
...
av7110->adac_type = DVB_ADAC_TI;
...
if (crystal chip present) 
	av7110->adac_type = DVB_ADAC_CRYSTAL;
else if (av7110->saa->device->subsystem_vendor == 0x110a) {
	if (MSP34xx chip present)
		av7110->adac_type = DVB_ADAC_MSP;
	else
		av7110->adac_type = DVB_ADAC_NONE;
}


The problem is that we must *not* set DVB_ADAC_NONE for DVB-S cards.
Maybe we should change the code as follows:
...
av7110->adac_type = DVB_ADAC_TI;
...
if (crystal chip present) 
	av7110->adac_type = DVB_ADAC_CRYSTAL;
else if (MSP34xx chip present)
	av7110->adac_type = DVB_ADAC_MSP;
else {
	if (av7110->saa->device->subsystem_vendor == 0x110a)
		av7110->adac_type = DVB_ADAC_NONE;
}

This should fix the problem for all cable cards *with* analog module.
Cable cards without analog module and id != 0x110a cannot be detected
because I don't know how they could be distinguished from DVB-S cards. 
It is important not to set DVB_ADAC_NONE for DVB-S!

What do you think?

Oliver


-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index