Onboard HDA/ALC898 works only after 60 second delay after booting

Shapeshifter <[email protected]>
Newsgroups gmane.linux.alsa.user
Message-ID <[email protected]>
Hi,

some months ago, presumably after a kernel update, my system (archlinux)
started having the following problem.

After booting, it takes pretty much exactly 1 minute for the HDA Intel
PCH / Realtek ALC898 audio card and devices to become available.

Here's dmesg | grep snd:

###################################
[    3.084363] snd_hda_intel 0000:00:1b.0: enabling device (0000 -> 0002)
[    3.084614] snd_hda_intel 0000:01:00.1: enabling device (0000 -> 0002)
[    3.084660] snd_hda_intel 0000:01:00.1: Disabling MSI
[    3.084665] snd_hda_intel 0000:01:00.1: Handle vga_switcheroo audio
client
[   64.559641] snd_hda_intel 0000:00:1b.0: couldn't bind with audio
component
[   64.590246] snd_hda_codec_realtek hdaudioC0D0: autoconfig for ALC898:
line_outs=3 (0x14/0x15/0x16/0x0/0x0) type:line
[   64.590248] snd_hda_codec_realtek hdaudioC0D0:    speaker_outs=0
(0x0/0x0/0x0/0x0/0x0)
[   64.590249] snd_hda_codec_realtek hdaudioC0D0:    hp_outs=1
(0x1b/0x0/0x0/0x0/0x0)
[   64.590250] snd_hda_codec_realtek hdaudioC0D0:    mono: mono_out=0x0
[   64.590251] snd_hda_codec_realtek hdaudioC0D0:    dig-out=0x1e/0x0
[   64.590251] snd_hda_codec_realtek hdaudioC0D0:    inputs:
[   64.590252] snd_hda_codec_realtek hdaudioC0D0:      Front Mic=0x19
[   64.590253] snd_hda_codec_realtek hdaudioC0D0:      Rear Mic=0x18
[   64.590254] snd_hda_codec_realtek hdaudioC0D0:      Line=0x1a
###################################

At the 64 second mark, in this case, sound starts working correctly.

Here's lsmod | grep snd before sound starts working:

###################################
snd_hda_codec_hdmi     73728  1
snd_hda_intel          53248  0
snd_intel_dspcfg       28672  1 snd_hda_intel
snd_hda_codec         167936  2 snd_hda_codec_hdmi,snd_hda_intel
snd_hda_core          106496  3
snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
snd_hwdep              16384  1 snd_hda_codec
snd_pcm               147456  4
snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
snd_timer              45056  1 snd_pcm
snd                   114688  6
snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_timer,snd_pcm
soundcore              16384  1 snd
###################################

and after:

###################################
snd_hda_codec_realtek   135168  1
snd_hda_codec_generic    98304  1 snd_hda_codec_realtek
ledtrig_audio          16384  2 snd_hda_codec_generic,snd_hda_codec_realtek
snd_hda_codec_hdmi     73728  1
snd_hda_intel          53248  5
snd_intel_dspcfg       28672  1 snd_hda_intel
snd_hda_codec         167936  4
snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
snd_hda_core          106496  5
snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
snd_hwdep              16384  1 snd_hda_codec
snd_pcm               147456  6
snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
snd_timer              45056  3 snd_pcm
snd                   114688  14
snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm
soundcore              16384  1 snd
###################################

Here's aplay -l before sound starts working:

###################################
**** List of PLAYBACK Hardware Devices ****
card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 10: HDMI 4 [HDMI 4]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 11: HDMI 5 [HDMI 5]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 12: HDMI 6 [HDMI 6]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
###################################

and after:

