Bug 94652 - Reloading the module creates two additional playback devices for HDMI.
Summary: Reloading the module creates two additional playback devices for HDMI.
Status: CLOSED NOTABUG
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: DRI git
Hardware: x86-64 (AMD64) All
: medium normal
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-03-21 18:00 UTC by Marius Vlad
Modified: 2017-07-24 22:42 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Marius Vlad 2016-03-21 18:00:49 UTC
Freshly booted machines shows:

$ cat /proc/asound/pcm 
00-03: HDMI 0 : HDMI 0 : playback 1
01-00: ALC662 rev3 Analog : ALC662 rev3 Analog : playback 1 : capture 1
01-02: ALC662 rev3 Alt Analog : ALC662 rev3 Alt Analog : capture 1


$ cat /proc/asound/cards 
 0 [HDMI           ]: HDA-Intel - HDA Intel HDMI
                      HDA Intel HDMI at 0xf7e14000 irq 36
 1 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xf7e10000 irq 35

$ ls -1 /proc/asound/HDMI/
codec#0
eld#0.0
id
pcm3p

Upload reloading i915 module (w/ drv_module_reload) I get:

$ ls -1 /proc/asound/HDMI/
codec#0
eld#0.0
eld#0.1
eld#0.2
id
pcm3p
pcm7p
pcm8p


The following remains the same:

$ cat /proc/asound/cards 
 0 [HDMI           ]: HDA-Intel - HDA Intel HDMI
                      HDA Intel HDMI at 0xf7e14000 irq 36
 1 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xf7e10000 irq 35


$ ls -1 /proc/asound/card0/
codec#0
eld#0.0
eld#0.1
eld#0.2
id
pcm3p
pcm7p
pcm8p

pcm7p and pcm8p and their ELDs are bogus.

If I try to override the EDID, I could check EID-ELD conversion working by
looking at /proc/asound/HDMI/eld#0.0. Upon reloading it seems that /proc/asound/HDMI/eld#0.1 gets filled with ELD information.

Just reloading snd_hda_intel doesn't trigger it. 

Used drm-intel-nightly:

commit 3b8b9e2deb9f23e1a841d0f9d80296a9759ff8f8
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Mon Mar 21 15:04:36 2016 +0200
Comment 1 Takashi Iwai 2016-03-21 19:51:55 UTC
HD-audio driver checks the pin default configuration, and usually BIOS adjusts it.  It implies that, by reloading i915 driver, the pin default configurations of HDMI codec are reset to the system-default, and the extra setup by BIOS is lost.

Enabling all outputs aren't so bad in practice, as PA can handle multiple HDMI streams nowadays.  But, it's certainly an unexpected effect to users (although unloading i915 driver is a rare case for normal users).
Comment 2 Marius Vlad 2016-03-22 11:10:27 UTC
Right, so this isn't a bug, it's just a feature?

Why two additional outputs and not 10, or even 42? The system-default shouldn't be just one? It is customary to have multiple outputs for HDMI and the BIOS to disable the redundant ones? Just trying to make a sense of this :-).

As a side one, the contents of /proc/asound/HDMI/eld#0.0 seems to remain even after forcing a disconnect on the connector. Should I file a bug report for that?
Comment 3 Takashi Iwai 2016-03-22 16:34:12 UTC
(In reply to Marius Vlad from comment #2)
> Right, so this isn't a bug, it's just a feature?

A kind of, yes.
 
> Why two additional outputs and not 10, or even 42?

Because Alpha GO couldn't solve the mystery yet :)

> The system-default
> shouldn't be just one? It is customary to have multiple outputs for HDMI and
> the BIOS to disable the redundant ones? Just trying to make a sense of this
> :-).

Yes, the Intel chips support up to three HDMI/DP outputs, and as chip-default, all these tree are enabled.  But BIOS changes the pin default configurations to match with the actual usage, thus the first boot skips these pins.
 
> As a side one, the contents of /proc/asound/HDMI/eld#0.0 seems to remain
> even after forcing a disconnect on the connector. Should I file a bug report
> for that?

It's a known issue.  The fix was included in my pull request today.
Comment 4 Marius Vlad 2016-03-23 10:10:49 UTC
Thanks for the info :-).


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.