Tim E. Real wrote:
On July 27, 2010 01:00:31 am you wrote:
> > Yikes! It's all coming back to me now, this can of worms.
> > In my case the Delta101LT card has the AK4524 ADCs.
> > The dB step of the IPGA stage is constant at 0.5dB, but the
> > dB step of the DATT stage is not - anywhere from 6dB to 0.28dB !
> > And remember the IPGA and DATT controls were combined, complicating
> > things. Meanwhile, other AK chips' DATT stages are constant step.
The driver uses a volume lookup table to pretend that the mixer values
have constant 0.5 dB steps. This should be changed.
> So does this mean 'alsamixer' has a bug
for those card models with
> combined IPGA? Which would that be?
>
> Note the code in 'alsamixer' which prints out dB-values -- is this
> correct or not?
If there is a bug, it is in the TLV tables in the driver.
Apparently there is a more advanced TLV based dB
conversion.
snd_tlv_convert_to_dB()
The snd_mixer_selem_get_*_dB functions just get the TLV table and then
call snd_tlv_convert_to_dB internally.
Regards,
Clemens