All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t v4 0/9] tests/kms_chamelium: add HDMI audio test
@ 2019-05-15  7:29 Simon Ser
  2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 1/9] tests/kms_chamelium: skip if GetAudioFormat is not supported Simon Ser
                   ` (12 more replies)
  0 siblings, 13 replies; 20+ messages in thread
From: Simon Ser @ 2019-05-15  7:29 UTC (permalink / raw)
  To: igt-dev

Changes from v3 to v4: per CI feedback, checking the error code to figure out
whether the Chamelium device supports a method doesn't work, as the API returns
a generic Python exception error.

Instead, fallback to checking the error message. This is ugly and fragile, but
I don't see a better solution (and it's too late to fix existing Chamelium
devices).

Simon Ser (9):
  tests/kms_chamelium: skip if GetAudioFormat is not supported
  lib/igt_edid: add support for Short Audio Descriptors
  lib/igt_edid: add support for Vendor Specific Data blocks
  lib/igt_chamelium: add CHAMELIUM_DEFAULT_EDID
  tests/kms_chamelium: generate an EDID with audio support
  tests/kms_chamelium: disable >48KHz audio tests
  tests/kms_chamelium: enable audio test on HDMI ports
  tests/kms_chamelium: don't abort audio test on first fail
  HAX: add {dp,hdmi}-audio test to fast-feedback

 lib/igt_chamelium.c                   |  77 ++++++--
 lib/igt_chamelium.h                   |   7 +
 lib/igt_edid.c                        | 113 +++++++++++-
 lib/igt_edid.h                        | 103 ++++++++++-
 tests/intel-ci/fast-feedback.testlist |   2 +
 tests/kms_chamelium.c                 | 246 ++++++++++++++++++--------
 6 files changed, 455 insertions(+), 93 deletions(-)

--
2.21.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [igt-dev] [PATCH i-g-t v4 1/9] tests/kms_chamelium: skip if GetAudioFormat is not supported
  2019-05-15  7:29 [igt-dev] [PATCH i-g-t v4 0/9] tests/kms_chamelium: add HDMI audio test Simon Ser
@ 2019-05-15  7:29 ` Simon Ser
  2019-05-16  7:27   ` [igt-dev] [PATCH i-g-t v5] " Simon Ser
  2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 2/9] lib/igt_edid: add support for Short Audio Descriptors Simon Ser
                   ` (11 subsequent siblings)
  12 siblings, 1 reply; 20+ messages in thread
From: Simon Ser @ 2019-05-15  7:29 UTC (permalink / raw)
  To: igt-dev; +Cc: Petri Latvala

Skip audio tests in case GetAudioFormat is not supported by the Chamelium
device (because it is outdated).

A new __chamelium_rpc function has been introduced. The difference with
chamelium_rpc is that it doesn't asserts that the XML-RPC succeeds.

A new chamelium_supports_get_audio_format function has been introduced. It
tries to call GetAudioFormats with abritrary parameters, and checks whether the
call fails because the method doesn't exist. It is not possible to generalize
it into chamelium_supports_method because some methods might have side-effects
(and the only way to check whether a method exists is to try to call it).

Signed-off-by: Simon Ser <simon.ser@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Arek <arkadiusz.hiler@intel.com>
---
 lib/igt_chamelium.c   | 68 +++++++++++++++++++++++++++++++++++++------
 lib/igt_chamelium.h   |  1 +
 tests/kms_chamelium.c |  5 ++--
 3 files changed, 63 insertions(+), 11 deletions(-)

diff --git a/lib/igt_chamelium.c b/lib/igt_chamelium.c
index 94825002cab3..1d4b6aa9ffd1 100644
--- a/lib/igt_chamelium.c
+++ b/lib/igt_chamelium.c
@@ -265,14 +265,13 @@ static void *chamelium_fsm_mon(void *data)
 	return NULL;
 }
 
-static xmlrpc_value *chamelium_rpc(struct chamelium *chamelium,
-				   struct chamelium_port *fsm_port,
-				   const char *method_name,
-				   const char *format_str,
-				   ...)
+static xmlrpc_value *__chamelium_rpc_va(struct chamelium *chamelium,
+					struct chamelium_port *fsm_port,
+					const char *method_name,
+					const char *format_str,
+					va_list va_args)
 {
-	xmlrpc_value *res;
-	va_list va_args;
+	xmlrpc_value *res = NULL;
 	struct fsm_monitor_args monitor_args;
 	pthread_t fsm_thread_id;
 
@@ -296,17 +295,49 @@ static xmlrpc_value *chamelium_rpc(struct chamelium *chamelium,
 			       &monitor_args);
 	}
 
-	va_start(va_args, format_str);
 	xmlrpc_client_call2f_va(&chamelium->env, chamelium->client,
 				chamelium->url, method_name, format_str, &res,
 				va_args);
-	va_end(va_args);
 
 	if (fsm_port) {
 		pthread_cancel(fsm_thread_id);
 		igt_cleanup_hotplug(monitor_args.mon);
 	}
 
+	return res;
+}
+
+static xmlrpc_value *__chamelium_rpc(struct chamelium *chamelium,
+				     struct chamelium_port *fsm_port,
+				     const char *method_name,
+				     const char *format_str,
+				     ...)
+{
+	xmlrpc_value *res;
+	va_list va_args;
+
+	va_start(va_args, format_str);
+	res = __chamelium_rpc_va(chamelium, fsm_port, method_name,
+				 format_str, va_args);
+	va_end(va_args);
+
+	return res;
+}
+
+static xmlrpc_value *chamelium_rpc(struct chamelium *chamelium,
+				   struct chamelium_port *fsm_port,
+				   const char *method_name,
+				   const char *format_str,
+				   ...)
+{
+	xmlrpc_value *res;
+	va_list va_args;
+
+	va_start(va_args, format_str);
+	res = __chamelium_rpc_va(chamelium, fsm_port, method_name,
+				 format_str, va_args);
+	va_end(va_args);
+
 	igt_assert_f(!chamelium->env.fault_occurred,
 		     "Chamelium RPC call failed: %s\n",
 		     chamelium->env.fault_string);
@@ -1031,6 +1062,25 @@ void chamelium_get_audio_format(struct chamelium *chamelium,
 	xmlrpc_DECREF(res);
 }
 
+/**
+ * chamelium_supports_get_audio_format: check the Chamelium device supports
+ * retrieving the capture audio format.
+ */
+bool chamelium_supports_get_audio_format(struct chamelium *chamelium)
+{
+	xmlrpc_value *res;
+
+	res = __chamelium_rpc(chamelium, NULL, "GetAudioFormat", "(i)", 3);
+	if (res)
+		xmlrpc_DECREF(res);
+
+	/* XML-RPC has a special code for unsupported methods
+	 * (XMLRPC_NO_SUCH_METHOD_ERROR) however the Chamelium implementation
+	 * doesn't return it. */
+	return (!chamelium->env.fault_occurred ||
+		strstr(chamelium->env.fault_string, "not supported") == NULL);
+}
+
 /**
  * chamelium_start_capturing_audio:
  * @chamelium: the Chamelium instance
diff --git a/lib/igt_chamelium.h b/lib/igt_chamelium.h
index a067c888c0ff..ba44a44d6d8f 100644
--- a/lib/igt_chamelium.h
+++ b/lib/igt_chamelium.h
@@ -114,6 +114,7 @@ void chamelium_get_audio_channel_mapping(struct chamelium *chamelium,
 void chamelium_get_audio_format(struct chamelium *chamelium,
 				struct chamelium_port *port,
 				int *rate, int *channels);
+bool chamelium_supports_get_audio_format(struct chamelium *chamelium);
 void chamelium_start_capturing_audio(struct chamelium *chamelium,
 				    struct chamelium_port *port, bool save_to_file);
 struct chamelium_audio_file *chamelium_stop_capturing_audio(struct chamelium *chamelium,
diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c
index 7c3006982abd..c2d5793a41c5 100644
--- a/tests/kms_chamelium.c
+++ b/tests/kms_chamelium.c
@@ -1033,9 +1033,10 @@ test_display_audio(data_t *data, struct chamelium_port *port,
 
 	igt_require(alsa_has_exclusive_access());
 
-	/* Old Chamelium devices need an update for DisplayPort audio
-	 * support. */
+	/* Old Chamelium devices need an update for DisplayPort audio and
+	 * chamelium_get_audio_format support. */
 	igt_require(chamelium_has_audio_support(data->chamelium, port));
+	igt_require(chamelium_supports_get_audio_format(data->chamelium));
 
 	alsa = alsa_init();
 	igt_assert(alsa);
-- 
2.21.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [igt-dev] [PATCH i-g-t v4 2/9] lib/igt_edid: add support for Short Audio Descriptors
  2019-05-15  7:29 [igt-dev] [PATCH i-g-t v4 0/9] tests/kms_chamelium: add HDMI audio test Simon Ser
  2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 1/9] tests/kms_chamelium: skip if GetAudioFormat is not supported Simon Ser
