[alsa-devel] [PATCH - alsa-lib 2/3] tlv: Handle 'holes' in SND_CTL_TLVT_DB_RANGE array

Takashi Iwai tiwai at suse.de
Tue Jul 20 12:56:59 CEST 2010


At Tue, 20 Jul 2010 09:53:22 +0300,
Peter Ujfalusi wrote:
> 
> Hi,
> 
> On Monday 19 July 2010 21:30:48 ext Takashi Iwai wrote:
> > > It still seems silly to have to paper over this for every single dB
> > > interval - if we need to link up the ranges it seems like we ought to
> > > be fixing this in one place.
> > 
> > Well, what I don't feel right is that this breaks the simpleness of
> > DB_RANGE handling.  It's just damn simple, and works as long as the
> > target point is covered by defined ranges.  If something is wrong,
> > it's the definition, not the parser.  That's why I wondered first
> > whether it can't be fixed in the driver side.  I want the parser stuff
> > as simple as possible.
> 
> I think this patch still keeps the parser simple.
> It does not break the existing functionality (overlapped mappings still works), 
> but it can in addition handle the non-overlapped mapping of TLV ranges.
>  
> > So, practically seen, how many driver are buggy in this regard?
> > And for how many of them should a new TLV entry added?
> > The only worst case is discontinued lines you mentioned.  Is there
> > a real device that behaves so (and implemented in that way)?
> > 
> > If fixing in alsa-lib is a better compromise, I'd take it.  But I'd
> > like to hear numbers first.
> 
> The following drivers have some sort of TLV_DB_RANGE_HEAD:
> with overlapping ranges:
> pci/as1838.c
> soc/codecs/wm8753.c
> 
> with non-overlapping ranges:
> soc/codecs/tpa6130a2.c /* patch sent to convert to overlapping */
> soc/codecs/uda1380.c
> soc/codecs/wm_hubs.c
> soc/codecs/max9877.c
> soc/codecs/wm8350.c
> soc/codecs/wm8400.c /* only single SCALE_ITEM */
> soc/codecs/wm8961.c
> soc/codecs/wm8990.c /* only single SCALE_ITEM */
> soc/codecs/wm8993.c
> soc/codecs/wm9081.c
> soc/codecs/wm9090.c
> soc/codecs/wm9713.c
> soc/codecs/twl4030.c /* patch sent to convert to overlapping */
> 
> I don't really know how many of these driver would require new TLV entry, but 
> the twl4030, and tpa6130a2 (for tpa6140a2 chip) does not needed new entry, just 
> modification of the TLV items.
> 
> I agree with Mark in regards, that the decision making is strictly 
> policy/userspace stuff, but I also think that the drivers should also provide as 
> much, and as accurate information to user space to make this decision (if it is 
> in form of overlapped mapping, than like that).
> 
> Having said that, I believe, that the patch for alsa-lib alone would provide 
> correct enough handling of non-overlapping TLV ranges (without breaking the 
> handling of overlapped mappings).

OK, this sounds convincing enough to me.
I applied your new patches now.

Thanks!


Takashi


More information about the Alsa-devel mailing list