8 Oct
2010
8 Oct
'10
6:49 p.m.
Colin Guthrie wrote:
What is odd about this tho', is that the flag for min is mute (0x10000) is checked on tlv[3] which is also used here for the "max" value.
SND_CTL_TLVT_DB_SCALE uses a flag in tlv[3] to indicate min-is-mute, but SND_CTL_TLVT_DB_MINMAX has a variant SND_CTL_TLVT_DB_MINMAX_MUTE. (The HDA driver uses DB_SCALE).
if (db_gain <= min) { *value = rangemin;
if (xdir > 0 && (tlv[3] & 0x10000) && db_gain > SND_CTL_TLV_DB_GAIN_MUTE)
*value = rangemin + 1;
This should go at the same place in the SND_CTL_TLVT_DB_SCALE branch.
Regards, Clemens