@ 2019-05-15  7:29 ` Simon Ser
  2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 3/9] lib/igt_edid: add support for Vendor Specific Data blocks Simon Ser
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Simon Ser @ 2019-05-15  7:29 UTC (permalink / raw)
  To: igt-dev

Short Audio Descriptors (SADs) can be wrapped in an EDID extension to advertise
audio support.

The EDID structure is as follows:
- The 128-byte EDID block contains a field with the number of 128-byte
  extension blocks that follow.
- Each extension block has a tag which specifies its type. The tag we're
  interested in is CEA-861.
- The CEA block has a few flags, including one that indicates whether basic
  audio is supported. The CEA block contains several sub-blocks of variable
  size. There are two types of CEA sub-blocks:
  - Detailed Timing Descriptors (DTDs): additional video timings
  - Data Block Collection: these can detail video, audio, speaker placement and
    other pieces of information about the display.
  We're interested in audio blocks.
- Audio blocks contain one or more Short Audio Descriptors (SADs). A SAD is a
  3-byte record describing a supported format.
- SADs can describe support for the PCM format, including sampling rate,
  sample size and channels.

The igt_edid library intentionally exposes all of this complexity because it
would be nice to generate all kind of valid EDIDs and test the kernel handles
them correctly (e.g. multiple SADs in different CEA blocks, or any EDID we find
in the wild really).

Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 lib/igt_edid.c | 71 +++++++++++++++++++++++++++++++++++++-----
 lib/igt_edid.h | 84 ++++++++++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 145 insertions(+), 10 deletions(-)

diff --git a/lib/igt_edid.c b/lib/igt_edid.c
index 9d604b13c4d6..d01defb0925e 100644
--- a/lib/igt_edid.c
+++ b/lib/igt_edid.c
@@ -252,19 +252,74 @@ void edid_init_with_mode(struct edid *edid, drmModeModeInfo *mode)
 				   EDID_DETAIL_MONITOR_NAME, "IGT");
 }
 
+static uint8_t compute_checksum(const uint8_t *buf, size_t size)
+{
+	size_t i;
+	uint8_t sum = 0;
+
+	assert(size > 0);
+	for (i = 0; i < size - 1; i++) {
+		sum += buf[i];
+	}
+
+	return 256 - sum;
+}
+
 /**
  * edid_update_checksum: compute and update the EDID checksum
  */
 void edid_update_checksum(struct edid *edid)
 {
-	size_t i;
-	const uint8_t *buf = (const uint8_t *) edid;
-	uint8_t sum = 0;
+	edid->checksum = compute_checksum((uint8_t *) edid,
+					  sizeof(struct edid));
+}
 
-	/* calculate checksum */
-	for (i = 0; i < sizeof(struct edid) - 1; i++) {
-		sum = sum + buf[i];
-	}
+/**
+ * cea_sad_init_pcm:
+ * @channels: the number of supported channels (max. 8)
+ * @sampling_rates: bitfield of enum cea_sad_sampling_rate
+ * @sample_sizes: bitfield of enum cea_sad_pcm_sample_size
+ *
+ * Initialize a Short Audio Descriptor to advertise PCM support.
+ */
+void cea_sad_init_pcm(struct cea_sad *sad, int channels,
+		      uint8_t sampling_rates, uint8_t sample_sizes)
+{
+	assert(channels <= 8);
+	sad->format_channels = CEA_SAD_FORMAT_PCM << 3 | (channels - 1);
+	sad->sampling_rates = sampling_rates;
+	sad->bitrate = sample_sizes;
+}
+
+/**
+ * edid_ext_set_cea_sad: set an extension block to be CEA SAD
+ */
+void edid_ext_set_cea_sad(struct edid_ext *ext, const struct cea_sad *sads,
+			  size_t sads_len)
+{
+	struct edid_cea *cea = &ext->data.cea;
+	struct edid_cea_data_block *data_block;
+	size_t sads_size, data_block_size;
 
-	edid->checksum = 256 - sum;
+	memset(ext, 0, sizeof(struct edid_ext));
+
+	sads_size = sizeof(struct cea_sad) * sads_len;
+	data_block_size = sizeof(struct edid_cea_data_block) + sads_size;
+
+	ext->tag = EDID_EXT_CEA;
+
+	cea->revision = 3;
+	cea->dtd_start = 4 + data_block_size;
+	cea->misc = 1 << 6; /* basic audio, no DTD */
+
+	assert(sads_size <= 0xFF);
+	data_block = (struct edid_cea_data_block *) cea->data;
+	data_block->type_len = EDID_CEA_DATA_AUDIO << 5 | sads_size;
+	memcpy(data_block->data.sads, sads, sads_size);
+}
+
+void edid_ext_update_cea_checksum(struct edid_ext *ext)
+{
+	ext->data.cea.checksum = compute_checksum((uint8_t *) ext,
+						  sizeof(struct edid_ext));
 }
diff --git a/lib/igt_edid.h b/lib/igt_edid.h
index 36eec7e9dedb..3668d733f06a 100644
--- a/lib/igt_edid.h
+++ b/lib/igt_edid.h
@@ -148,6 +148,80 @@ struct detailed_timing {
 	} data;
 } __attribute__((packed));
 
+enum cea_sad_format {
+	CEA_SAD_FORMAT_PCM = 1,
+	CEA_SAD_FORMAT_AC3 = 2,
+	CEA_SAD_FORMAT_MPEG1 = 3, /* Layers 1 & 2 */
+	CEA_SAD_FORMAT_MP3 = 4,
+	CEA_SAD_FORMAT_MPEG2 = 5,
+	CEA_SAD_FORMAT_AAC = 6,
+	CEA_SAD_FORMAT_DTS = 7,
+	CEA_SAD_FORMAT_ATRAC = 8,
+	CEA_SAD_FORMAT_SACD = 9, /* One-bit audio */
+	CEA_SAD_FORMAT_DD_PLUS = 10,
+	CEA_SAD_FORMAT_DTS_HD = 11,
+	CEA_SAD_FORMAT_DOLBY = 12, /* MLP/Dolby TrueHD */
+	CEA_SAD_FORMAT_DST = 13,
+	CEA_SAD_FORMAT_WMA = 14, /* Microsoft WMA Pro */
+};
+
+enum cea_sad_sampling_rate {
+	CEA_SAD_SAMPLING_RATE_32KHZ = 1 << 0,
+	CEA_SAD_SAMPLING_RATE_44KHZ = 1 << 1,
+	CEA_SAD_SAMPLING_RATE_48KHZ = 1 << 2,
+	CEA_SAD_SAMPLING_RATE_88KHZ = 1 << 3,
+	CEA_SAD_SAMPLING_RATE_96KHZ = 1 << 4,
+	CEA_SAD_SAMPLING_RATE_176KHZ = 1 << 5,
+	CEA_SAD_SAMPLING_RATE_192KHZ = 1 << 6,
+};
+
+/* for PCM only */
+enum cea_sad_pcm_sample_size {
+	CEA_SAD_SAMPLE_SIZE_16 = 1 << 0,
+	CEA_SAD_SAMPLE_SIZE_20 = 1 << 1,
+	CEA_SAD_SAMPLE_SIZE_24 = 1 << 2,
+};
+
+/* Short Audio Descriptor */
+struct cea_sad {
+	uint8_t format_channels;
+	uint8_t sampling_rates;
+	uint8_t bitrate;
+} __attribute__((packed));
+
+enum edid_cea_data_type {
+	EDID_CEA_DATA_AUDIO = 1,
+	EDID_CEA_DATA_VIDEO = 2,
+	EDID_CEA_DATA_VENDOR_SPECIFIC = 3,
+	EDID_CEA_DATA_SPEAKER_ALLOC = 4,
+};
+
+struct edid_cea_data_block {
+	uint8_t type_len; /* type is from enum edid_cea_data_type */
+	union {
+		struct cea_sad sads[0];
+	} data;
+} __attribute__((packed));
+
+struct edid_cea {
+	uint8_t revision;
+	uint8_t dtd_start;
+	uint8_t misc;
+	char data[123]; /* DBC & DTD collection, padded with zeros */
+	uint8_t checksum;
+} __attribute__((packed));
+
+enum edid_ext_tag {
+	EDID_EXT_CEA = 0x02,
+};
+
+struct edid_ext {
+	uint8_t tag; /* enum edid_ext_tag */
+	union {
+		struct edid_cea cea;
+	} data;
+} __attribute__((packed));
+
 struct edid {
 	char header[8];
 	/* Vendor & product info */
@@ -183,9 +257,9 @@ struct edid {
 	/* Detailing timings 1-4 */
 	struct detailed_timing detailed_timings[DETAILED_TIMINGS_LEN];
 	/* Number of 128 byte ext. blocks */
-	uint8_t extensions;
-	/* Checksum */
+	uint8_t extensions_len;
 	uint8_t checksum;
+	struct edid_ext extensions[];
 } __attribute__((packed));
 
 void edid_init(struct edid *edid);
@@ -199,4 +273,10 @@ void detailed_timing_set_string(struct detailed_timing *dt,
 				enum detailed_non_pixel_type type,
 				const char *str);
 
+void cea_sad_init_pcm(struct cea_sad *sad, int channels,
+		      uint8_t sampling_rates, uint8_t sample_sizes);
+void edid_ext_set_cea_sad(struct edid_ext *ext, const struct cea_sad *sads,
+			  size_t sads_len);
+void edid_ext_update_cea_checksum(struct edid_ext *ext);
+
 #endif
-- 
2.21.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [igt-dev] [PATCH i-g-t v4 3/9] lib/igt_edid: add support for Vendor Specific Data blocks
  2019-05-15  7:29 [igt-dev] [PATCH i-g-t v4 0/9] tests/kms_chamelium: add HDMI audio test Simon Ser
  2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 1/9] tests/kms_chamelium: skip if GetAudioFormat is not supported Simon Ser
  2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 2/9] lib/igt_edid: add support for Short Audio Descriptors Simon Ser
@ 2019-05-15  7:29 ` Simon Ser
  2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 4/9] lib/igt_chamelium: add CHAMELIUM_DEFAULT_EDID Simon Ser
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Simon Ser @ 2019-05-15  7:29 UTC (permalink / raw)
  To: igt-dev

For some reason HDMI audio won't work unless you cast a magic IEEE Registration
Identifier alongside with its appropriate Components of Source Physical
Address. The easiest way to do this is to capture a wild HDMI EDID, study it,
and blindly copy bytes because you don't understand anything about their
possible meaning (if any).

This commit also changes the SAD API exposed by igt_edid, to allow for both a
SAD block and a VSD block to be included in the same CEA block.

Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 lib/igt_edid.c | 72 +++++++++++++++++++++++++++++++++++++++-----------
 lib/igt_edid.h | 23 ++++++++++++++--
 2 files changed, 78 insertions(+), 17 deletions(-)

diff --git a/lib/igt_edid.c b/lib/igt_edid.c
index d01defb0925e..fbdb0c06b8d7 100644
--- a/lib/igt_edid.c
+++ b/lib/igt_edid.c
@@ -292,30 +292,72 @@ void cea_sad_init_pcm(struct cea_sad *sad, int channels,
 }
 
 /**
- * edid_ext_set_cea_sad: set an extension block to be CEA SAD
+ * cea_vsd_get_hdmi_default:
+ *
+ * Returns the default Vendor Specific Data block for HDMI.
  */
-void edid_ext_set_cea_sad(struct edid_ext *ext, const struct cea_sad *sads,
-			  size_t sads_len)
+const struct cea_vsd *cea_vsd_get_hdmi_default(size_t *size)
 {
-	struct edid_cea *cea = &ext->data.cea;
-	struct edid_cea_data_block *data_block;
-	size_t sads_size, data_block_size;
+	static char raw[sizeof(struct cea_vsd) + 4] = {0};
+	struct cea_vsd *vsd;
+
+	*size = sizeof(raw);
+
+	/* Magic incantation. Works better if you orient your screen in the
+	 * direction of the VESA headquarters. */
+	vsd = (struct cea_vsd *) raw;
+	vsd->ieee_oui[0] = 0x03;
+	vsd->ieee_oui[1] = 0x0C;
+	vsd->ieee_oui[2] = 0x00;
+	vsd->data[0] = 0x10;
+	vsd->data[1] = 0x00;
+	vsd->data[2] = 0x38;
+	vsd->data[3] = 0x2D;
+
+	return vsd;
+}
+
+static void edid_cea_data_block_init(struct edid_cea_data_block *block,
+				     enum edid_cea_data_type type, size_t size)
+{
+	assert(size <= 0xFF);
+	block->type_len = type << 5 | size;
+}
 
-	memset(ext, 0, sizeof(struct edid_ext));
+size_t edid_cea_data_block_set_sad(struct edid_cea_data_block *block,
+				   const struct cea_sad *sads, size_t sads_len)
+{
+	size_t sads_size;
 
 	sads_size = sizeof(struct cea_sad) * sads_len;
-	data_block_size = sizeof(struct edid_cea_data_block) + sads_size;
+	edid_cea_data_block_init(block, EDID_CEA_DATA_AUDIO, sads_size);
+
+	memcpy(block->data.sads, sads, sads_size);
+
+	return sizeof(struct edid_cea_data_block) + sads_size;
+}
+
+size_t edid_cea_data_block_set_vsd(struct edid_cea_data_block *block,
+				   const struct cea_vsd *vsd, size_t vsd_size)
+{
+	edid_cea_data_block_init(block, EDID_CEA_DATA_VENDOR_SPECIFIC,
+				 vsd_size);
+
+	memcpy(block->data.vsds, vsd, vsd_size);
+
+	return sizeof(struct edid_cea_data_block) + vsd_size;
+}
+
+void edid_ext_set_cea(struct edid_ext *ext, size_t data_blocks_size,
+		      uint8_t flags)
+{
+	struct edid_cea *cea = &ext->data.cea;
 
 	ext->tag = EDID_EXT_CEA;
 
 	cea->revision = 3;
-	cea->dtd_start = 4 + data_block_size;
-	cea->misc = 1 << 6; /* basic audio, no DTD */
-
-	assert(sads_size <= 0xFF);
-	data_block = (struct edid_cea_data_block *) cea->data;
-	data_block->type_len = EDID_CEA_DATA_AUDIO << 5 | sads_size;
-	memcpy(data_block->data.sads, sads, sads_size);
+	cea->dtd_start = 4 + data_blocks_size;
+	cea->misc = flags; /* just flags, no DTD */
 }
 
 void edid_ext_update_cea_checksum(struct edid_ext *ext)
diff --git a/lib/igt_edid.h b/lib/igt_edid.h
index 3668d733f06a..7edd7e38f41e 100644
--- a/lib/igt_edid.h
+++ b/lib/igt_edid.h
@@ -189,6 +189,12 @@ struct cea_sad {
 	uint8_t bitrate;
 } __attribute__((packed));
 
