Due to an influx of spam, we have had to impose restrictions on new accounts. Please see this wiki page for instructions on how to get full permissions. Sorry for the inconvenience.
Admin message
The migration is almost done, at least the rest should happen in the background. There are still a few technical difference between the old cluster and the new ones, and they are summarized in this issue. Please pay attention to the TL:DR at the end of the comment.
On CI_DRM_2993, the machine shard-snb2 produced the following error while running igt@kms_hdmi_inject@inject-audio:
(kms_hdmi_inject:1606) CRITICAL: Test assertion failure function hdmi_inject_audio, file kms_hdmi_inject.c:236:
(kms_hdmi_inject:1606) CRITICAL: Failed assertion: eld_is_valid()
(kms_hdmi_inject:1606) CRITICAL: Last errno: 2, No such file or directory
(kms_hdmi_inject:1543) CRITICAL: Test assertion failure function hdmi_inject_audio, file kms_hdmi_inject.c:236:
(kms_hdmi_inject:1543) CRITICAL: Failed assertion: eld_is_valid()
(kms_hdmi_inject:1543) CRITICAL: Last errno: 2, No such file or directory
Subtest inject-audio failed.
(kms_hdmi_inject:1707) CRITICAL: Test assertion failure function hdmi_inject_audio, file ../tests/kms_hdmi_inject.c:236:
(kms_hdmi_inject:1707) CRITICAL: Failed assertion: eld_is_valid()
(kms_hdmi_inject:1707) CRITICAL: Last errno: 2, No such file or directory
Subtest inject-audio failed.
(kms_hdmi_inject:2853) CRITICAL: Test assertion failure function hdmi_inject_audio, file ../tests/kms_hdmi_inject.c:236:
(kms_hdmi_inject:2853) CRITICAL: Failed assertion: eld_is_valid()
(kms_hdmi_inject:2853) CRITICAL: Last errno: 2, No such file or directory
Subtest inject-audio failed.
(kms_hdmi_inject:1272) CRITICAL: Test assertion failure function hdmi_inject_audio, file ../tests/kms_hdmi_inject.c:236:
(kms_hdmi_inject:1272) CRITICAL: Failed assertion: eld_is_valid()
(kms_hdmi_inject:1272) CRITICAL: Last errno: 2, No such file or directory
Subtest inject-audio failed.
This issue is still reproducible on ICL U, errors are in attachments.
(kms_hdmi_inject:5266) CRITICAL: Test assertion failure function hdmi_inject_audio, file ../tests/kms_hdmi_inject.c:236:
(But the kernel seems to happily expose the audio sink on some platforms since the test doesn't always fail? But maybe this is a kernel workaround for bad EDIDs?)
The test will pick the first disconnected HDMI-A connector, force an EDID on it, and check it appears as an ELD in one of the audio cards.
It would help to add more debug information to eld_entry_is_igt and eld_is_valid.
The tests tries to check if we have valid eld in sound systems /proc/asound/HDMI. Some monitors doesn't support audio so the test first reads EDID from the monitors and then forces audio support on that EDID and computes a new checksum. Finally, this EDID is forced to use.
The display connector is forced on and the test checks afterwards if we have valid eld on /proc/asound/HDMI/eld#0.0.
This test seems to fail because we are not able to register pins such as
snd_hda_codec_hdmi hdaudioC0D2: HDMI: pin nid 5 not registered
At the moment the test is not very useful. We can play audio, for example,
with aplay but the test is unable to find a valid ELD.
I'm not sure I understand.
The test checks that ALSA correctly parses EDIDs that advertise audio support. What do you mean by "We can play audio, for example, with aplay"? Playing audio during the injection test isn't very helpful, because we have no way to know it works. Playing audio on a disconnected connector just discards the signal.
I mean we can play audio with aplay if we have such a monitor connected that has speakers. With the same setup the IGT test case 'kms_hdmi_inject --run-subtest inject-audio' fails. Based on this it seems that parsing EDID is erroneous on the IGT test.
I mean we can play audio with aplay if we have such a monitor connected that
has speakers. With the same setup the IGT test case 'kms_hdmi_inject
--run-subtest inject-audio' fails. Based on this it seems that parsing EDID
is erroneous on the IGT test.
I don't think so, because it just werks™ on some other hardware.
I forgot to mention that this was discovered, when we were looking audio issues. The first thought, of course, was that there really is an audio issue. This turned out to be not true as aplay can play audio just fine. Therefore, I think this is more a test issue.
A CI Bug Log filter associated to this bug has been updated:
all machines: igt@kms_hdmi_inject@inject-audio - fail - Failed assertion: eld_has_igt() all machines: igt@kms_hdmi_inject@inject-audio - fail - Found zero ELDs
This issue is still hit daily. Updated the filters to remove the one matching old logs (not hit for 2 months).
Interesting excerpts from the (improved) logs: below. It seems that the DRM side correctly recognizes the monitor, but the ALSA side doesn't expose the ELD correctly.
(kms_hdmi_inject:3938) igt_eld-DEBUG: Found zero ELDs
<7> [1480.969399] [drm:drm_detect_monitor_audio] Monitor has basic audio support <7> [1480.969406] [drm:drm_add_edid_modes] ELD monitor IGT
We've seen cases in which /proc/asound doesn't exist (e.g. with the new SOF
framework). We've also seen cases in which no soundcard is exposed by ALSA (see
bugzilla link). Last, some audio drivers din't support ELDs (non-Intel
drivers). In all of these cases, skipping the tests depending on ELD support
makes more sense and makes it clearer what happens.
v2: also check that the driver supports ELDs entries in procfs