Dear Takashi,
On 02/14/19 17:06, Takashi Iwai wrote:
On Thu, 14 Feb 2019 17:00:29 +0100, Paul Menzel wrote:
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.
Yes, but I read your answer the way, that it could be selected as a module. (Or did not see, how you knew from looking at the pasted config options.)
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.
I tried as you suggested, and increased it to 60 seconds.
sed -i 's/msecs_to_jiffies(10 * 1000))/msecs_to_jiffies(60 * 1000))/' sound/hda/hdac_i915.c
That seems to have fixed it.
``` $ grep _hda_ 20190218–linux_4.20.10–dmesg.txt [ 15.568061] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915]) [ 15.706898] snd_hda_codec_realtek hdaudioC0D0: autoconfig for ALC671: line_outs=1 (0x21/0x0/0x0/0x0/0x0) type:line [ 15.708754] snd_hda_codec_realtek hdaudioC0D0: speaker_outs=1 (0x17/0x0/0x0/0x0/0x0) [ 15.710249] snd_hda_codec_realtek hdaudioC0D0: hp_outs=1 (0x14/0x0/0x0/0x0/0x0) [ 15.712031] snd_hda_codec_realtek hdaudioC0D0: mono: mono_out=0x0 [ 15.712348] snd_hda_codec_realtek hdaudioC0D0: inputs: [ 15.712619] snd_hda_codec_realtek hdaudioC0D0: Front Mic=0x19 [ 15.712929] snd_hda_codec_realtek hdaudioC0D0: Rear Mic=0x18 [ 15.713234] snd_hda_codec_realtek hdaudioC0D0: Line=0x1a ```
So the time-out, needs to be increased.
Kind regards,
Paul