+/* Vendor Specific Data */
+struct cea_vsd {
+	uint8_t ieee_oui[3];
+	char data[];
+};
+
 enum edid_cea_data_type {
 	EDID_CEA_DATA_AUDIO = 1,
 	EDID_CEA_DATA_VIDEO = 2,
@@ -200,9 +206,17 @@ struct edid_cea_data_block {
 	uint8_t type_len; /* type is from enum edid_cea_data_type */
 	union {
 		struct cea_sad sads[0];
+		struct cea_vsd vsds[0];
 	} data;
 } __attribute__((packed));
 
+enum edid_cea_flag {
+	EDID_CEA_YCBCR422 = 1 << 4,
+	EDID_CEA_YCBCR444 = 1 << 5,
+	EDID_CEA_BASIC_AUDIO = 1 << 6,
+	EDID_CEA_UNDERSCAN = 1 << 7,
+};
+
 struct edid_cea {
 	uint8_t revision;
 	uint8_t dtd_start;
@@ -275,8 +289,13 @@ void detailed_timing_set_string(struct detailed_timing *dt,
 
 void cea_sad_init_pcm(struct cea_sad *sad, int channels,
 		      uint8_t sampling_rates, uint8_t sample_sizes);
-void edid_ext_set_cea_sad(struct edid_ext *ext, const struct cea_sad *sads,
-			  size_t sads_len);
 void edid_ext_update_cea_checksum(struct edid_ext *ext);
+const struct cea_vsd *cea_vsd_get_hdmi_default(size_t *size);
+size_t edid_cea_data_block_set_sad(struct edid_cea_data_block *block,
+				   const struct cea_sad *sads, size_t sads_len);
+size_t edid_cea_data_block_set_vsd(struct edid_cea_data_block *block,
+				   const struct cea_vsd *vsd, size_t vsd_size);
+void edid_ext_set_cea(struct edid_ext *ext, size_t data_blocks_size,
+		      uint8_t flags);
 
 #endif
-- 
2.21.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [igt-dev] [PATCH i-g-t v4 4/9] lib/igt_chamelium: add CHAMELIUM_DEFAULT_EDID
  2019-05-15  7:29 [igt-dev] [PATCH i-g-t v4 0/9] tests/kms_chamelium: add HDMI audio test Simon Ser
                   ` (2 preceding siblings ...)
  2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 3/9] lib/igt_edid: add support for Vendor Specific Data blocks Simon Ser
@ 2019-05-15  7:29 ` Simon Ser
  2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 5/9] tests/kms_chamelium: generate an EDID with audio support Simon Ser
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Simon Ser @ 2019-05-15  7:29 UTC (permalink / raw)
  To: igt-dev

This ID can be provided to chamelium_port_set_edid to use the default EDID for
the port.

Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 lib/igt_chamelium.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lib/igt_chamelium.h b/lib/igt_chamelium.h
index ba44a44d6d8f..c6fb7b9d4737 100644
--- a/lib/igt_chamelium.h
+++ b/lib/igt_chamelium.h
@@ -59,6 +59,12 @@ struct chamelium_audio_file {
 	int channels;
 };
 
+/**
+ * CHAMELIUM_DEFAULT_EDID: provide this ID to #chamelium_port_set_edid to use
+ * the default EDID.
+ */
+#define CHAMELIUM_DEFAULT_EDID 0
+
 struct chamelium *chamelium_init(int drm_fd);
 void chamelium_deinit(struct chamelium *chamelium);
 void chamelium_reset(struct chamelium *chamelium);
-- 
2.21.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [igt-dev] [PATCH i-g-t v4 5/9] tests/kms_chamelium: generate an EDID with audio support
  2019-05-15  7:29 [igt-dev] [PATCH i-g-t v4 0/9] tests/kms_chamelium: add HDMI audio test Simon Ser
                   ` (3 preceding siblings ...)
  2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 4/9] lib/igt_chamelium: add CHAMELIUM_DEFAULT_EDID Simon Ser
@ 2019-05-15  7:29 ` Simon Ser
  2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 6/9] tests/kms_chamelium: disable >48KHz audio tests Simon Ser
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Simon Ser @ 2019-05-15  7:29 UTC (permalink / raw)
  To: igt-dev

The default Chamelium EDID works great with DisplayPort but has issues with
HDMI. The EDID advertises itself as a DisplayPort-only device, which causes
issues with HDMI audio. Additionally, the EDID doesn't contain a magic
incantation within a vendor-specific data block that is needed for audio to
work.

This patch makes it so an EDID is generated and set by IGT. The EDID is the
base IGT EDID patched to append a Short Audio Descriptor and Vendor Specific
Data block extension.

This generated EDID is suitable for HDMI audio. For DisplayPort audio, we keep
using the Chamelium's default EDID.

A new enum test_edid has been introduced to prevent mismatches between the
Chamelium EDID ID and the raw EDID.

The global variable holding the test frequencies has been renamed to prevent
shadowing by local variables.

Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 lib/igt_chamelium.c   |   9 +-
 tests/kms_chamelium.c | 192 ++++++++++++++++++++++++++++++------------
 2 files changed, 147 insertions(+), 54 deletions(-)

diff --git a/lib/igt_chamelium.c b/lib/igt_chamelium.c
index 1d4b6aa9ffd1..eeab7b84e03a 100644
--- a/lib/igt_chamelium.c
+++ b/lib/igt_chamelium.c
@@ -38,6 +38,7 @@
 #include "igt_chamelium.h"
 #include "igt_core.h"
 #include "igt_aux.h"
+#include "igt_edid.h"
 #include "igt_frame.h"
 #include "igt_list.h"
 #include "igt_kms.h"
@@ -530,14 +531,18 @@ void chamelium_schedule_hpd_toggle(struct chamelium *chamelium,
  *
  * Returns: The ID of the EDID uploaded to the chamelium.
  */
-int chamelium_new_edid(struct chamelium *chamelium, const unsigned char *edid)
+int chamelium_new_edid(struct chamelium *chamelium,
+		       const unsigned char *raw_edid)
 {
 	xmlrpc_value *res;
 	struct chamelium_edid *allocated_edid;
 	int edid_id;
+	struct edid *edid = (struct edid *) raw_edid;
+	size_t edid_size = sizeof(struct edid) +
+			   edid->extensions_len * sizeof(struct edid_ext);
 
 	res = chamelium_rpc(chamelium, NULL, "CreateEdid", "(6)",
-			    edid, EDID_LENGTH);
+			    raw_edid, edid_size);
 
 	xmlrpc_read_int(&chamelium->env, res, &edid_id);
 	xmlrpc_DECREF(res);
diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c
index c2d5793a41c5..6d9d4111ea9b 100644
--- a/tests/kms_chamelium.c
+++ b/tests/kms_chamelium.c
@@ -27,12 +27,20 @@
 #include "config.h"
 #include "igt.h"
 #include "igt_vc4.h"
+#include "igt_edid.h"
 
 #include <fcntl.h>
 #include <pthread.h>
 #include <string.h>
 #include <stdatomic.h>
 
+enum test_edid {
+	TEST_EDID_CHAMELIUM_DEFAULT,
+	TEST_EDID_BASE,
+	TEST_EDID_ALT,
+	TEST_EDID_HDMI_AUDIO,
+};
+
 typedef struct {
 	struct chamelium *chamelium;
 	struct chamelium_port **ports;
@@ -41,8 +49,7 @@ typedef struct {
 
 	int drm_fd;
 
-	int edid_id;
-	int alt_edid_id;
+	int edids[4];
 } data_t;
 
 #define HOTPLUG_TIMEOUT 20 /* seconds */
@@ -255,18 +262,26 @@ test_basic_hotplug(data_t *data, struct chamelium_port *port, int toggle_count)
 	igt_hpd_storm_reset(data->drm_fd);
 }
 
+static const unsigned char *get_edid(enum test_edid edid);
+
+static void set_edid(data_t *data, struct chamelium_port *port,
+		     enum test_edid edid)
+{
+	chamelium_port_set_edid(data->chamelium, port, data->edids[edid]);
+}
+
 static void
-test_edid_read(data_t *data, struct chamelium_port *port,
-	       int edid_id, const unsigned char *edid)
+test_edid_read(data_t *data, struct chamelium_port *port, enum test_edid edid)
 {
 	drmModePropertyBlobPtr edid_blob = NULL;
+	const unsigned char *raw_edid = get_edid(edid);
 	drmModeConnector *connector = chamelium_port_get_connector(
 	    data->chamelium, port, false);
 	uint64_t edid_blob_id;
 
 	reset_state(data, port);
 
-	chamelium_port_set_edid(data->chamelium, port, edid_id);
+	set_edid(data, port, edid);
 	chamelium_plug(data->chamelium, port);
 	wait_for_connector(data, port, DRM_MODE_CONNECTED);
 
@@ -278,7 +293,7 @@ test_edid_read(data_t *data, struct chamelium_port *port,
 	igt_assert(edid_blob = drmModeGetPropertyBlob(data->drm_fd,
 						      edid_blob_id));
 
-	igt_assert(memcmp(edid, edid_blob->data, EDID_LENGTH) == 0);
+	igt_assert(memcmp(raw_edid, edid_blob->data, EDID_LENGTH) == 0);
 
 	drmModeFreePropertyBlob(edid_blob);
 	drmModeFreeConnector(connector);
@@ -406,8 +421,8 @@ static void
 test_suspend_resume_edid_change(data_t *data, struct chamelium_port *port,
 				enum igt_suspend_state state,
 				enum igt_suspend_test test,
-				int edid_id,
-				int alt_edid_id)
+				enum test_edid edid,
+				enum test_edid alt_edid)
 {
 	struct udev_monitor *mon = igt_watch_hotplug();
 	bool link_status_failed[2][data->port_count];
@@ -420,7 +435,7 @@ test_suspend_resume_edid_change(data_t *data, struct chamelium_port *port,
 	igt_flush_hotplugs(mon);
 
 	/* First plug in the port */
-	chamelium_port_set_edid(data->chamelium, port, edid_id);
+	set_edid(data, port, edid);
 	chamelium_plug(data->chamelium, port);
 	igt_assert(igt_hotplug_detected(mon, HOTPLUG_TIMEOUT));
 
@@ -430,7 +445,7 @@ test_suspend_resume_edid_change(data_t *data, struct chamelium_port *port,
 	 * Change the edid before we suspend. On resume, the machine should
 	 * notice the EDID change and fire a hotplug event.
 	 */
-	chamelium_port_set_edid(data->chamelium, port, alt_edid_id);
+	set_edid(data, port, alt_edid);
 
 	get_connectors_link_status_failed(data, link_status_failed[0]);
 
@@ -447,8 +462,7 @@ test_suspend_resume_edid_change(data_t *data, struct chamelium_port *port,
 }
 
 static igt_output_t *
-prepare_output(data_t *data,
-	       struct chamelium_port *port, bool set_edid)
+prepare_output(data_t *data, struct chamelium_port *port, enum test_edid edid)
 {
 	igt_display_t *display = &data->display;
 	igt_output_t *output;
@@ -461,10 +475,10 @@ prepare_output(data_t *data,
 	igt_require(res = drmModeGetResources(data->drm_fd));
 
 	/* The chamelium's default EDID has a lot of resolutions, way more then
-	 * we need to test
+	 * we need to test. Additionally the default EDID doesn't support HDMI
+	 * audio.
 	 */
-	if (set_edid)
-		chamelium_port_set_edid(data->chamelium, port, data->edid_id);
+	set_edid(data, port, edid);
 
 	chamelium_plug(data->chamelium, port);
 	wait_for_connector(data, port, DRM_MODE_CONNECTED);
@@ -649,7 +663,7 @@ static void test_display_one_mode(data_t *data, struct chamelium_port *port,
 
 	reset_state(data, port);
 
-	output = prepare_output(data, port, true);
+	output = prepare_output(data, port, TEST_EDID_BASE);
 	connector = chamelium_port_get_connector(data->chamelium, port, false);
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 	igt_assert(primary);
@@ -680,7 +694,7 @@ static void test_display_all_modes(data_t *data, struct chamelium_port *port,
 
 	reset_state(data, port);
 
-	output = prepare_output(data, port, true);
+	output = prepare_output(data, port, TEST_EDID_BASE);
 	connector = chamelium_port_get_connector(data->chamelium, port, false);
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 	igt_assert(primary);
@@ -715,7 +729,7 @@ test_display_frame_dump(data_t *data, struct chamelium_port *port)
 
 	reset_state(data, port);
 
-	output = prepare_output(data, port, true);
+	output = prepare_output(data, port, TEST_EDID_BASE);
 	connector = chamelium_port_get_connector(data->chamelium, port, false);
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 	igt_assert(primary);
@@ -758,7 +772,7 @@ test_display_frame_dump(data_t *data, struct chamelium_port *port)
 /* A streak of 3 gives confidence that the signal is good. */
 #define MIN_STREAK 3
 
-static int sampling_rates[] = {
+static int test_sampling_rates[] = {
 	32000,
 	44100,
 	48000,
@@ -768,7 +782,7 @@ static int sampling_rates[] = {
 	192000,
 };
 
-static int sampling_rates_count = sizeof(sampling_rates) / sizeof(int);
+static int test_sampling_rates_count = sizeof(test_sampling_rates) / sizeof(int);
 
 static int test_frequencies[] = {
 	300,
@@ -1019,7 +1033,7 @@ do_test_display_audio(data_t *data, struct chamelium_port *port,
 
 static void
 test_display_audio(data_t *data, struct chamelium_port *port,
-		   const char *audio_device)
+		   const char *audio_device, enum test_edid edid)
 {
 	bool run = false;
 	struct alsa *alsa;
@@ -1043,10 +1057,7 @@ test_display_audio(data_t *data, struct chamelium_port *port,
 
 	reset_state(data, port);
 
-	/* Use the default Chamelium EDID for this test, as the base IGT EDID
-	 * doesn't advertise audio support (see drm_detect_monitor_audio in
-	 * the kernel tree). */
-	output = prepare_output(data, port, false);
+	output = prepare_output(data, port, edid);
 	connector = chamelium_port_get_connector(data->chamelium, port, false);
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 	igt_assert(primary);
@@ -1065,14 +1076,14 @@ test_display_audio(data_t *data, struct chamelium_port *port,
 
 	enable_output(data, port, output, mode, &fb);
 
-	for (i = 0; i < sampling_rates_count; i++) {
+	for (i = 0; i < test_sampling_rates_count; i++) {
 		ret = alsa_open_output(alsa, audio_device);
 		igt_assert(ret >= 0);
 
 		/* TODO: playback on all 8 available channels */
 		run |= do_test_display_audio(data, port, alsa,
 					     PLAYBACK_CHANNELS,
-					     sampling_rates[i]);
+					     test_sampling_rates[i]);
 
 		alsa_close_output(alsa);
 	}
@@ -1415,7 +1426,7 @@ static void test_display_planes_random(data_t *data,
 	reset_state(data, port);
 
 	/* Find the connector and pipe. */
-	output = prepare_output(data, port, true);
+	output = prepare_output(data, port, TEST_EDID_BASE);
 
 	mode = igt_output_get_mode(output);
 
@@ -1579,6 +1590,82 @@ test_hpd_storm_disable(data_t *data, struct chamelium_port *port, int width)
 	igt_hpd_storm_reset(data->drm_fd);
 }
 
+#define HDMI_AUDIO_EDID_SIZE (sizeof(struct edid) + sizeof(struct edid_ext))
+
+static unsigned const char *get_hdmi_audio_edid(void)
+{
+	int channels;
+	uint8_t sampling_rates, sample_sizes;
+	static unsigned char raw_edid[HDMI_AUDIO_EDID_SIZE] = {0};
+	struct edid *edid;
+	struct edid_ext *edid_ext;
+	struct edid_cea *edid_cea;
+	char *cea_data;
+	struct edid_cea_data_block *block;
+	struct cea_sad sad = {0};
+	const struct cea_vsd *vsd;
+	size_t cea_data_size, vsd_size;
+
+	/* Initialize the Short Audio Descriptor for PCM */
+	channels = 2; /* TODO: speaker alloc blocks for > 2 channels */
+	sampling_rates = CEA_SAD_SAMPLING_RATE_32KHZ |
+			 CEA_SAD_SAMPLING_RATE_44KHZ |
+			 CEA_SAD_SAMPLING_RATE_48KHZ |
+			 CEA_SAD_SAMPLING_RATE_88KHZ |
+			 CEA_SAD_SAMPLING_RATE_96KHZ |
+			 CEA_SAD_SAMPLING_RATE_176KHZ |
+			 CEA_SAD_SAMPLING_RATE_192KHZ;
+	sample_sizes = CEA_SAD_SAMPLE_SIZE_16 |
+		       CEA_SAD_SAMPLE_SIZE_20 |
+		       CEA_SAD_SAMPLE_SIZE_24;
+	cea_sad_init_pcm(&sad, channels, sampling_rates, sample_sizes);
+
+	/* Create a new EDID from the base IGT EDID, and add an
+	 * extension that advertises audio support. */
+	edid = (struct edid *) raw_edid;
+	memcpy(edid, igt_kms_get_base_edid(), sizeof(struct edid));
+	edid->extensions_len = 1;
+	edid_ext = &edid->extensions[0];
+	edid_cea = &edid_ext->data.cea;
+	cea_data = edid_cea->data;
+	cea_data_size = 0;
+
+	block = (struct edid_cea_data_block *) &cea_data[cea_data_size];
+	cea_data_size += edid_cea_data_block_set_sad(block, &sad, 1);
+
+	/* A Vendor Specific Data block is needed for HDMI audio */
+	block = (struct edid_cea_data_block *) &cea_data[cea_data_size];
+	vsd = cea_vsd_get_hdmi_default(&vsd_size);
+	cea_data_size += edid_cea_data_block_set_vsd(block, vsd,
+						     vsd_size);
+
+	igt_assert(cea_data_size <= sizeof(edid_cea->data));
+
+	edid_ext_set_cea(edid_ext, cea_data_size,
+			 EDID_CEA_BASIC_AUDIO);
+
+	edid_update_checksum(edid);
+	edid_ext_update_cea_checksum(edid_ext);
+
+	return raw_edid;
+}
+
+static const unsigned char *get_edid(enum test_edid edid)
+{
+	switch (edid) {
+	case TEST_EDID_CHAMELIUM_DEFAULT:
+		igt_assert(0); /* we don't have the raw data for this one */
+		return NULL;
+	case TEST_EDID_BASE:
+		return igt_kms_get_base_edid();
+	case TEST_EDID_ALT:
+		return igt_kms_get_alt_edid();
+	case TEST_EDID_HDMI_AUDIO:
+		return get_hdmi_audio_edid();
+	}
+	assert(0); /* unreachable */
+}
+
 #define for_each_port(p, port)            \
 	for (p = 0, port = data.ports[p]; \
 	     p < data.port_count;         \
@@ -1595,7 +1682,8 @@ static data_t data;
 igt_main
 {
 	struct chamelium_port *port;
-	int edid_id, alt_edid_id, p;
+	int p;
+	size_t i;
 
 	igt_fixture {
 		igt_skip_on_simulation();
@@ -1607,12 +1695,11 @@ igt_main
 		data.ports = chamelium_get_ports(data.chamelium,
 						 &data.port_count);
 
-		edid_id = chamelium_new_edid(data.chamelium,
-					     igt_kms_get_base_edid());
-		alt_edid_id = chamelium_new_edid(data.chamelium,
-						 igt_kms_get_alt_edid());
-		data.edid_id = edid_id;
-		data.alt_edid_id = alt_edid_id;
+		data.edids[TEST_EDID_CHAMELIUM_DEFAULT] = CHAMELIUM_DEFAULT_EDID;
+		for (i = 1; i < sizeof(data.edids) / sizeof(data.edids[0]); ++i) {
+			data.edids[i] = chamelium_new_edid(data.chamelium,
+							   get_edid(i));
+		}
 
 		/* So fbcon doesn't try to reprobe things itself */
 		kmstest_set_vt_graphics_mode();
@@ -1636,10 +1723,8 @@ igt_main
 					   HPD_TOGGLE_COUNT_FAST);
 
 		connector_subtest("dp-edid-read", DisplayPort) {
-			test_edid_read(&data, port, edid_id,
-				       igt_kms_get_base_edid());
-			test_edid_read(&data, port, alt_edid_id,
-				       igt_kms_get_alt_edid());
+			test_edid_read(&data, port, TEST_EDID_BASE);
+			test_edid_read(&data, port, TEST_EDID_ALT);
 		}
 
 		connector_subtest("dp-hpd-after-suspend", DisplayPort)
@@ -1664,13 +1749,15 @@ igt_main
 			test_suspend_resume_edid_change(&data, port,
 							SUSPEND_STATE_MEM,
 							SUSPEND_TEST_NONE,
-							edid_id, alt_edid_id);
+							TEST_EDID_BASE,
+							TEST_EDID_ALT);
 
 		connector_subtest("dp-edid-change-during-hibernate", DisplayPort)
 			test_suspend_resume_edid_change(&data, port,
 							SUSPEND_STATE_DISK,
 							SUSPEND_TEST_DEVICES,
-							edid_id, alt_edid_id);
+							TEST_EDID_BASE,
+							TEST_EDID_ALT);
 
 		connector_subtest("dp-crc-single", DisplayPort)
 			test_display_all_modes(&data, port, DRM_FORMAT_XRGB8888,
@@ -1687,8 +1774,11 @@ igt_main
 		connector_subtest("dp-frame-dump", DisplayPort)
 			test_display_frame_dump(&data, port);
 
+		/* The EDID we generate advertises HDMI audio, not DP audio.
+		 * Use the Chamelium's default EDID for DP audio. */
 		connector_subtest("dp-audio", DisplayPort)
-			test_display_audio(&data, port, "HDMI");
+			test_display_audio(&data, port, "HDMI",
+					   TEST_EDID_CHAMELIUM_DEFAULT);
 	}
 
 	igt_subtest_group {
@@ -1706,10 +1796,8 @@ igt_main
 					   HPD_TOGGLE_COUNT_FAST);
 
 		connector_subtest("hdmi-edid-read", HDMIA) {
-			test_edid_read(&data, port, edid_id,
-				       igt_kms_get_base_edid());
-			test_edid_read(&data, port, alt_edid_id,
-				       igt_kms_get_alt_edid());
+			test_edid_read(&data, port, TEST_EDID_BASE);
+			test_edid_read(&data, port, TEST_EDID_ALT);
 		}
 
 		connector_subtest("hdmi-hpd-after-suspend", HDMIA)
@@ -1734,13 +1822,15 @@ igt_main
 			test_suspend_resume_edid_change(&data, port,
 							SUSPEND_STATE_MEM,
 							SUSPEND_TEST_NONE,
-							edid_id, alt_edid_id);
+							TEST_EDID_BASE,
+							TEST_EDID_ALT);
 
 		connector_subtest("hdmi-edid-change-during-hibernate", HDMIA)
 			test_suspend_resume_edid_change(&data, port,
 							SUSPEND_STATE_DISK,
 							SUSPEND_TEST_DEVICES,
-							edid_id, alt_edid_id);
+							TEST_EDID_BASE,
+							TEST_EDID_ALT);
 
 		connector_subtest("hdmi-crc-single", HDMIA)
 			test_display_all_modes(&data, port, DRM_FORMAT_XRGB8888,
@@ -1851,10 +1941,8 @@ igt_main
 			test_basic_hotplug(&data, port, HPD_TOGGLE_COUNT_FAST);
 
 		connector_subtest("vga-edid-read", VGA) {
-			test_edid_read(&data, port, edid_id,
-				       igt_kms_get_base_edid());
-			test_edid_read(&data, port, alt_edid_id,
-				       igt_kms_get_alt_edid());
+			test_edid_read(&data, port, TEST_EDID_BASE);
+			test_edid_read(&data, port, TEST_EDID_ALT);
 		}
 
 		connector_subtest("vga-hpd-after-suspend", VGA)
-- 
2.21.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [igt-dev] [PATCH i-g-t v4 6/9] tests/kms_chamelium: disable >48KHz audio tests
  2019-05-15  7:29 [igt-dev] [PATCH i-g-t v4 0/9] tests/kms_chamelium: add HDMI audio test Simon Ser
                   ` (4 preceding siblings ...)
  2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 5/9] tests/kms_chamelium: generate an EDID with audio support Simon Ser
@ 2019-05-15  7:29 ` Simon Ser
  2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 7/9] tests/kms_chamelium: enable audio test on HDMI ports Simon Ser
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Simon Ser @ 2019-05-15  7:29 UTC (permalink / raw)
  To: igt-dev

These weren't tested on DisplayPort (because the Chamelium's default EDID
doesn't advertise them) so this doesn't remove some test cases.

On HDMI they don't work reliably: sometimes no audio data is captured by the
Chamelium. This needs to be investigated, but for now let's just disable them.

Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 tests/kms_chamelium.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c
index 6d9d4111ea9b..a686d3479a80 100644
--- a/tests/kms_chamelium.c
+++ b/tests/kms_chamelium.c
@@ -772,14 +772,15 @@ test_display_frame_dump(data_t *data, struct chamelium_port *port)
 /* A streak of 3 gives confidence that the signal is good. */
 #define MIN_STREAK 3
 
+/* TODO: enable >48KHz rates, these are not reliable */
 static int test_sampling_rates[] = {
 	32000,
 	44100,
 	48000,
-	88200,
-	96000,
-	176400,
-	192000,
+	/* 88200, */
+	/* 96000, */
+	/* 176400, */
+	/* 192000, */
 };
 
 static int test_sampling_rates_count = sizeof(test_sampling_rates) / sizeof(int);
-- 
2.21.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [igt-dev] [PATCH i-g-t v4 7/9] tests/kms_chamelium: enable audio test on HDMI ports
  2019-05-15  7:29 [igt-dev] [PATCH i-g-t v4 0/9] tests/kms_chamelium: add HDMI audio test Simon Ser
                   ` (5 preceding siblings ...)
  2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 6/9] tests/kms_chamelium: disable >48KHz audio tests Simon Ser
@ 2019-05-15  7:29 ` Simon Ser
  2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 8/9] tests/kms_chamelium: don't abort audio test on first fail Simon Ser
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Simon Ser @ 2019-05-15  7:29 UTC (permalink / raw)
  To: igt-dev

Now that we have all the required EDID bits in place, we can add a new
hdmi-audio test.

Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 tests/kms_chamelium.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c
index a686d3479a80..51f335efb94b 100644
--- a/tests/kms_chamelium.c
+++ b/tests/kms_chamelium.c
@@ -1927,6 +1927,10 @@ igt_main
 
 		connector_subtest("hdmi-frame-dump", HDMIA)
 			test_display_frame_dump(&data, port);
+
+		connector_subtest("hdmi-audio", HDMIA)
+			test_display_audio(&data, port, "HDMI",
+					   TEST_EDID_HDMI_AUDIO);
 	}
 
 	igt_subtest_group {
-- 
2.21.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [igt-dev] [PATCH i-g-t v4 8/9] tests/kms_chamelium: don't abort audio test on first fail
  2019-05-15  7:29 [igt-dev] [PATCH i-g-t v4 0/9] tests/kms_chamelium: add HDMI audio test Simon Ser
                   ` (6 preceding siblings ...)
  2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 7/9] tests/kms_chamelium: enable audio test on HDMI ports Simon Ser
@ 2019-05-15  7:29 ` Simon Ser
  2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 9/9] HAX: add {dp, hdmi}-audio test to fast-feedback Simon Ser
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Simon Ser @ 2019-05-15  7:29 UTC (permalink / raw)
  To: igt-dev

The audio test is repeated with a few different frequencies. When the test
fails for one frequency, continue testing other frequencies so that we get a
better understanding of the situation: is only one frequency failing, or are
all of them failing?

Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 tests/kms_chamelium.c | 38 +++++++++++++++++++++++---------------
 1 file changed, 23 insertions(+), 15 deletions(-)

diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c
index 51f335efb94b..c1dbd99d0e76 100644
--- a/tests/kms_chamelium.c
+++ b/tests/kms_chamelium.c
@@ -841,15 +841,6 @@ do_test_display_audio(data_t *data, struct chamelium_port *port,
 	struct audio_state state = {};
 	int channel_mapping[8], capture_chan;
 
-	if (!alsa_test_output_configuration(alsa, playback_channels,
-					    playback_rate)) {
-		igt_debug("Skipping test with sample rate %d Hz and %d channels "
-			  "because at least one of the selected output devices "
-			  "doesn't support this configuration\n",
-			  playback_rate, playback_channels);
-		return false;
-	}
-
 	igt_debug("Testing with playback sampling rate %d Hz and %d channels\n",
 		  playback_rate, playback_channels);
 	alsa_configure_output(alsa, playback_channels, playback_rate);
@@ -1028,15 +1019,14 @@ do_test_display_audio(data_t *data, struct chamelium_port *port,
 	audio_signal_fini(signal);
 	chamelium_stream_deinit(stream);
 
-	igt_assert(success);
-	return true;
+	return success;
 }
 
 static void
 test_display_audio(data_t *data, struct chamelium_port *port,
 		   const char *audio_device, enum test_edid edid)
 {
-	bool run = false;
+	bool run, success;
 	struct alsa *alsa;
 	int ret;
 	igt_output_t *output;
@@ -1045,6 +1035,7 @@ test_display_audio(data_t *data, struct chamelium_port *port,
 	drmModeModeInfo *mode;
 	drmModeConnector *connector;
 	int fb_id, i;
+	int channels, sampling_rate;
 
 	igt_require(alsa_has_exclusive_access());
 
@@ -1077,20 +1068,37 @@ test_display_audio(data_t *data, struct chamelium_port *port,
 
 	enable_output(data, port, output, mode, &fb);
 
+	run = false;
+	success = true;
 	for (i = 0; i < test_sampling_rates_count; i++) {
 		ret = alsa_open_output(alsa, audio_device);
 		igt_assert(ret >= 0);
 
 		/* TODO: playback on all 8 available channels */
-		run |= do_test_display_audio(data, port, alsa,
-					     PLAYBACK_CHANNELS,
-					     test_sampling_rates[i]);
+		channels = PLAYBACK_CHANNELS;
+		sampling_rate = test_sampling_rates[i];
+
+		if (!alsa_test_output_configuration(alsa, channels,
+						    sampling_rate)) {
+			igt_debug("Skipping test with sample rate %d Hz and %d channels "
+				  "because at least one of the selected output devices "
+				  "doesn't support this configuration\n",
+				  channels, sampling_rate);
+			continue;
+		}
+
+		run = true;
+
+		success &= do_test_display_audio(data, port, alsa, channels,
+						 sampling_rate);
 
 		alsa_close_output(alsa);
 	}
 
 	/* Make sure we tested at least one frequency. */
 	igt_assert(run);
+	/* Make sure all runs were successful. */
+	igt_assert(success);
 
 	igt_remove_fb(data->drm_fd, &fb);
 
-- 
2.21.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [igt-dev] [PATCH i-g-t v4 9/9] HAX: add {dp, hdmi}-audio test to fast-feedback
  2019-05-15  7:29 [igt-dev] [PATCH i-g-t v4 0/9] tests/kms_chamelium: add HDMI audio test Simon Ser
                   ` (7 preceding siblings ...)
  2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 8/9] tests/kms_chamelium: don't abort audio test on first fail Simon Ser
@ 2019-05-15  7:29 ` Simon Ser
  2019-05-15  8:25 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_chamelium: add HDMI audio test (rev2) Patchwork
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Simon Ser @ 2019-05-15  7:29 UTC (permalink / raw)
  To: igt-dev

Waiting for the whole series to be complete to decide whether or not we want
this test in fast-feedback.
---
 tests/intel-ci/fast-feedback.testlist | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist
index 40475b1ab361..d39b92a866da 100644
--- a/tests/intel-ci/fast-feedback.testlist
+++ b/tests/intel-ci/fast-feedback.testlist
@@ -175,9 +175,11 @@ igt@kms_addfb_basic@unused-pitches
 igt@kms_busy@basic-flip-a
 igt@kms_busy@basic-flip-b
 igt@kms_busy@basic-flip-c
+igt@kms_chamelium@dp-audio
 igt@kms_chamelium@dp-hpd-fast
 igt@kms_chamelium@dp-edid-read
 igt@kms_chamelium@dp-crc-fast
+igt@kms_chamelium@hdmi-audio
 igt@kms_chamelium@hdmi-hpd-fast
 igt@kms_chamelium@hdmi-edid-read
 igt@kms_chamelium@hdmi-crc-fast
-- 
2.21.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_chamelium: add HDMI audio test (rev2)
  2019-05-15  7:29 [igt-dev] [PATCH i-g-t v4 0/9] tests/kms_chamelium: add HDMI audio test Simon Ser
                   ` (8 preceding siblings ...)
  2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 9/9] HAX: add {dp, hdmi}-audio test to fast-feedback Simon Ser
@ 2019-05-15  8:25 ` Patchwork
  2019-05-15  8:36   ` Ser, Simon
  2019-05-15 16:37 ` [igt-dev] ✓ Fi.CI.IGT: success " Patchwork
                   ` (2 subsequent siblings)
  12 siblings, 1 reply; 20+ messages in thread
From: Patchwork @ 2019-05-15  8:25 UTC (permalink / raw)
  To: Simon Ser; +Cc: igt-dev

== Series Details ==

Series: tests/kms_chamelium: add HDMI audio test (rev2)
URL   : https://patchwork.freedesktop.org/series/60626/
State : failure

== Summary ==

CI Bug Log - changes from IGT_4989 -> IGTPW_2983
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_2983 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_2983, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/60626/revisions/2/mbox/

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_2983:

### IGT changes ###

#### Possible regressions ####

  * igt@i915_module_load@reload-with-fault-injection:
    - fi-hsw-4770r:       [PASS][1] -> [DMESG-WARN][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/fi-hsw-4770r/igt@i915_module_load@reload-with-fault-injection.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-hsw-4770r/igt@i915_module_load@reload-with-fault-injection.html

  * {igt@kms_chamelium@hdmi-audio} (NEW):
    - {fi-cml-u2}:        NOTRUN -> [SKIP][3]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-cml-u2/igt@kms_chamelium@hdmi-audio.html
    - fi-icl-u2:          NOTRUN -> [SKIP][4]
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-icl-u2/igt@kms_chamelium@hdmi-audio.html

  * igt@runner@aborted:
    - fi-hsw-4770r:       NOTRUN -> [FAIL][5]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-hsw-4770r/igt@runner@aborted.html

  
#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * {igt@kms_chamelium@dp-audio}:
    - fi-icl-u2:          NOTRUN -> [SKIP][6]
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-icl-u2/igt@kms_chamelium@dp-audio.html
    - {fi-cml-u2}:        NOTRUN -> [SKIP][7]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-cml-u2/igt@kms_chamelium@dp-audio.html

  
New tests
---------

  New tests have been introduced between IGT_4989 and IGTPW_2983:

### New IGT tests (1) ###

  * igt@kms_chamelium@hdmi-audio:
    - Statuses : 46 skip(s)
    - Exec time: [0.0, 0.03] s

  

Known issues
------------

  Here are the changes found in IGTPW_2983 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@i915_selftest@live_evict:
    - fi-bsw-kefka:       [PASS][8] -> [DMESG-WARN][9] ([fdo#107709])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/fi-bsw-kefka/igt@i915_selftest@live_evict.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-bsw-kefka/igt@i915_selftest@live_evict.html

  
#### Possible fixes ####

  * igt@amdgpu/amd_basic@userptr:
    - fi-kbl-8809g:       [DMESG-WARN][10] ([fdo#108965]) -> [PASS][11]
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/fi-kbl-8809g/igt@amdgpu/amd_basic@userptr.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-kbl-8809g/igt@amdgpu/amd_basic@userptr.html

  * igt@i915_selftest@live_hangcheck:
    - fi-skl-iommu:       [INCOMPLETE][12] ([fdo#108602] / [fdo#108744]) -> [PASS][13]
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/fi-skl-iommu/igt@i915_selftest@live_hangcheck.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-skl-iommu/igt@i915_selftest@live_hangcheck.html

  * igt@kms_frontbuffer_tracking@basic:
    - {fi-icl-u3}:        [FAIL][14] ([fdo#103167]) -> [PASS][15]
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/fi-icl-u3/igt@kms_frontbuffer_tracking@basic.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-icl-u3/igt@kms_frontbuffer_tracking@basic.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#107709]: https://bugs.freedesktop.org/show_bug.cgi?id=107709
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#108602]: https://bugs.freedesktop.org/show_bug.cgi?id=108602
  [fdo#108744]: https://bugs.freedesktop.org/show_bug.cgi?id=108744
  [fdo#108965]: https://bugs.freedesktop.org/show_bug.cgi?id=108965


Participating hosts (51 -> 46)
------------------------------

  Additional (3): fi-byt-j1900 fi-apl-guc fi-pnv-d510 
  Missing    (8): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * IGT: IGT_4989 -> IGTPW_2983

  CI_DRM_6085: 48d8cf5cc0aadd21924d05ad3e86b08d8e0e1c50 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2983: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/
  IGT_4989: 5b941737519c170c4710d1ec7823866ee080a67e @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@kms_chamelium@hdmi-audio

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_chamelium: add HDMI audio test (rev2)
  2019-05-15  8:25 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_chamelium: add HDMI audio test (rev2) Patchwork
@ 2019-05-15  8:36   ` Ser, Simon
  2019-05-15 13:30     ` Arkadiusz Hiler
  2019-05-16  9:44     ` Petri Latvala
  0 siblings, 2 replies; 20+ messages in thread
From: Ser, Simon @ 2019-05-15  8:36 UTC (permalink / raw)
  To: igt-dev; +Cc: Latvala, Petri, Peres, Martin

On Wed, 2019-05-15 at 08:25 +0000, Patchwork wrote:
> == Series Details ==
> 
> Series: tests/kms_chamelium: add HDMI audio test (rev2)
> URL   : https://patchwork.freedesktop.org/series/60626/
> State : failure
> 
> == Summary ==
> 
> CI Bug Log - changes from IGT_4989 -> IGTPW_2983
> ====================================================
> 
> Summary
> -------
> 
>   **FAILURE**
> 
>   Serious unknown changes coming with IGTPW_2983 absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in IGTPW_2983, please notify your bug team to allow them
>   to document this new failure mode, which will reduce false positives in CI.
> 
>   External URL: https://patchwork.freedesktop.org/api/1.0/series/60626/revisions/2/mbox/
> 
> Possible new issues
> -------------------
> 
>   Here are the unknown changes that may have been introduced in IGTPW_2983:
> 
> ### IGT changes ###
> 
> #### Possible regressions ####
> 
>   * igt@i915_module_load@reload-with-fault-injection:
>     - fi-hsw-4770r:       [PASS][1] -> [DMESG-WARN][2]
>    [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/fi-hsw-4770r/igt@i915_module_load@reload-with-fault-injection.html
>    [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-hsw-4770r/igt@i915_module_load@reload-with-fault-injection.html

Seems unrelated, cc Martin

>   * {igt@kms_chamelium@hdmi-audio} (NEW):
>     - {fi-cml-u2}:        NOTRUN -> [SKIP][3]
>    [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-cml-u2/igt@kms_chamelium@hdmi-audio.html
>     - fi-icl-u2:          NOTRUN -> [SKIP][4]
>    [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-icl-u2/igt@kms_chamelium@hdmi-audio.html

Now correctly skips, cc Petri

>   * igt@runner@aborted:
>     - fi-hsw-4770r:       NOTRUN -> [FAIL][5]
>    [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-hsw-4770r/igt@runner@aborted.html

Seems unrelated, cc Martin

>   
> #### Suppressed ####
> 
>   The following results come from untrusted machines, tests, or statuses.
>   They do not affect the overall result.
> 
>   * {igt@kms_chamelium@dp-audio}:
>     - fi-icl-u2:          NOTRUN -> [SKIP][6]
>    [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-icl-u2/igt@kms_chamelium@dp-audio.html
>     - {fi-cml-u2}:        NOTRUN -> [SKIP][7]
>    [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-cml-u2/igt@kms_chamelium@dp-audio.html
> 
>   
> New tests
> ---------
> 
>   New tests have been introduced between IGT_4989 and IGTPW_2983:
> 
> ### New IGT tests (1) ###
> 
>   * igt@kms_chamelium@hdmi-audio:
>     - Statuses : 46 skip(s)
>     - Exec time: [0.0, 0.03] s
> 
>   
> 
> Known issues
> ------------
> 
>   Here are the changes found in IGTPW_2983 that come from known issues:
> 
> ### IGT changes ###
> 
> #### Issues hit ####
> 
>   * igt@i915_selftest@live_evict:
>     - fi-bsw-kefka:       [PASS][8] -> [DMESG-WARN][9] ([fdo#107709])
>    [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/fi-bsw-kefka/igt@i915_selftest@live_evict.html
>    [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-bsw-kefka/igt@i915_selftest@live_evict.html
> 
>   
> #### Possible fixes ####
> 
>   * igt@amdgpu/amd_basic@userptr:
>     - fi-kbl-8809g:       [DMESG-WARN][10] ([fdo#108965]) -> [PASS][11]
>    [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/fi-kbl-8809g/igt@amdgpu/amd_basic@userptr.html
>    [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-kbl-8809g/igt@amdgpu/amd_basic@userptr.html
> 
>   * igt@i915_selftest@live_hangcheck:
>     - fi-skl-iommu:       [INCOMPLETE][12] ([fdo#108602] / [fdo#108744]) -> [PASS][13]
>    [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/fi-skl-iommu/igt@i915_selftest@live_hangcheck.html
>    [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-skl-iommu/igt@i915_selftest@live_hangcheck.html
> 
>   * igt@kms_frontbuffer_tracking@basic:
>     - {fi-icl-u3}:        [FAIL][14] ([fdo#103167]) -> [PASS][15]
>    [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/fi-icl-u3/igt@kms_frontbuffer_tracking@basic.html
>    [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-icl-u3/igt@kms_frontbuffer_tracking@basic.html
> 
>   
>   {name}: This element is suppressed. This means it is ignored when computing
>           the status of the difference (SUCCESS, WARNING, or FAILURE).
> 
>   [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
>   [fdo#107709]: https://bugs.freedesktop.org/show_bug.cgi?id=107709
>   [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
>   [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
>   [fdo#108602]: https://bugs.freedesktop.org/show_bug.cgi?id=108602
>   [fdo#108744]: https://bugs.freedesktop.org/show_bug.cgi?id=108744
>   [fdo#108965]: https://bugs.freedesktop.org/show_bug.cgi?id=108965
> 
> 
> Participating hosts (51 -> 46)
> ------------------------------
> 
>   Additional (3): fi-byt-j1900 fi-apl-guc fi-pnv-d510 
>   Missing    (8): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus 
> 
> 
> Build changes
> -------------
> 
>   * IGT: IGT_4989 -> IGTPW_2983
> 
>   CI_DRM_6085: 48d8cf5cc0aadd21924d05ad3e86b08d8e0e1c50 @ git://anongit.freedesktop.org/gfx-ci/linux
>   IGTPW_2983: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/
>   IGT_4989: 5b941737519c170c4710d1ec7823866ee080a67e @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
> 
> 
> 
> == Testlist changes ==
> 
> +igt@kms_chamelium@hdmi-audio
> 
> == Logs ==
> 
> For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [igt-dev] ✗ Fi.CI.BAT:  failure for tests/kms_chamelium: add HDMI audio test (rev2)
  2019-05-15  8:36   ` Ser, Simon
@ 2019-05-15 13:30     ` Arkadiusz Hiler
  2019-05-16  9:44     ` Petri Latvala
  1 sibling, 0 replies; 20+ messages in thread
From: Arkadiusz Hiler @ 2019-05-15 13:30 UTC (permalink / raw)
  To: Ser, Simon; +Cc: igt-dev, Latvala, Petri, Peres, Martin

On Wed, May 15, 2019 at 08:36:23AM +0000, Ser, Simon wrote:
> On Wed, 2019-05-15 at 08:25 +0000, Patchwork wrote:
> > == Series Details ==
> > 
> > Series: tests/kms_chamelium: add HDMI audio test (rev2)
> > URL   : https://patchwork.freedesktop.org/series/60626/
> > State : failure
> > 
> > == Summary ==
> > 
> > CI Bug Log - changes from IGT_4989 -> IGTPW_2983
> > ====================================================
> > 
> > Summary
> > -------
> > 
> >   **FAILURE**
> > 
> >   Serious unknown changes coming with IGTPW_2983 absolutely need to be
> >   verified manually.
> >   
> >   If you think the reported changes have nothing to do with the changes
> >   introduced in IGTPW_2983, please notify your bug team to allow them
> >   to document this new failure mode, which will reduce false positives in CI.
> > 
> >   External URL: https://patchwork.freedesktop.org/api/1.0/series/60626/revisions/2/mbox/
> > 
> > Possible new issues
> > -------------------
> > 
> >   Here are the unknown changes that may have been introduced in IGTPW_2983:
> > 
> > ### IGT changes ###
> > 
> > #### Possible regressions ####
> > 
> >   * igt@i915_module_load@reload-with-fault-injection:
> >     - fi-hsw-4770r:       [PASS][1] -> [DMESG-WARN][2]
> >    [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/fi-hsw-4770r/igt@i915_module_load@reload-with-fault-injection.html
> >    [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-hsw-4770r/igt@i915_module_load@reload-with-fault-injection.html
> 
> Seems unrelated, cc Martin
> 
> >   * {igt@kms_chamelium@hdmi-audio} (NEW):
> >     - {fi-cml-u2}:        NOTRUN -> [SKIP][3]
> >    [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-cml-u2/igt@kms_chamelium@hdmi-audio.html
> >     - fi-icl-u2:          NOTRUN -> [SKIP][4]
> >    [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-icl-u2/igt@kms_chamelium@hdmi-audio.html
> 
> Now correctly skips, cc Petri
> 
> >   * igt@runner@aborted:
> >     - fi-hsw-4770r:       NOTRUN -> [FAIL][5]
> >    [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-hsw-4770r/igt@runner@aborted.html
> 
> Seems unrelated, cc Martin

Indeed, false positives. I'll force shards for you.
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [igt-dev] ✓ Fi.CI.IGT: success for tests/kms_chamelium: add HDMI audio test (rev2)
  2019-05-15  7:29 [igt-dev] [PATCH i-g-t v4 0/9] tests/kms_chamelium: add HDMI audio test Simon Ser
                   ` (9 preceding siblings ...)
  2019-05-15  8:25 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_chamelium: add HDMI audio test (rev2) Patchwork
@ 2019-05-15 16:37 ` Patchwork
  2019-05-16  7:58 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_chamelium: add HDMI audio test (rev3) Patchwork
  2019-05-16  9:52 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  12 siblings, 0 replies; 20+ messages in thread
From: Patchwork @ 2019-05-15 16:37 UTC (permalink / raw)
  To: Ser, Simon; +Cc: igt-dev

== Series Details ==

Series: tests/kms_chamelium: add HDMI audio test (rev2)
URL   : https://patchwork.freedesktop.org/series/60626/
State : success

== Summary ==

CI Bug Log - changes from IGT_4989_full -> IGTPW_2983_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/60626/revisions/2/mbox/

New tests
---------

  New tests have been introduced between IGT_4989_full and IGTPW_2983_full:

### New IGT tests (1) ###

  * igt@kms_chamelium@hdmi-audio:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  

Known issues
------------

  Here are the changes found in IGTPW_2983_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_eio@in-flight-suspend:
    - shard-apl:          [PASS][1] -> [DMESG-WARN][2] ([fdo#108566]) +5 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/shard-apl3/igt@gem_eio@in-flight-suspend.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/shard-apl7/igt@gem_eio@in-flight-suspend.html

  * igt@i915_pm_rc6_residency@rc6-accuracy:
    - shard-snb:          [PASS][3] -> [SKIP][4] ([fdo#109271])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/shard-snb1/igt@i915_pm_rc6_residency@rc6-accuracy.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/shard-snb2/igt@i915_pm_rc6_residency@rc6-accuracy.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-hsw:          [PASS][5] -> [INCOMPLETE][6] ([fdo#103540]) +1 similar issue
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/shard-hsw6/igt@kms_flip@flip-vs-suspend.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/shard-hsw2/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-render:
    - shard-glk:          [PASS][7] -> [FAIL][8] ([fdo#103167])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/shard-glk4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-render.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/shard-glk6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite:
    - shard-iclb:         [PASS][9] -> [FAIL][10] ([fdo#103167]) +6 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/shard-iclb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/shard-iclb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite.html

  * igt@kms_plane_lowres@pipe-a-tiling-x:
    - shard-iclb:         [PASS][11] -> [FAIL][12] ([fdo#103166])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/shard-iclb7/igt@kms_plane_lowres@pipe-a-tiling-x.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/shard-iclb1/igt@kms_plane_lowres@pipe-a-tiling-x.html

  * igt@kms_psr@psr2_cursor_blt:
    - shard-iclb:         [PASS][13] -> [SKIP][14] ([fdo#109441]) +1 similar issue
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/shard-iclb2/igt@kms_psr@psr2_cursor_blt.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/shard-iclb1/igt@kms_psr@psr2_cursor_blt.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
    - shard-iclb:         [PASS][15] -> [INCOMPLETE][16] ([fdo#107713] / [fdo#110026] / [fdo#110040 ])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/shard-iclb1/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/shard-iclb1/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html

  
#### Possible fixes ####

  * igt@gem_workarounds@suspend-resume:
    - shard-apl:          [DMESG-WARN][17] ([fdo#108566]) -> [PASS][18] +3 similar issues
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/shard-apl8/igt@gem_workarounds@suspend-resume.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/shard-apl1/igt@gem_workarounds@suspend-resume.html

  * igt@i915_pm_rpm@i2c:
    - shard-iclb:         [FAIL][19] ([fdo#104097]) -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/shard-iclb6/igt@i915_pm_rpm@i2c.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/shard-iclb1/igt@i915_pm_rpm@i2c.html

  * igt@kms_frontbuffer_tracking@fbc-1p-rte:
    - shard-kbl:          [FAIL][21] ([fdo#103167] / [fdo#110378]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/shard-kbl7/igt@kms_frontbuffer_tracking@fbc-1p-rte.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/shard-kbl4/igt@kms_frontbuffer_tracking@fbc-1p-rte.html
    - shard-apl:          [FAIL][23] ([fdo#103167] / [fdo#110378]) -> [PASS][24]
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/shard-apl1/igt@kms_frontbuffer_tracking@fbc-1p-rte.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/shard-apl7/igt@kms_frontbuffer_tracking@fbc-1p-rte.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-msflip-blt:
    - shard-iclb:         [FAIL][25] ([fdo#103167]) -> [PASS][26] +3 similar issues
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/shard-iclb7/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-msflip-blt.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/shard-iclb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-msflip-blt.html

  * igt@kms_psr@psr2_primary_mmap_cpu:
    - shard-iclb:         [SKIP][27] ([fdo#109441]) -> [PASS][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/shard-iclb5/igt@kms_psr@psr2_primary_mmap_cpu.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html

  * igt@perf_pmu@busy-bcs0:
    - shard-iclb:         [SKIP][29] ([fdo#110682]) -> [PASS][30] +8 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/shard-iclb8/igt@perf_pmu@busy-bcs0.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/shard-iclb6/igt@perf_pmu@busy-bcs0.html

  * igt@tools_test@tools_test:
    - shard-snb:          [SKIP][31] ([fdo#109271]) -> [PASS][32]
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/shard-snb6/igt@tools_test@tools_test.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/shard-snb2/igt@tools_test@tools_test.html

  
#### Warnings ####

  * igt@kms_atomic_transition@2x-modeset-transitions-nonblocking:
    - shard-iclb:         [SKIP][33] ([fdo#110682]) -> [SKIP][34] ([fdo#109280]) +3 similar issues
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/shard-iclb8/igt@kms_atomic_transition@2x-modeset-transitions-nonblocking.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/shard-iclb4/igt@kms_atomic_transition@2x-modeset-transitions-nonblocking.html

  * igt@kms_chamelium@dp-hpd-after-suspend:
    - shard-iclb:         [SKIP][35] ([fdo#110682]) -> [SKIP][36] ([fdo#109284])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/shard-iclb8/igt@kms_chamelium@dp-hpd-after-suspend.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/shard-iclb3/igt@kms_chamelium@dp-hpd-after-suspend.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions:
    - shard-iclb:         [SKIP][37] ([fdo#110682]) -> [SKIP][38] ([fdo#109274]) +1 similar issue
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4989/shard-iclb8/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/shard-iclb4/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#104097]: https://bugs.freedesktop.org/show_bug.cgi?id=104097
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#110026]: https://bugs.freedesktop.org/show_bug.cgi?id=110026
  [fdo#110040 ]: https://bugs.freedesktop.org/show_bug.cgi?id=110040 
  [fdo#110378]: https://bugs.freedesktop.org/show_bug.cgi?id=110378
  [fdo#110682]: https://bugs.freedesktop.org/show_bug.cgi?id=110682


Participating hosts (7 -> 6)
------------------------------

  Missing    (1): shard-skl 


Build changes
-------------

  * IGT: IGT_4989 -> IGTPW_2983

  CI_DRM_6085: 48d8cf5cc0aadd21924d05ad3e86b08d8e0e1c50 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2983: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/
  IGT_4989: 5b941737519c170c4710d1ec7823866ee080a67e @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [igt-dev] [PATCH i-g-t v5] tests/kms_chamelium: skip if GetAudioFormat is not supported
  2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 1/9] tests/kms_chamelium: skip if GetAudioFormat is not supported Simon Ser
@ 2019-05-16  7:27   ` Simon Ser
  2019-05-16  8:30     ` Arkadiusz Hiler
  0 siblings, 1 reply; 20+ messages in thread
From: Simon Ser @ 2019-05-16  7:27 UTC (permalink / raw)
  To: igt-dev; +Cc: Petri Latvala

Skip audio tests in case GetAudioFormat is not supported by the Chamelium
device (because it is outdated).

A new __chamelium_rpc function has been introduced. The difference with
chamelium_rpc is that it doesn't asserts that the XML-RPC succeeds.

A new chamelium_supports_get_audio_format function has been introduced. It
tries to call GetAudioFormats with abritrary parameters, and checks whether the
call fails because the method doesn't exist. It is not possible to generalize
it into chamelium_supports_method because some methods might have side-effects
(and the only way to check whether a method exists is to try to call it).

Signed-off-by: Simon Ser <simon.ser@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Arek <arkadiusz.hiler@intel.com>
---

Changes from v4 to v5: don't expose chamelium_supports_get_audio_format
directly, instead call it in chamelium_has_audio_support (Arek)

 lib/igt_chamelium.c   | 73 +++++++++++++++++++++++++++++++++++++------
 tests/kms_chamelium.c |  4 +--
 2 files changed, 66 insertions(+), 11 deletions(-)

diff --git a/lib/igt_chamelium.c b/lib/igt_chamelium.c
index 94825002cab3..649d807a18fa 100644
--- a/lib/igt_chamelium.c
+++ b/lib/igt_chamelium.c
@@ -265,14 +265,13 @@ static void *chamelium_fsm_mon(void *data)
 	return NULL;
 }

-static xmlrpc_value *chamelium_rpc(struct chamelium *chamelium,
-				   struct chamelium_port *fsm_port,
-				   const char *method_name,
-				   const char *format_str,
-				   ...)
+static xmlrpc_value *__chamelium_rpc_va(struct chamelium *chamelium,
+					struct chamelium_port *fsm_port,
+					const char *method_name,
+					const char *format_str,
+					va_list va_args)
 {
-	xmlrpc_value *res;
-	va_list va_args;
+	xmlrpc_value *res = NULL;
 	struct fsm_monitor_args monitor_args;
 	pthread_t fsm_thread_id;

@@ -296,17 +295,49 @@ static xmlrpc_value *chamelium_rpc(struct chamelium *chamelium,
 			       &monitor_args);
 	}

-	va_start(va_args, format_str);
 	xmlrpc_client_call2f_va(&chamelium->env, chamelium->client,
 				chamelium->url, method_name, format_str, &res,
 				va_args);
-	va_end(va_args);

 	if (fsm_port) {
 		pthread_cancel(fsm_thread_id);
 		igt_cleanup_hotplug(monitor_args.mon);
 	}

+	return res;
+}
+
+static xmlrpc_value *__chamelium_rpc(struct chamelium *chamelium,
+				     struct chamelium_port *fsm_port,
+				     const char *method_name,
+				     const char *format_str,
+				     ...)
+{
+	xmlrpc_value *res;
+	va_list va_args;
+
+	va_start(va_args, format_str);
+	res = __chamelium_rpc_va(chamelium, fsm_port, method_name,
+				 format_str, va_args);
+	va_end(va_args);
+
+	return res;
+}
+
+static xmlrpc_value *chamelium_rpc(struct chamelium *chamelium,
+				   struct chamelium_port *fsm_port,
+				   const char *method_name,
+				   const char *format_str,
+				   ...)
+{
+	xmlrpc_value *res;
+	va_list va_args;
+
+	va_start(va_args, format_str);
+	res = __chamelium_rpc_va(chamelium, fsm_port, method_name,
+				 format_str, va_args);
+	va_end(va_args);
+
 	igt_assert_f(!chamelium->env.fault_occurred,
 		     "Chamelium RPC call failed: %s\n",
 		     chamelium->env.fault_string);
@@ -930,12 +961,36 @@ int chamelium_get_captured_frame_count(struct chamelium *chamelium)
 	return ret;
 }

+/**
+ * chamelium_supports_get_audio_format: check the Chamelium device supports
+ * retrieving the capture audio format.
+ */
+static bool chamelium_supports_get_audio_format(struct chamelium *chamelium)
+{
+	xmlrpc_value *res;
+
+	res = __chamelium_rpc(chamelium, NULL, "GetAudioFormat", "(i)", 3);
+	if (res)
+		xmlrpc_DECREF(res);
+
+	/* XML-RPC has a special code for unsupported methods
+	 * (XMLRPC_NO_SUCH_METHOD_ERROR) however the Chamelium implementation
+	 * doesn't return it. */
+	return (!chamelium->env.fault_occurred ||
+		strstr(chamelium->env.fault_string, "not supported") == NULL);
+}
+
 bool chamelium_has_audio_support(struct chamelium *chamelium,
 				 struct chamelium_port *port)
 {
 	xmlrpc_value *res;
 	xmlrpc_bool has_support;

+	if (!chamelium_supports_get_audio_format(chamelium)) {
+		igt_debug("The Chamelium device doesn't support GetAudioFormat\n");
+		return false;
+	}
+
 	res = chamelium_rpc(chamelium, port, "HasAudioSupport", "(i)", port->id);
 	xmlrpc_read_bool(&chamelium->env, res, &has_support);
 	xmlrpc_DECREF(res);
diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c
index 7c3006982abd..88e2163d39a4 100644
--- a/tests/kms_chamelium.c
+++ b/tests/kms_chamelium.c
@@ -1033,8 +1033,8 @@ test_display_audio(data_t *data, struct chamelium_port *port,

 	igt_require(alsa_has_exclusive_access());

-	/* Old Chamelium devices need an update for DisplayPort audio
-	 * support. */
+	/* Old Chamelium devices need an update for DisplayPort audio and
+	 * chamelium_get_audio_format support. */
 	igt_require(chamelium_has_audio_support(data->chamelium, port));

 	alsa = alsa_init();
--
2.21.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_chamelium: add HDMI audio test (rev3)
  2019-05-15  7:29 [igt-dev] [PATCH i-g-t v4 0/9] tests/kms_chamelium: add HDMI audio test Simon Ser
                   ` (10 preceding siblings ...)
  2019-05-15 16:37 ` [igt-dev] ✓ Fi.CI.IGT: success " Patchwork
@ 2019-05-16  7:58 ` Patchwork
  2019-05-16  9:52 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  12 siblings, 0 replies; 20+ messages in thread
From: Patchwork @ 2019-05-16  7:58 UTC (permalink / raw)
  To: Simon Ser; +Cc: igt-dev

== Series Details ==

Series: tests/kms_chamelium: add HDMI audio test (rev3)
URL   : https://patchwork.freedesktop.org/series/60626/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6089 -> IGTPW_2987
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/60626/revisions/3/mbox/

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_2987:

### IGT changes ###

#### Possible regressions ####

  * {igt@kms_chamelium@hdmi-audio} (NEW):
    - {fi-cml-u2}:        NOTRUN -> [SKIP][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/fi-cml-u2/igt@kms_chamelium@hdmi-audio.html
    - fi-icl-u2:          NOTRUN -> [SKIP][2]
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/fi-icl-u2/igt@kms_chamelium@hdmi-audio.html

  
#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * {igt@kms_chamelium@dp-audio}:
    - fi-icl-u2:          NOTRUN -> [SKIP][3]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/fi-icl-u2/igt@kms_chamelium@dp-audio.html
    - {fi-cml-u2}:        NOTRUN -> [SKIP][4]
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/fi-cml-u2/igt@kms_chamelium@dp-audio.html

  
New tests
---------

  New tests have been introduced between CI_DRM_6089 and IGTPW_2987:

### New IGT tests (1) ###

  * igt@kms_chamelium@hdmi-audio:
    - Statuses : 46 skip(s)
    - Exec time: [0.0, 0.02] s

  

Known issues
------------

  Here are the changes found in IGTPW_2987 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_frontbuffer_tracking@basic:
    - fi-icl-u2:          [PASS][5] -> [FAIL][6] ([fdo#103167])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6089/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html

  
#### Possible fixes ####

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [FAIL][7] ([fdo#109485]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6089/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485
  [fdo#110627]: https://bugs.freedesktop.org/show_bug.cgi?id=110627


Participating hosts (52 -> 46)
------------------------------

  Additional (1): fi-pnv-d510 
  Missing    (7): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * IGT: IGT_4991 -> IGTPW_2987

  CI_DRM_6089: c7a46913f77868d15ade90846526d7e4cb910637 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2987: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/
  IGT_4991: 61dd8eec659062eac67823ccd9f2189c3aa36201 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@kms_chamelium@hdmi-audio

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v5] tests/kms_chamelium: skip if GetAudioFormat is not supported
  2019-05-16  7:27   ` [igt-dev] [PATCH i-g-t v5] " Simon Ser
@ 2019-05-16  8:30     ` Arkadiusz Hiler
  0 siblings, 0 replies; 20+ messages in thread
From: Arkadiusz Hiler @ 2019-05-16  8:30 UTC (permalink / raw)
  To: Simon Ser; +Cc: igt-dev, Petri Latvala

On Thu, May 16, 2019 at 10:27:57AM +0300, Simon Ser wrote:
> Skip audio tests in case GetAudioFormat is not supported by the Chamelium
> device (because it is outdated).
> 
> A new __chamelium_rpc function has been introduced. The difference with
> chamelium_rpc is that it doesn't asserts that the XML-RPC succeeds.
> 
> A new chamelium_supports_get_audio_format function has been introduced. It
> tries to call GetAudioFormats with abritrary parameters, and checks whether the
> call fails because the method doesn't exist. It is not possible to generalize
> it into chamelium_supports_method because some methods might have side-effects
> (and the only way to check whether a method exists is to try to call it).
> 
> Signed-off-by: Simon Ser <simon.ser@intel.com>
> Cc: Petri Latvala <petri.latvala@intel.com>
> Cc: Arek <arkadiusz.hiler@intel.com>

Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>

> ---
> 
> Changes from v4 to v5: don't expose chamelium_supports_get_audio_format
> directly, instead call it in chamelium_has_audio_support (Arek)

Traditionally we are keeping them in the commit message to have some
context on evolution of the patch.

-- 
Cheers,
Arek
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_chamelium: add HDMI audio test (rev2)
  2019-05-15  8:36   ` Ser, Simon
  2019-05-15 13:30     ` Arkadiusz Hiler
@ 2019-05-16  9:44     ` Petri Latvala
  1 sibling, 0 replies; 20+ messages in thread
From: Petri Latvala @ 2019-05-16  9:44 UTC (permalink / raw)
  To: Ser, Simon; +Cc: igt-dev, Peres, Martin

On Wed, May 15, 2019 at 11:36:23AM +0300, Ser, Simon wrote:
> >   * {igt@kms_chamelium@hdmi-audio} (NEW):
> >     - {fi-cml-u2}:        NOTRUN -> [SKIP][3]
> >    [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-cml-u2/igt@kms_chamelium@hdmi-audio.html
> >     - fi-icl-u2:          NOTRUN -> [SKIP][4]
> >    [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2983/fi-icl-u2/igt@kms_chamelium@hdmi-audio.html
> 
> Now correctly skips, cc Petri


Thanks for that!


-- 
Petri Latvala
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [igt-dev] ✗ Fi.CI.IGT: failure for tests/kms_chamelium: add HDMI audio test (rev3)
  2019-05-15  7:29 [igt-dev] [PATCH i-g-t v4 0/9] tests/kms_chamelium: add HDMI audio test Simon Ser
                   ` (11 preceding siblings ...)
  2019-05-16  7:58 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_chamelium: add HDMI audio test (rev3) Patchwork
@ 2019-05-16  9:52 ` Patchwork
  2019-05-16 10:19   ` Arkadiusz Hiler
  12 siblings, 1 reply; 20+ messages in thread
From: Patchwork @ 2019-05-16  9:52 UTC (permalink / raw)
  To: Simon Ser; +Cc: igt-dev

== Series Details ==

Series: tests/kms_chamelium: add HDMI audio test (rev3)
URL   : https://patchwork.freedesktop.org/series/60626/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_6089_full -> IGTPW_2987_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_2987_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_2987_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/60626/revisions/3/mbox/

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_2987_full:

### IGT changes ###

#### Possible regressions ####

  * igt@i915_pm_rpm@debugfs-read:
    - shard-iclb:         [PASS][1] -> [DMESG-WARN][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6089/shard-iclb6/igt@i915_pm_rpm@debugfs-read.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/shard-iclb1/igt@i915_pm_rpm@debugfs-read.html

  
New tests
---------

  New tests have been introduced between CI_DRM_6089_full and IGTPW_2987_full:

### New IGT tests (1) ###

  * igt@kms_chamelium@hdmi-audio:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  

Known issues
------------

  Here are the changes found in IGTPW_2987_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_eio@in-flight-suspend:
    - shard-glk:          [PASS][3] -> [FAIL][4] ([fdo#110667])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6089/shard-glk8/igt@gem_eio@in-flight-suspend.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/shard-glk2/igt@gem_eio@in-flight-suspend.html

  * igt@i915_suspend@fence-restore-untiled:
    - shard-apl:          [PASS][5] -> [DMESG-WARN][6] ([fdo#108566]) +5 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6089/shard-apl6/igt@i915_suspend@fence-restore-untiled.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/shard-apl6/igt@i915_suspend@fence-restore-untiled.html

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
    - shard-hsw:          [PASS][7] -> [FAIL][8] ([fdo#102887])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6089/shard-hsw6/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/shard-hsw5/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render:
    - shard-iclb:         [PASS][9] -> [FAIL][10] ([fdo#103167]) +3 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6089/shard-iclb3/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/shard-iclb8/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes:
    - shard-snb:          [PASS][11] -> [DMESG-WARN][12] ([fdo#102365])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6089/shard-snb2/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/shard-snb5/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html

  * igt@kms_psr@psr2_sprite_plane_move:
    - shard-iclb:         [PASS][13] -> [SKIP][14] ([fdo#109441]) +3 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6089/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/shard-iclb1/igt@kms_psr@psr2_sprite_plane_move.html

  * igt@kms_setmode@basic:
    - shard-apl:          [PASS][15] -> [FAIL][16] ([fdo#99912])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6089/shard-apl6/igt@kms_setmode@basic.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/shard-apl6/igt@kms_setmode@basic.html
    - shard-kbl:          [PASS][17] -> [FAIL][18] ([fdo#99912])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6089/shard-kbl2/igt@kms_setmode@basic.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/shard-kbl6/igt@kms_setmode@basic.html

  
#### Possible fixes ####

  * igt@gem_ctx_isolation@bcs0-s3:
    - shard-kbl:          [DMESG-WARN][19] ([fdo#108566]) -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6089/shard-kbl7/igt@gem_ctx_isolation@bcs0-s3.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/shard-kbl1/igt@gem_ctx_isolation@bcs0-s3.html

  * igt@gem_mmap_gtt@forked-medium-copy-xy:
    - shard-iclb:         [INCOMPLETE][21] ([fdo#107713] / [fdo#109100]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6089/shard-iclb6/igt@gem_mmap_gtt@forked-medium-copy-xy.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/shard-iclb1/igt@gem_mmap_gtt@forked-medium-copy-xy.html

  * igt@gem_tiled_swapping@non-threaded:
    - shard-iclb:         [FAIL][23] ([fdo#108686]) -> [PASS][24]
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6089/shard-iclb5/igt@gem_tiled_swapping@non-threaded.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/shard-iclb5/igt@gem_tiled_swapping@non-threaded.html

  * igt@i915_pm_rpm@gem-execbuf:
    - shard-apl:          [INCOMPLETE][25] ([fdo#103927]) -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6089/shard-apl6/igt@i915_pm_rpm@gem-execbuf.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/shard-apl6/igt@i915_pm_rpm@gem-execbuf.html

  * igt@i915_suspend@sysfs-reader:
    - shard-apl:          [DMESG-WARN][27] ([fdo#108566]) -> [PASS][28] +1 similar issue
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6089/shard-apl4/igt@i915_suspend@sysfs-reader.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/shard-apl6/igt@i915_suspend@sysfs-reader.html

  * igt@kms_dp_dsc@basic-dsc-enable-edp:
    - shard-iclb:         [SKIP][29] ([fdo#109349]) -> [PASS][30]
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6089/shard-iclb1/igt@kms_dp_dsc@basic-dsc-enable-edp.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-gtt:
    - shard-iclb:         [FAIL][31] ([fdo#103167]) -> [PASS][32] +5 similar issues
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6089/shard-iclb2/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-gtt.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/shard-iclb3/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-gtt.html

  * igt@kms_plane_lowres@pipe-a-tiling-y:
    - shard-iclb:         [FAIL][33] ([fdo#103166]) -> [PASS][34]
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6089/shard-iclb7/igt@kms_plane_lowres@pipe-a-tiling-y.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/shard-iclb8/igt@kms_plane_lowres@pipe-a-tiling-y.html

  
#### Warnings ####

  * igt@gem_mmap_gtt@forked-big-copy:
    - shard-iclb:         [TIMEOUT][35] ([fdo#109673]) -> [INCOMPLETE][36] ([fdo#107713] / [fdo#109100])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6089/shard-iclb3/igt@gem_mmap_gtt@forked-big-copy.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/shard-iclb6/igt@gem_mmap_gtt@forked-big-copy.html

  * igt@gem_mmap_gtt@forked-big-copy-odd:
    - shard-iclb:         [INCOMPLETE][37] ([fdo#107713] / [fdo#109100]) -> [TIMEOUT][38] ([fdo#109673])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6089/shard-iclb1/igt@gem_mmap_gtt@forked-big-copy-odd.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/shard-iclb2/igt@gem_mmap_gtt@forked-big-copy-odd.html

  
  [fdo#102365]: https://bugs.freedesktop.org/show_bug.cgi?id=102365
  [fdo#102887]: https://bugs.freedesktop.org/show_bug.cgi?id=102887
  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#108686]: https://bugs.freedesktop.org/show_bug.cgi?id=108686
  [fdo#109100]: https://bugs.freedesktop.org/show_bug.cgi?id=109100
  [fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109673]: https://bugs.freedesktop.org/show_bug.cgi?id=109673
  [fdo#110667]: https://bugs.freedesktop.org/show_bug.cgi?id=110667
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (10 -> 6)
------------------------------

  Missing    (4): pig-skl-6260u shard-skl pig-hsw-4770r pig-glk-j5005 


Build changes
-------------

  * IGT: IGT_4991 -> IGTPW_2987
  * Piglit: piglit_4509 -> None

  CI_DRM_6089: c7a46913f77868d15ade90846526d7e4cb910637 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2987: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/
  IGT_4991: 61dd8eec659062eac67823ccd9f2189c3aa36201 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [igt-dev] ✗ Fi.CI.IGT:  failure for tests/kms_chamelium: add HDMI audio test (rev3)
  2019-05-16  9:52 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2019-05-16 10:19   ` Arkadiusz Hiler
  0 siblings, 0 replies; 20+ messages in thread
From: Arkadiusz Hiler @ 2019-05-16 10:19 UTC (permalink / raw)
  To: igt-dev; +Cc: Martin Peres

On Thu, May 16, 2019 at 09:52:36AM +0000, Patchwork wrote:
> == Series Details ==
> 
> Series: tests/kms_chamelium: add HDMI audio test (rev3)
> URL   : https://patchwork.freedesktop.org/series/60626/
> State : failure
> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_6089_full -> IGTPW_2987_full
> ====================================================
> 
> Summary
> -------
> 
>   **FAILURE**
> 
>   Serious unknown changes coming with IGTPW_2987_full absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in IGTPW_2987_full, please notify your bug team to allow them
>   to document this new failure mode, which will reduce false positives in CI.
> 
>   External URL: https://patchwork.freedesktop.org/api/1.0/series/60626/revisions/3/mbox/
> 
> Possible new issues
> -------------------
> 
>   Here are the unknown changes that may have been introduced in IGTPW_2987_full:
> 
> ### IGT changes ###
> 
> #### Possible regressions ####
> 
>   * igt@i915_pm_rpm@debugfs-read:
>     - shard-iclb:         [PASS][1] -> [DMESG-WARN][2]
>    [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6089/shard-iclb6/igt@i915_pm_rpm@debugfs-read.html
>    [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2987/shard-iclb1/igt@i915_pm_rpm@debugfs-read.html


Yet another false positive. CCing Martin.
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2019-05-16 10:20 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-15  7:29 [igt-dev] [PATCH i-g-t v4 0/9] tests/kms_chamelium: add HDMI audio test Simon Ser
2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 1/9] tests/kms_chamelium: skip if GetAudioFormat is not supported Simon Ser
2019-05-16  7:27   ` [igt-dev] [PATCH i-g-t v5] " Simon Ser
2019-05-16  8:30     ` Arkadiusz Hiler
2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 2/9] lib/igt_edid: add support for Short Audio Descriptors Simon Ser
2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 3/9] lib/igt_edid: add support for Vendor Specific Data blocks Simon Ser
2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 4/9] lib/igt_chamelium: add CHAMELIUM_DEFAULT_EDID Simon Ser
2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 5/9] tests/kms_chamelium: generate an EDID with audio support Simon Ser
2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 6/9] tests/kms_chamelium: disable >48KHz audio tests Simon Ser
2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 7/9] tests/kms_chamelium: enable audio test on HDMI ports Simon Ser
2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 8/9] tests/kms_chamelium: don't abort audio test on first fail Simon Ser
2019-05-15  7:29 ` [igt-dev] [PATCH i-g-t v4 9/9] HAX: add {dp, hdmi}-audio test to fast-feedback Simon Ser
2019-05-15  8:25 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_chamelium: add HDMI audio test (rev2) Patchwork
2019-05-15  8:36   ` Ser, Simon
2019-05-15 13:30     ` Arkadiusz Hiler
2019-05-16  9:44     ` Petri Latvala
2019-05-15 16:37 ` [igt-dev] ✓ Fi.CI.IGT: success " Patchwork
2019-05-16  7:58 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_chamelium: add HDMI audio test (rev3) Patchwork
2019-05-16  9:52 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2019-05-16 10:19   ` Arkadiusz Hiler

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.