[pulseaudio-discuss] ASoC and pulseaudio

Arun Raghavan arun at accosted.net
Thu Feb 18 09:28:42 UTC 2016


On Thu, 2016-02-18 at 11:16 +0200, Tanu Kaskinen wrote:
> On Thu, 2016-02-18 at 11:24 +0530, Arun Raghavan wrote:
> > On Wed, 2016-02-17 at 16:27 +0100, Carlo Caione wrote:
> > > Hi,
> > > In our daily work we are seeing more and more laptops coming in with
> > > SoC audio (ASoC). In the most recent case, we are working with a new
> > > consumer laptop based on Intel Cherry Trail. As you probably know to
> > > have audio working on these laptops / codecs a fairly lengthy hw
> > > specific mixer configuration is needed.
> > > The problem we are facing is how to ship a single PA / ALSA package
> > > containing a working configuration for several of those laptops and we
> > > were wondering what is the most correct / upstream-friendly way to do
> > > that.
> > > 
> > > I'm already excluding here some trivial workarounds like: shipping a
> > > different PA package for each hw or using an hw-tailored script to
> > > load the correct ALSA configuration.
> > > 
> > > The first solution we came up with is just to write a profile-set
> > > configuration file loaded by udev for each cards / laptop with the
> > > correct mixer configuration already embedded in the path configuration
> > > files. This looks a bit like an overkill when you have to change tens
> > > of controls most of which just one time (once you have setup the codec
> > > selecting the main path is usually just matter of changing a few
> > > controls to change the output / input path).
> > 
> > With PA 8.0, you have the ability to ship distro overrides via .d
> > directories, etc. And we have the ability to have includes already, so
> > maybe this is one way to solve this problem.
> 
> The .d overrides can currently only be used with daemon.conf and
> client.conf, though, so that feature isn't particularly useful for hw
> configuration for now.
> 
> > > Another possibility is to use UCM and let PA create automatically from
> > > that profile and path configuration files. This looks promising but we
> > > were a bit worried about the UCM support in PA and how stable/adopted
> > > is UCM itself.
> > > 
> > > So, what is the suggested way to accomplish this and in general how PA
> > > is trying to address this problem? I expect in the future to see many
> > > more ASoC coming into the laptops world, how will the community make
> > > it so that you install a distro and then sound "just works"?
> > 
> > If you are able to express what you need with UCM, it should be fine
> > for your use case. ChromeOS uses it, and our support is meant to just
> > work.
> > 
> > The idea thus far has been to collate UCM configuration that works with
> > mainline kernel in a single ALSA repository, so that'd be the right
> > place to put such config.
> 
> We lack hardware volume support with UCM, though. I promised last year
> to Liam to implement it, maybe I should actually start doing something
> about that... Software volume of course works fine too, but if
> PulseAudio doesn't do hw volume control, the UCM file has to take that
> into account and set the hw volume to a fixed value, which is not good
> for interoperability with e.g. ChromeOS.

UCM supports "PlaybackVolume" and "CaptureVolume" properties. These
only allow modifying volume via a single control, but changing more
than that would likely require UCM-side changes.

I did implement support for these a while back:

https://cgit.freedesktop.org/~arun/pulseaudio/commit/?h=b2g&id=7d3a9f47
7cd2be83fd72bc25adf95bd49d1eb91f

I can potentially update that if it looks broadly useful.

Cheers,
Arun


More information about the pulseaudio-discuss mailing list