Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] Volume bug for DVB_ADAC_CRYSTAL.
For driver version 0.9.4 in driver/dvb.c in the function SetVolume() the
following code didn't work for me:
case DVB_ADAC_CRYSTAL:
volleft=127-((volleft*100)/255);
volright=127-((volright*100)/255);
i2c_writereg(dvb, 0x20, 0x03, volleft);
i2c_writereg(dvb, 0x20, 0x04, volright);
return 0;
The result is that the volume out form the tv card is very low. The reason is
obvious since volleft/right never can reach 0. The correct way to scale
volleft/right must be like this:
case DVB_ADAC_CRYSTAL:
volleft=127-((volleft*127)/255);
volright=127-((volright*127)/255);
i2c_writereg(dvb, 0x20, 0x03, volleft);
i2c_writereg(dvb, 0x20, 0x04, volright);
return 0;
But the values 64->127 gives almost Zero volume so the volume slider in VDR
gets very sensitive. A better scaling is then:
case DVB_ADAC_CRYSTAL:
volleft=64-((volleft*64)/255);
volright=64-((volright*64)/255);
i2c_writereg(dvb, 0x20, 0x03, volleft);
i2c_writereg(dvb, 0x20, 0x04, volright);
return 0;
Which works very well for me :)
--
Mvh. Are Årseth
| aaarseth@atmel.com | Tlf: 72 89 75 44 | are@arseth.org | Mob: 41 00 05 48
--
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.
Home |
Main Index |
Thread Index