[alsa-devel] [PATCH 0/4] A few more extensions to LPE audio driver

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Mon Feb 13 23:56:36 CET 2017



On 02/13/2017 08:39 AM, Takashi Iwai wrote:
> Hi,
>
> Linus decided to take another week for 4.11 merge window, so I could
> play a bit more, and here is the result :)
>
> The first patch is the fix for possible GPU hang, and this has been
> for a while in my local branch and tested.  This should be OK to merge
> soon.  (It's also as same as what Ian tested in the last weekend.)
>
> The next one is merely a cleanup patch, so it's fine, too.  The third
> one is a transition to use the runtime PM autosuspend, and it's a
> preliminary for the last change.
>
> The last one is the new and experimental one: it enables the keep-link
> feature.  With this patch, the device is managed as default via
> autosuspend, and the link is opened (but silenced) for the pre-given
> time (2 seconds) after the PCM close.  If the application restarts the
> stream quickly, the receiver is still warm and can resume gracefully.
>
> All these patches are found in topic/intel-lpe-audio branch.
> (BTW, I cleaned up my branches: now for-next branch tracks the latest
>   stable patches to be merged, while topic/intel-lpe-audio branch
>   tracks the experimental patches.  Beware that the latter may be
>   rebased frequently.)
I tried this topic/intel-lpe-audio branch on my Baytrail compute stick 
and CHT boards and I see a couple of problems while monkey testing.

1. PulseAudio fails to load the HDMI card on startup on the Compute 
Stick and only shows the dummy output, killing and restarting PulseAudio 
solves the problem. I had not seen this before and this doesn't happen 
on CHT devices, not sure if this a pulseaudio problem?

2. we had a set of errors in the past that are still present, i see them 
100% of the time:
E: [alsa-sink-HdmiLpeAudio] alsa-sink.c: ALSA woke us up to write new 
data to the device, but there was a
ctually nothing to write!
E: [alsa-sink-HdmiLpeAudio] alsa-sink.c: Most likely this is a bug in 
the ALSA driver 'snd_hdmi_lpe_audio
'. Please report this issue to the ALSA developers.
E: [alsa-sink-HdmiLpeAudio] alsa-sink.c: We were woken up with POLLOUT 
set -- however a subsequent snd_pc
m_avail() returned 0 or another value < min_avail.

3. the third one is new, we have something wrong with the pointer 
management. This happened only once in my tests but still, not sure how 
it was introduced.

E: [alsa-sink-HdmiLpeAudio] alsa-util.c: snd_pcm_avail() returned a 
value that is exceptionally large: 13
6128 bytes (709 ms).
E: [alsa-sink-HdmiLpeAudio] alsa-util.c: Most likely this is a bug in 
the ALSA driver 'snd_hdmi_lpe_audio
'. Please report this issue to the ALSA developers.
E: [alsa-sink-HdmiLpeAudio] alsa-util.c: snd_pcm_dump():
E: [alsa-sink-HdmiLpeAudio] alsa-util.c: Hardware PCM card 0 'Intel 
HDMI/DP LPE Audio' device 0 subdevice
  0
E: [alsa-sink-HdmiLpeAudio] alsa-util.c: Its setup is:
E: [alsa-sink-HdmiLpeAudio] alsa-util.c:   stream       : PLAYBACK
E: [alsa-sink-HdmiLpeAudio] alsa-util.c:   access       : MMAP_INTERLEAVED
E: [alsa-sink-HdmiLpeAudio] alsa-util.c:   format       : S16_LE
E: [alsa-sink-HdmiLpeAudio] alsa-util.c:   subformat    : STD
E: [alsa-sink-HdmiLpeAudio] alsa-util.c:   channels     : 2
E: [alsa-sink-HdmiLpeAudio] alsa-util.c:   rate         : 48000
E: [alsa-sink-HdmiLpeAudio] alsa-util.c:   exact rate   : 48000 (48000/1)
E: [alsa-sink-HdmiLpeAudio] alsa-util.c:   msbits       : 16
E: [alsa-sink-HdmiLpeAudio] alsa-util.c:   buffer_size  : 3840
E: [alsa-sink-HdmiLpeAudio] alsa-util.c:   period_size  : 480
E: [alsa-sink-HdmiLpeAudio] alsa-util.c:   period_time  : 10000
E: [alsa-sink-HdmiLpeAudio] alsa-util.c:   tstamp_mode  : ENABLE
E: [alsa-sink-HdmiLpeAudio] alsa-util.c:   period_step  : 1
E: [alsa-sink-HdmiLpeAudio] alsa-util.c:   avail_min    : 480
E: [alsa-sink-HdmiLpeAudio] alsa-util.c:   period_event : 1
E: [alsa-sink-HdmiLpeAudio] alsa-util.c:   start_threshold  : -1
E: [alsa-sink-HdmiLpeAudio] alsa-util.c:   stop_threshold   : 
8646911284551352320
E: [alsa-sink-HdmiLpeAudio] alsa-util.c:   silence_threshold: 0
E: [alsa-sink-HdmiLpeAudio] alsa-util.c:   silence_size : 0
E: [alsa-sink-HdmiLpeAudio] alsa-util.c:   boundary     : 
8646911284551352320
E: [alsa-sink-HdmiLpeAudio] alsa-util.c:   appl_ptr     : 301456
E: [alsa-sink-HdmiLpeAudio] alsa-util.c:   hw_ptr       : 331680

Indeed this looks like a wrap-around?

4. the keep-link thing doesn't seem to work for me. Once PulseAudio 
suspends the output, if I try to play a short notification I lose the 
first second (as in hearing only 'left' in 'front left', as in with the 
first sound I play. I even increased the threshold to 10s and still no 
joy. Could there be a higher level suspend that turns the link off?

5. if I change the display resolution while playing a sound through 
hw:0, at the ALSA level the playback stops with all sorts of bad 
descriptor errors, which is fine. If I play through PulseAudio the card 
is unloaded when the resolution is changed and the sound keeps playing 
but to the dummy output. PulseAudio needs to be killed and restarted to 
play sound again over HDMI. Wondering if this is the same problem as for 
the first case, PulseAudio not able to digest a uevent when a card is 
created?

6. if I remove the HDMI output and reinsert it, PulseAudio again fails 
to detect. I have to kill pulseaudio and restart it. I also saw this log 
during plug/unplug
W: [alsa-sink-HdmiLpeAudio] alsa-util.c: Could not recover from 
POLLERR|POLLNVAL|POLLHUP with snd_pcm_pre
pare(): No such device

7. I can't get the multichannel sound to work, anything with more that 
2ch is silent except for FR and FL. Playback keeps going but only 2 
channels are playing. Not sure if this is my receiver sending bad ELD 
information or just that the hw_params are not limited to the 
capabilities of the display.

Overall it's pretty robust though compared to the legacy patches, except 
for the pulseaudio detection issue there was never a moment where I had 
to reboot or do something drastic to recover. Thanks for all your work 
Takashi!



More information about the Alsa-devel mailing list