[alsa-devel] Regression with .set_bias_level in pcm512x?
Peter Rosin
peda at axentia.se
Wed Jan 14 10:31:52 CET 2015
Hi!
Lars-Peter Clausen wrote:
> On 01/13/2015 11:49 PM, Peter Rosin wrote:
> > Hi!
> >
> > I'm working on adding support for DAIFMT_CBM_CFM and
> DAIFMT_CBM_CFS to
> > pcm512x, and it works nicely in the 3.10 kernel + Atmel-patches were I
> > have developed the code. Now I'm trying to forward-port it and test it
> > on
> > 3.18 + other-Atmel-patches in preparation for submission. However,
> > there seems to be a regression in that the (pre-existing)
> > pcm512x_set_bias_level callback is never called in the 3.18 version.
> >
> > I see that there has been some core work on set_bias_level, and
> > suspect it has something to do with dapm and components, but I think
> > someone else will find the problem much quicker than I am able to.
> >
> > I have feebly tried to revert 0bd2ac3dae74ee25c5ea171cb572731c7a89c248
> > and 68f831c2724ab72c0088471b2ed1dc99e81948ef, but that didn't help.
> > That also seems a bit backwards. So, what needs to be done in the
> > pcm512x driver to have set_bias_level called?
>
> It's unlikely that these commits have anything to do with it.
Agreed, I just wanted to show that I at least did try some things...
> I think it is more likely that the DAPM state (for whatever reason) never
> actually changes. Check the state of the DAPM context and all the widgets in
> /sys/kernel/debug/asoc/your_card/... and compare their state when the
> system is idle to when it should not be idle.
There is indeed something strange going on with dapm. When things should be
active, I have this (for the non-working 3.18 variant):
$ cat codec\:pcm512x.0-004c/dapm/Playback \
codec\:pcm512x.0-004c/dapm/DACL \
codec\:pcm512x.0-004c/dapm/OUTL \
dapm/DAC1 \
dapm/MIX1 \
dapm/MUX1 \
dapm/OUT1 \
dapm/AIFINL
Playback: Off in 1 out 0
stream Playback active
out "static" "DACR"
out "static" "DACL"
DACL: Off in 1 out 0
in "static" "Playback"
out "static" "OUTL"
OUTL: Off in 1 out 0
in "static" "DACL"
out "static" "DAC1"
DAC1: Off in 1 out 0
in "static" "OUTL"
out "static" "MIX1"
MIX1: Off in 1 out 0
in "static" "DAC1"
out "Mixer" "MUX1"
MUX1: Off in 1 out 0
in "Mixer" "MIX1"
out "static" "OUT1"
OUT1: Off in 1 out 0
in "static" "MUX1"
AIFINL: Off in 0 out 0
stream Playback inactive
When things are inactive, all "in 1" change to "in 0", and the top "stream Playback"
change to "inactive".
bias_level of both the card and the codec are "Off", regardless.
For reference, I have attached my current card driver, which is given this:
sound {
compatible = "axentia,asoc-linea-tse850";
axentia,model = "TSE850 @ Linea";
axentia,audio-routing =
"DAC1", "OUTL",
"DAC2", "OUTR";
axentia,ssc-controller = <&ssc0>;
axentia,audio-codec = <&pcm5142>;
gpios = <&pioA 9 GPIO_ACTIVE_LOW>,
<&pioA 8 GPIO_ACTIVE_LOW>,
<&pioA 10 GPIO_ACTIVE_LOW>,
<&pioA 11 GPIO_ACTIVE_LOW>;
status = "okay";
};
I suspect that it has something to do with the snd_soc_dapm_add_routes call in
linea_pcm512x_init? (I "stole" that piece from omap-abe-twl6040)
Cheers,
Peter
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: linea-pcm512x.c
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20150114/c1a20d97/attachment-0001.c>
More information about the Alsa-devel
mailing list