Re: snd_hda_codec_hdmi: `hdaudio hdaudioC0D2: Unable to bind the codec`

From: Takashi Iwai
Date: Thu Feb 14 2019 - 11:07:03 EST


On Thu, 14 Feb 2019 17:00:29 +0100,
Paul Menzel wrote:
>
> Dear Takashi,
>
>
> On 02/13/19 16:56, Takashi Iwai wrote:
> > On Wed, 13 Feb 2019 16:42:19 +0100,
> > Paul Menzel wrote:
>
> >> On 02/13/19 16:12, Takashi Iwai wrote:
> >>> On Wed, 13 Feb 2019 15:58:44 +0100,
> >>> Paul Menzel wrote:
> >>>>
> >>>>> Why the i915 driver gets initialized *so late*?
> >>>>
> >>>> Maybe, because itâs built as a module?
> >>>>
> >>>> ```
> >>>> $ grep I915 /boot/config-4.20.8.mx64.245
> >>>> CONFIG_DRM_I915=m
> >>>> # CONFIG_DRM_I915_ALPHA_SUPPORT is not set
> >>>> CONFIG_DRM_I915_CAPTURE_ERROR=y
> >>>> CONFIG_DRM_I915_COMPRESS_ERROR=y
> >>>> CONFIG_DRM_I915_USERPTR=y
> >>>> # CONFIG_DRM_I915_GVT is not set
> >>>> CONFIG_SND_HDA_I915=y
> >>>> ```
> >>>
> >>> That explains. You built the HD-audio as built-in while the graphics
> >>> as module. This makes the binding impossible at the time of sound
> >>> driver initialization.
> >>>
> >>> If you build the graphics driver as a module, built the sound driver
> >>> also as a module.
>
> I tried that now, but `SND_HDA_I915` is just a boolean and no tristate.
>
> config SND_HDA_I915
> bool
> select SND_HDA_COMPONENT

It's not user-choosable in anyway.

> Then, I built the HDA subsystem as a module, but that also did not help.
> The DRM subsystem is started after the HD-audio subsystem.
>
> ```
> $ grep -e SND_HDA= -e SND_HDA_INTEL /boot/config-4.20.8.mx64.245
> CONFIG_SND_HDA=m
> CONFIG_SND_HDA_INTEL=m

That's odd. In sound/hda/hdac_i915.c there is an explicit
request_module("i915"), and at that point, it has a 10 second
timeout. If this isn't enough, try to raise the number, e.g. 60
seconds.


thanks,

Takashi