On Sat, Apr 21, 2018 at 07:49:24AM +0800, KaiChieh Chuang wrote: > > These gains should be put in TLVs rather than an enum so userspace can > > handle them (also it should be dB not Db). You can handle irregular > > step sizes like these with DECLARE_TLV_DB_SCALE(), there's several > > examples in the code already. > We declare this enum for user space to operate on enum directly, > unlike alsa-lib, we use tinyalsa in Android, if declared in tlv, > the mixer control just become a integer control, which is not > informative for user space. Your custom userspace isn't really a factor for upstream. > > > + if (ucontrol->value.integer.value[0] == 0x1f) /* reg idx for -40dB*/ > > > + ucontrol->value.integer.value[0] = ARRAY_SIZE(dl_pga_gain) - 1; > > Why do this rewriting? > A little awkward gain register here, > the range is for 8dB ~ -10dB and -40dB, corresponding to reg index 0 ~ > 18 and 31. > 00000: +8dB. > 00001: +7dB. > 10010: -10dB > 11111: -40dB(Mute). > and where 19 ~ 30 is not defined, and shouldn't be set. > i think tlv not yet support this kind of gain control? You can say there's a mute value, but gaps like that aren't easily handled AFAIR. You could assign vales to them (I'm guessing there probably are some that just aren't doucmented for some reason) or... > Maybe i'll just declare 8dB ~ -10dB for now. ...this is also common, the mixed mute and gain controls aren't always super useful. Depending on what goes on with pops and clicks a DAPM autodisable control might be a good application too.
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel