Mailing List archive

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

[linux-dvb] Re: Volume control broken since cvs 20030424



Oliver Endriss wrote:
Tobias Bratfisch wrote:

So with the new code the DVB-S cards which have NO MSP3400 get
automatically av7110->adac_type = DVB_ADAC_TI whether they have it or
not. So NO card can have av7110->adac_type = DVB_ADAC_NONE !

Please try the following patch (don't know if this fixes all problems):

--- av7110.c.org Sat Apr 26 13:21:19 2003
+++ av7110.c Mon Apr 28 00:59:58 2003
@@ -4945,7 +4945,6 @@ int av7110_attach (struct saa7146 *saa, if (av7110->saa->card_type==DVB_CARD_TT_SIEMENS) {
VidMode(av7110, vidmode);
- SetVolume(av7110, 0xff, 0xff);
/* remaining inits according to card and frontend type */
@@ -4962,8 +4961,8 @@ int av7110_attach (struct saa7146 *saa, /**
* some special handling for the Siemens DVB-C card...
*/
- if ((av7110->saa->device->subsystem_vendor == 0x110a) ||
- (av7110->saa->device->subsystem_vendor == 0x13c2)) {
+ else if ((av7110->saa->device->subsystem_vendor == 0x110a) ||
+ (av7110->saa->device->subsystem_vendor == 0x13c2)) {
if (i2c_writereg(av7110, 0x80, 0x0, 0x80) == 1) {
i2c_writereg(av7110, 0x80, 0x0, 0);
printk("av7110: DVB-C analog module detected, "
@@ -4988,6 +4987,7 @@ int av7110_attach (struct saa7146 *saa, //setgpio(av7110, 3, GPIO_OUTLO); // SCARTpin 8
}
+ SetVolume(av7110, 0xff, 0xff);
av7110_setup_irc_config (av7110, 0);
}

This fixes the following problems:
- SetVolume() was called before ADAC type had been detected.
- Volume control for DVB-S Nexus cards with Crystal ADAC did not work:
Subsystem vendor id 0x13c2 is used for DVB-S cards with Crystal chip, too.
Due to a missing 'else', the old code set DVB_ADAC_TYPE_TI for these cards.
applied, please test!
thanks,

Holger



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



Home | Main Index | Thread Index