[pulseaudio-discuss] ASoC and pulseaudio
Takashi Iwai
tiwai at suse.de
Tue Mar 15 09:56:39 UTC 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 pulseaudio-discuss
mailing list