[alsa-devel] No sound for several minutes after reboot

Takashi Iwai tiwai at suse.de
Tue Aug 30 11:03:27 CEST 2016


On Tue, 30 Aug 2016 10:32:01 +0200,
Markus Trippelsdorf wrote:
> 
> On 2016.08.30 at 10:04 +0200, Takashi Iwai wrote:
> > On Mon, 29 Aug 2016 16:02:33 +0200,
> > Markus Trippelsdorf wrote:
> > > 
> > > On 2016.08.29 at 14:06 +0200, Markus Trippelsdorf wrote:
> > > > On 2016.08.29 at 11:32 +0200, Takashi Iwai wrote:
> > > > > On Mon, 29 Aug 2016 11:20:47 +0200,
> > > > > Markus Trippelsdorf wrote:
> > > >  output:ALSA def-222   [003] ....   422.035002: hda_send_cmd: [0000:00:14.2:0] val=0x01570d01
> > > >  output:ALSA def-222   [003] ....   422.035061: hda_get_response: [0000:00:14.2:0] val=0x00000000
> > > 
> > > Actually it right here that sound starts again:
> > > 
> > > markus at x4 hda-emu % ./a.out 0x01570d01
> > > raw value = 0x01570d01
> > > cid = 0, nid = 0x15, verb = 0x70d, parm = 0x01
> > > raw value: verb = 0x70d, parm = 0x1
> > > verbname = set_digi_cvt_1
> > 
> > So, the program itself sets the value.  Which sound backend are you
> > using?  PulseAudio, whatever?
> 
> No backend at all. I use mpd directly on type hw:
> 
> pcm.!default {
>   type hw
>   card 0
>   device 3
> }

Hmm, it's assigned to device 3?
This was supposed to be assigned to HDMI/DP.

In anyway, for device 3, you can use

  pcm.!default "hdmi:0"

Then the IEC958 status parameter is set via alsa-lib properly.


Takashi

> 
> > Basically you need to track the verb 0x01570dXX that changes the
> > digital converter parameter.
> > 
> > When the driver was loaded and initialized, what value does the node
> > have?  Also check the raw ctl elements, too.  The value is controlled
> > via "IEC958 Status" controls.  If the value at the init time is wrong,
> > you may set the initial value via "iecset" program included in
> > alsa-utils.
> 
> The driver is build directly into my monolithic kernel (I don't have
> modules enabled at all).
> At boot time I run "alsactl restore" in an init script.
> alsamixer shows that S/PDIF is unmuted, but as I wrote it doesn't work
> for several minutes. If I toggle the S/PDIF setting in alsamixer from
> unmuted to muted to unmuted then sounds starts working.
> 
> Anyway:
>  /usr/bin/hda-verb /dev/snd/hwC0D0 0x15 SET_DIGI_CONVERT_1 0x01 &> /dev/null
> works fine in my init script, so the issue is solved for me.
> 
> Thanks.
> 
> -- 
> Markus
> 


More information about the Alsa-devel mailing list