[alsa-devel] [pulseaudio-discuss] ASoC and pulseaudio

Takashi Iwai tiwai at suse.de
Tue Mar 15 10:56:39 CET 2016


On Tue, 15 Mar 2016 10:48:51 +0100,
Liam Girdwood wrote:
> 
> On Tue, 2016-03-15 at 09:55 +0100, Takashi Iwai wrote:
> > On Tue, 15 Mar 2016 09:45:44 +0100,
> > Mark Brown wrote:
> > > 
> > > On Tue, Mar 15, 2016 at 06:01:28AM +0000, Liam Girdwood wrote:
> > > 
> > > > 1) Shortname is board/machine name. This can come from DMI or device
> > > > tree. e.g. "Asus T100"
> > > 
> > > That seems more useful for users.
> > > 
> > > > 2) Long name is 1 + driver name + optional firmware name. (I've just
> > > > added the FW name here too as we can have potentially > 1 FW per driver
> > > > - BYT is an example) e.g. "Asus T00: byt-rt5640: IntSST1.bin".
> > > 
> > > Shouldn't we use whatever we use to figure out which firmware to load
> > > rather than the firmware name?  Someone might do something like try to
> > > replace one firmware with another and get everything confused.
> > 
> 
> This is not to load FW for our use case, the FW name is hard coded in
> driver tables. We do have several FWs for the BYT driver that all have
> different capabilities. Userspace could set the correct config for each
> FW if it knew the FW that was being used.
> 
> > I agree that a consistent name would be better.  Though, practically
> > seen, the long name isn't persistent with many drivers, as it often
> > contains the irq or port numbers that are assigned dynamically.  That
> > said, the consistency of long name isn't strictly required.  It's
> > regarded rather as a verbose information to user, which shouldn't be
> > used as an identifier key.
> > 
> > OTOH, the driver name is the primary id key used by alsa-lib for its
> > configuration.  So this must be retained through versions and unique
> > for each configuration.
> > 
> 
> Ok, so we probably need to add in the board/machine name here (from DMI
> or DT). We currently have several x86 machines all using the same codec
> + DSP + FW, but all have slightly different clocking and routing that is
> causing problems as userspace cannot configure correctly. 
> 
> > The short name is something between them.  The alsa-lib USB-audio
> > config file refers to the short name because the driver doesn't
> > provide a unique id for driver_name for various workarounds.  But it
> > should be considered as an exception.  Ideally, driver_name should be
> > unique enough for each different configuration.
> 
> So IIUC this would mean ?
> 
> 1) short name is optional, but could be board name.

Right.

> 2) long name is driver_name plus any other optional information for the
> user. Not used by applications or alsa-lib to determine sound card
> capabilities.

In most cases, long name is short name + more optional information.

> 3) Driver name is unique. machine driver name + (optional) board name +
> (optional) fw name. e.g. "byt-rt5640: Asus T100: IntSST1.bin" used by
> alsa-lib and userspace to determine sound card and set config.

But, beware that driver name is fairly short, it's a 16 bytes string.
The short name is 32 bytes and long name is 80 bytes.  Thus, you need
a special care to provide a unique driver name.


Takashi


More information about the Alsa-devel mailing list