###################################
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC898 Analog [ALC898 Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC898 Digital [ALC898 Digital]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 10: HDMI 4 [HDMI 4]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 11: HDMI 5 [HDMI 5]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 12: HDMI 6 [HDMI 6]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
###################################

The output of cat /proc/asound/modules before 60 seconds:

###################################
 1 snd_hda_intel
###################################

and after:

###################################
 0 snd_hda_intel
 1 snd_hda_intel
###################################

I tried adding snd_hda_codec_realtek to /etc/modules-load.d/snd.conf, in
which case lsmod | grep snd will be on boot exactly like after the 60
seconds, but I still have no sound and no ALC898 devices in aplay -l.

The journal contains nothing of interest, except that after the 60
seconds, it will print

###################################
Aug 13 01:11:20 machine kernel: snd_hda_intel 0000:00:1b.0: couldn't
bind with audio component
Aug 13 01:11:20 machine kernel: snd_hda_codec_realtek hdaudioC0D0:
autoconfig for ALC898: line_outs=3 (0x14/0x15/0x16/0x0/0x0) type:line
Aug 13 01:11:20 machine kernel: snd_hda_codec_realtek hdaudioC0D0:
speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
Aug 13 01:11:20 machine kernel: snd_hda_codec_realtek hdaudioC0D0:
hp_outs=1 (0x1b/0x0/0x0/0x0/0x0)
Aug 13 01:11:20 machine kernel: snd_hda_codec_realtek hdaudioC0D0:
mono: mono_out=0x0
Aug 13 01:11:20 machine kernel: snd_hda_codec_realtek hdaudioC0D0:
dig-out=0x1e/0x0
Aug 13 01:11:20 machine kernel: snd_hda_codec_realtek hdaudioC0D0:
inputs:
Aug 13 01:11:20 machine kernel: snd_hda_codec_realtek hdaudioC0D0:
Front Mic=0x19
Aug 13 01:11:20 machine kernel: snd_hda_codec_realtek hdaudioC0D0:
Rear Mic=0x18
Aug 13 01:11:20 machine kernel: snd_hda_codec_realtek hdaudioC0D0:
Line=0x1a
Aug 13 01:11:20 machine systemd[515]: Reached target Sound Card.
Aug 13 01:11:20 machine kernel: input: HDA Digital PCBeep as
/devices/pci0000:00/0000:00:1b.0/sound/card0/input20
Aug 13 01:11:20 machine kernel: input: HDA Intel PCH Front Mic as
/devices/pci0000:00/0000:00:1b.0/sound/card0/input21
Aug 13 01:11:20 machine kernel: input: HDA Intel PCH Rear Mic as
/devices/pci0000:00/0000:00:1b.0/sound/card0/input22
Aug 13 01:11:20 machine kernel: input: HDA Intel PCH Line as
/devices/pci0000:00/0000:00:1b.0/sound/card0/input23
Aug 13 01:11:20 machine kernel: input: HDA Intel PCH Line Out Front as
/devices/pci0000:00/0000:00:1b.0/sound/card0/input24
Aug 13 01:11:20 machine kernel: input: HDA Intel PCH Line Out Surround
as /devices/pci0000:00/0000:00:1b.0/sound/card0/input25
Aug 13 01:11:20 machine kernel: input: HDA Intel PCH Line Out CLFE as
/devices/pci0000:00/0000:00:1b.0/sound/card0/input26
Aug 13 01:11:20 machine kernel: input: HDA Intel PCH Front Headphone as
/devices/pci0000:00/0000:00:1b.0/sound/card0/input27
###################################

This is my asound.conf but it doesn't matter what's in there or if it
exists at all - the problem persists.

###################################
# dmix for analog output
pcm.dmixa {
  type dmix
  ipc_key 1024
  ipc_perm 0666
  slave.pcm "hw:PCH,0"
  slave {
    period_time 0
    period_size 1024
    buffer_size 4096
    channels 2
  }
  bindings {
    0 0
    1 1
  }
}

# dmix for digital output
pcm.dmixd {
  type dmix
  ipc_key 2048
  ipc_perm 0666
  slave.pcm "hw:PCH,1"
  slave {
    period_time 0
    period_size 1024
    buffer_size 4096
    channels 2
  }
  bindings {
    0 0
    1 1
  }
}

# equalizer
pcm.plugequal {
  type equal
  slave {
    pcm "plug:dmixd"
  }
}

# equalizer controls
ctl.equal {
 type equal
}

# Volume control for S/PDIF
pcm.softvol {
    type softvol
    slave.pcm "plug:plugequal"
    control {
        name "S/PDIF"
    }
}

# multi:
# "a" (analog)  -> dmix,
# "d" (digital) -> softvol -> plugequal -> dmix
pcm.quad {
    type multi
    slaves {
      a.pcm "dmixa"
      a.channels 2
      d.pcm "plug:softvol" # detour via softvol and equalizer
      d.channels 2
    }
    bindings {
      0 { slave a; channel 0; }
      1 { slave a; channel 1; }
      2 { slave d; channel 0; }
      3 { slave d; channel 1; }
    }
}

# stereo to quad
pcm.stereo2quad {
  type route
  slave.pcm "quad"
  ttable [
    [ 1 0 1 0 ]
    [ 0 1 0 1 ]
  ]
}

# playback to stereo to quad, capture as usual
pcm.!default {
  type asym
  playback.pcm "plug:stereo2quad"
  capture.pcm "plug:dnsoop"
}
###################################

Any ideas? I don't know how to debug this any further.

Thank you.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.