public inbox for igt-dev@lists.freedesktop.org
 help / color / mirror / Atom feed
* [igt-dev] [RFC PATCH 0/3] Chamelium audio InfoFrame tests
@ 2019-07-16 11:58 Simon Ser
  2019-07-16 11:58 ` [igt-dev] [RFC PATCH 1/3] lib/igt_infoframe: new library Simon Ser
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Simon Ser @ 2019-07-16 11:58 UTC (permalink / raw)
  To: igt-dev

This adds a new check in the audio tests for audio InfoFrames. The test is
pretty simple but lays down the foundations for other InfoFrame tests.

The series is marked as RFC because the second patch doesn't check for
Chamelium support for GetLastInfoFrame. Adding this depends on the in-review
patch "lib/igt_chamelium: add chamelium_supports_get_video_params".

Simon Ser (3):
  lib/igt_infoframe: new library
  lib/igt_chamelium: add support for GetLastInfoFrame
  tests/kms_chamelium: add InfoFrame checks to audio tests

 lib/Makefile.sources  |  2 +
 lib/igt_chamelium.c   | 52 ++++++++++++++++++++++++
 lib/igt_chamelium.h   | 18 +++++++++
 lib/igt_infoframe.c   | 94 +++++++++++++++++++++++++++++++++++++++++++
 lib/igt_infoframe.h   | 64 +++++++++++++++++++++++++++++
 lib/meson.build       |  1 +
 tests/kms_chamelium.c | 50 +++++++++++++++++++++++
 7 files changed, 281 insertions(+)
 create mode 100644 lib/igt_infoframe.c
 create mode 100644 lib/igt_infoframe.h

--
2.22.0

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

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

* [igt-dev] [RFC PATCH 1/3] lib/igt_infoframe: new library
  2019-07-16 11:58 [igt-dev] [RFC PATCH 0/3] Chamelium audio InfoFrame tests Simon Ser
@ 2019-07-16 11:58 ` Simon Ser
  2019-07-16 11:58 ` [igt-dev] [RFC PATCH 2/3] lib/igt_chamelium: add support for GetLastInfoFrame Simon Ser
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Simon Ser @ 2019-07-16 11:58 UTC (permalink / raw)
  To: igt-dev

This commit introduces a new igt_infoframe library, used to parse InfoFrames.
For now only audio InfoFrames are supported. Support for AVI and other types of
InfoFrames is planned (and will come with the matching tests).

Unlike igt_edid, InfoFrames are parsed into a higher-level user-friendly
struct.

Signed-off-by: Simon Ser <simon.ser@intel.com>
---
 lib/Makefile.sources |  2 +
 lib/igt_infoframe.c  | 94 ++++++++++++++++++++++++++++++++++++++++++++
 lib/igt_infoframe.h  | 64 ++++++++++++++++++++++++++++++
 lib/meson.build      |  1 +
 4 files changed, 161 insertions(+)
 create mode 100644 lib/igt_infoframe.c
 create mode 100644 lib/igt_infoframe.h

diff --git a/lib/Makefile.sources b/lib/Makefile.sources
index e16de86eaa08..cf094ab89ac3 100644
--- a/lib/Makefile.sources
+++ b/lib/Makefile.sources
@@ -41,6 +41,8 @@ lib_source_list =	 	\
 	igt_gvt.h		\
 	igt_halffloat.c		\
 	igt_halffloat.h		\
+	igt_infoframe.c		\
+	igt_infoframe.h		\
 	igt_matrix.c		\
 	igt_matrix.h		\
 	igt_primes.c		\
diff --git a/lib/igt_infoframe.c b/lib/igt_infoframe.c
new file mode 100644
index 000000000000..7e4fb45881a6
--- /dev/null
+++ b/lib/igt_infoframe.c
@@ -0,0 +1,94 @@
+/*
+ * Copyright © 2019 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors: Simon Ser <simon.ser@intel.com>
+ */
+
+#include "config.h"
+
+#include <string.h>
+
+#include "igt_infoframe.h"
+
+/**
+ * SECTION:igt_infoframe
+ * @short_description: InfoFrame parsing library
+ * @title: InfoFrame
+ * @include: igt_infoframe.h
+ *
+ * This library provides helpers to parse InfoFrames as defined in CEA-861-D
+ * section 6.
+ */
+
+static const int sampling_freqs[] = {
+	-1, /* refer to stream header */
+	33000,
+	44100,
+	48000,
+	88200,
+	96000,
+	176400,
+	192000,
+};
+
+static const size_t sampling_freqs_len = sizeof(sampling_freqs) / sizeof(sampling_freqs[0]);
+
+static const int sample_sizes[] = {
+	-1, /* refer to stream header */
+	16,
+	20,
+	24,
+};
+
+static const size_t sample_sizes_len = sizeof(sample_sizes) / sizeof(sample_sizes[0]);
+
+bool infoframe_audio_parse(struct infoframe_audio *infoframe, int version,
+			   const uint8_t *buf, size_t buf_size)
+{
+	int channel_count;
+	size_t sampling_freq_idx, sample_size_idx;
+
+	memset(infoframe, 0, sizeof(*infoframe));
+
+	if (version != 1 || buf_size < 5)
+		return false;
+
+	infoframe->coding_type = buf[0] >> 4;
+
+	channel_count = buf[0] & 0x7;
+	if (channel_count == 0)
+		infoframe->channel_count = -1;
+	else
+		infoframe->channel_count = channel_count + 1;
+
+	sampling_freq_idx = (buf[1] >> 2) & 0x7;
+	if (sampling_freq_idx >= sampling_freqs_len)
+		return false;
+	infoframe->sampling_freq = sampling_freqs[sampling_freq_idx];
+
+	sample_size_idx = buf[1] & 0x3;
+	if (sample_size_idx >= sample_sizes_len)
+		return false;
+	infoframe->sample_size = sample_sizes[sample_size_idx];
+
+	return true;
+}
diff --git a/lib/igt_infoframe.h b/lib/igt_infoframe.h
new file mode 100644
index 000000000000..35daa3ea169d
--- /dev/null
+++ b/lib/igt_infoframe.h
@@ -0,0 +1,64 @@
+/*
+ * Copyright © 2019 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors: Simon Ser <simon.ser@intel.com>
+ */
+
+#ifndef IGT_INFOFRAME_H
+#define IGT_INFOFRAME_H
+
+#include "config.h"
+
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+
+enum infoframe_audio_coding_type {
+	INFOFRAME_AUDIO_CT_UNSPECIFIED = 0, /* refer to stream header */
+	INFOFRAME_AUDIO_CT_PCM = 1, /* IEC 60958 PCM */
+	INFOFRAME_AUDIO_CT_AC3 = 2,
+	INFOFRAME_AUDIO_CT_MPEG1 = 3,
+	INFOFRAME_AUDIO_CT_MP3 = 4,
+	INFOFRAME_AUDIO_CT_MPEG2 = 5,
+	INFOFRAME_AUDIO_CT_AAC = 6,
+	INFOFRAME_AUDIO_CT_DTS = 7,
+	INFOFRAME_AUDIO_CT_ATRAC = 8,
+	INFOFRAME_AUDIO_CT_ONE_BIT = 9,
+	INFOFRAME_AUDIO_CT_DOLBY = 10, /* Dolby Digital + */
+	INFOFRAME_AUDIO_CT_DTS_HD = 11,
+	INFOFRAME_AUDIO_CT_MAT = 12,
+	INFOFRAME_AUDIO_CT_DST = 13,
+	INFOFRAME_AUDIO_CT_WMA_PRO = 14,
+};
+
+struct infoframe_audio {
+	enum infoframe_audio_coding_type coding_type;
+	int channel_count; /* -1 if unspecified */
+	int sampling_freq; /* in Hz, -1 if unspecified */
+	int sample_size; /* in bits, -1 if unspecified */
+	/* TODO: speaker allocation */
+};
+
+bool infoframe_audio_parse(struct infoframe_audio *infoframe, int version,
+			   const uint8_t *buf, size_t buf_size);
+
+#endif
diff --git a/lib/meson.build b/lib/meson.build
index 157624e71952..221ae28c084b 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -61,6 +61,7 @@ lib_sources = [
 	'igt_amd.c',
 	'igt_edid.c',
 	'igt_eld.c',
+	'igt_infoframe.c',
 ]
 
 lib_deps = [
-- 
2.22.0

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

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

* [igt-dev] [RFC PATCH 2/3] lib/igt_chamelium: add support for GetLastInfoFrame
  2019-07-16 11:58 [igt-dev] [RFC PATCH 0/3] Chamelium audio InfoFrame tests Simon Ser
  2019-07-16 11:58 ` [igt-dev] [RFC PATCH 1/3] lib/igt_infoframe: new library Simon Ser
@ 2019-07-16 11:58 ` Simon Ser
  2019-07-16 11:58 ` [igt-dev] [RFC PATCH 3/3] tests/kms_chamelium: add InfoFrame checks to audio tests Simon Ser
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Simon Ser @ 2019-07-16 11:58 UTC (permalink / raw)
  To: igt-dev

This new call retrieves the last InfoFrame received by the Chamelium board.

TODO: detect GetLastInfoFrame support

Signed-off-by: Simon Ser <simon.ser@intel.com>
---
 lib/igt_chamelium.c | 52 +++++++++++++++++++++++++++++++++++++++++++++
 lib/igt_chamelium.h | 18 ++++++++++++++++
 2 files changed, 70 insertions(+)

diff --git a/lib/igt_chamelium.c b/lib/igt_chamelium.c
index 966d78dce146..cbf9a012bdf8 100644
--- a/lib/igt_chamelium.c
+++ b/lib/igt_chamelium.c
@@ -960,6 +960,58 @@ int chamelium_get_captured_frame_count(struct chamelium *chamelium)
 	return ret;
 }
 
+static const char *
+chamelium_infoframe_type_str(enum chamelium_infoframe_type type)
+{
+	switch (type) {
+	case CHAMELIUM_INFOFRAME_AVI:
+		return "avi";
+	case CHAMELIUM_INFOFRAME_AUDIO:
+		return "audio";
+	case CHAMELIUM_INFOFRAME_MPEG:
+		return "mpeg";
+	case CHAMELIUM_INFOFRAME_VENDOR:
+		return "vendor";
+	}
+	assert(0); /* unreachable */
+}
+
+struct chamelium_infoframe *
+chamelium_get_last_infoframe(struct chamelium *chamelium,
+			     struct chamelium_port *port,
+			     enum chamelium_infoframe_type type)
+{
+	xmlrpc_value *res, *res_version, *res_payload;
+	struct chamelium_infoframe *infoframe;
+	const unsigned char *payload;
+
+	res = chamelium_rpc(chamelium, NULL, "GetLastInfoFrame", "(is)",
+			    port->id, chamelium_infoframe_type_str(type));
+	xmlrpc_struct_find_value(&chamelium->env, res, "version", &res_version);
+	xmlrpc_struct_find_value(&chamelium->env, res, "payload", &res_payload);
+	infoframe = calloc(1, sizeof(*infoframe));
+	xmlrpc_read_int(&chamelium->env, res_version, &infoframe->version);
+	xmlrpc_read_base64(&chamelium->env, res_payload,
+			   &infoframe->payload_size, &payload);
+	/* xmlrpc-c's docs say payload is actually not constant */
+	infoframe->payload = (uint8_t *) payload;
+	xmlrpc_DECREF(res_version);
+	xmlrpc_DECREF(res_payload);
+	xmlrpc_DECREF(res);
+
+	if (infoframe->payload_size == 0) {
+		chamelium_infoframe_destroy(infoframe);
+		return NULL;
+	}
+	return infoframe;
+}
+
+void chamelium_infoframe_destroy(struct chamelium_infoframe *infoframe)
+{
+	free(infoframe->payload);
+	free(infoframe);
+}
+
 /**
  * chamelium_supports_get_audio_format: check the Chamelium device supports
  * retrieving the capture audio format.
diff --git a/lib/igt_chamelium.h b/lib/igt_chamelium.h
index ce9e9ced75d9..1f1cb7cac727 100644
--- a/lib/igt_chamelium.h
+++ b/lib/igt_chamelium.h
@@ -59,6 +59,19 @@ struct chamelium_audio_file {
 	int channels;
 };
 
+enum chamelium_infoframe_type {
+	CHAMELIUM_INFOFRAME_AVI,
+	CHAMELIUM_INFOFRAME_AUDIO,
+	CHAMELIUM_INFOFRAME_MPEG,
+	CHAMELIUM_INFOFRAME_VENDOR,
+};
+
+struct chamelium_infoframe {
+	int version;
+	size_t payload_size;
+	uint8_t *payload;
+};
+
 struct chamelium_edid;
 
 /**
@@ -122,6 +135,10 @@ void chamelium_start_capture(struct chamelium *chamelium,
 void chamelium_stop_capture(struct chamelium *chamelium, int frame_count);
 void chamelium_capture(struct chamelium *chamelium, struct chamelium_port *port,
 		       int x, int y, int w, int h, int frame_count);
+struct chamelium_infoframe *
+chamelium_get_last_infoframe(struct chamelium *chamelium,
+			     struct chamelium_port *port,
+			     enum chamelium_infoframe_type type);
 bool chamelium_has_audio_support(struct chamelium *chamelium,
 				 struct chamelium_port *port);
 void chamelium_get_audio_channel_mapping(struct chamelium *chamelium,
@@ -166,5 +183,6 @@ void chamelium_crop_analog_frame(struct chamelium_frame_dump *dump, int width,
 				 int height);
 void chamelium_destroy_frame_dump(struct chamelium_frame_dump *dump);
 void chamelium_destroy_audio_file(struct chamelium_audio_file *audio_file);
+void chamelium_infoframe_destroy(struct chamelium_infoframe *infoframe);
 
 #endif /* IGT_CHAMELIUM_H */
-- 
2.22.0

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

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

* [igt-dev] [RFC PATCH 3/3] tests/kms_chamelium: add InfoFrame checks to audio tests
  2019-07-16 11:58 [igt-dev] [RFC PATCH 0/3] Chamelium audio InfoFrame tests Simon Ser
  2019-07-16 11:58 ` [igt-dev] [RFC PATCH 1/3] lib/igt_infoframe: new library Simon Ser
  2019-07-16 11:58 ` [igt-dev] [RFC PATCH 2/3] lib/igt_chamelium: add support for GetLastInfoFrame Simon Ser
@ 2019-07-16 11:58 ` Simon Ser
  2019-07-17 13:36   ` Martin Peres
  2019-07-16 13:18 ` [igt-dev] ✓ Fi.CI.BAT: success for Chamelium audio InfoFrame tests Patchwork
  2019-07-16 14:26 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  4 siblings, 1 reply; 7+ messages in thread
From: Simon Ser @ 2019-07-16 11:58 UTC (permalink / raw)
  To: igt-dev

If the DUT sends an InfoFrame, check that its values are correct. Per the HDMI
and DP specs, most of the fields can be set to "refer to stream header" because
some information is duplicated. The DP spec also says that InfoFrames are
optional if mono or stereo audio is used (because there's no channel speaker
allocation).

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

diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c
index 321fb16b73bd..e754c4734736 100644
--- a/tests/kms_chamelium.c
+++ b/tests/kms_chamelium.c
@@ -29,6 +29,7 @@
 #include "igt_vc4.h"
 #include "igt_edid.h"
 #include "igt_eld.h"
+#include "igt_infoframe.h"
 
 #include <fcntl.h>
 #include <pthread.h>
@@ -1014,6 +1015,53 @@ static void audio_state_stop(struct audio_state *state, bool success)
 		  success ? "ALL GREEN" : "FAILED");
 }
 
+static void check_audio_infoframe(struct audio_state *state)
+{
+	struct chamelium_infoframe *infoframe;
+	struct infoframe_audio infoframe_audio;
+	struct infoframe_audio expected = {0};
+	bool ok;
+
+	expected.coding_type = INFOFRAME_AUDIO_CT_PCM;
+	expected.channel_count = state->playback.channels;
+	expected.sampling_freq = state->playback.rate;
+	expected.sample_size = snd_pcm_format_width(state->playback.format);
+
+	infoframe = chamelium_get_last_infoframe(state->chamelium, state->port,
+						 CHAMELIUM_INFOFRAME_AUDIO);
+	if (infoframe == NULL && state->playback.channels <= 2) {
+		/* Audio InfoFrames are optional for mono and stereo audio */
+		igt_debug("Skipping audio InfoFrame check: "
+			  "no InfoFrame received\n");
+		return;
+	}
+	igt_assert_f(infoframe != NULL, "no audio InfoFrame received\n");
+
+	ok = infoframe_audio_parse(&infoframe_audio, infoframe->version,
+				   infoframe->payload, infoframe->payload_size);
+	chamelium_infoframe_destroy(infoframe);
+	igt_assert_f(ok, "failed to parse audio InfoFrame\n");
+
+	igt_debug("Checking audio InfoFrame:\n");
+	igt_debug("coding_type: got %d, expected %d\n",
+		  infoframe_audio.coding_type, expected.coding_type);
+	igt_debug("channel_count: got %d, expected %d\n",
+		  infoframe_audio.channel_count, expected.channel_count);
+	igt_debug("sampling_freq: got %d, expected %d\n",
+		  infoframe_audio.sampling_freq, expected.sampling_freq);
+	igt_debug("sample_size: got %d, expected %d\n",
+		  infoframe_audio.sample_size, expected.sample_size);
+
+	if (infoframe_audio.coding_type != INFOFRAME_AUDIO_CT_UNSPECIFIED)
+		igt_assert(infoframe_audio.coding_type == expected.coding_type);
+	if (infoframe_audio.channel_count >= 0)
+		igt_assert(infoframe_audio.channel_count == expected.channel_count);
+	if (infoframe_audio.sampling_freq >= 0)
+		igt_assert(infoframe_audio.sampling_freq == expected.sampling_freq);
+	if (infoframe_audio.sample_size >= 0)
+		igt_assert(infoframe_audio.sample_size == expected.sample_size);
+}
+
 static int
 audio_output_frequencies_callback(void *data, void *buffer, int samples)
 {
@@ -1139,6 +1187,8 @@ static bool test_audio_frequencies(struct audio_state *state)
 	free(channel);
 	audio_signal_fini(state->signal);
 
+	check_audio_infoframe(state);
+
 	return success;
 }
 
-- 
2.22.0

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

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

* [igt-dev] ✓ Fi.CI.BAT: success for Chamelium audio InfoFrame tests
  2019-07-16 11:58 [igt-dev] [RFC PATCH 0/3] Chamelium audio InfoFrame tests Simon Ser
                   ` (2 preceding siblings ...)
  2019-07-16 11:58 ` [igt-dev] [RFC PATCH 3/3] tests/kms_chamelium: add InfoFrame checks to audio tests Simon Ser
@ 2019-07-16 13:18 ` Patchwork
  2019-07-16 14:26 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2019-07-16 13:18 UTC (permalink / raw)
  To: Simon Ser; +Cc: igt-dev

== Series Details ==

Series: Chamelium audio InfoFrame tests
URL   : https://patchwork.freedesktop.org/series/63750/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6491 -> IGTPW_3272
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/63750/revisions/1/mbox/

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

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

### IGT changes ###

#### Issues hit ####

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

  
#### Possible fixes ####

  * igt@gem_exec_parallel@basic:
    - fi-icl-dsi:         [INCOMPLETE][3] ([fdo#107713]) -> [PASS][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/fi-icl-dsi/igt@gem_exec_parallel@basic.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/fi-icl-dsi/igt@gem_exec_parallel@basic.html

  * igt@gem_exec_reloc@basic-gtt:
    - fi-icl-u3:          [DMESG-WARN][5] ([fdo#107724]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/fi-icl-u3/igt@gem_exec_reloc@basic-gtt.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/fi-icl-u3/igt@gem_exec_reloc@basic-gtt.html

  * igt@i915_pm_rps@basic-api:
    - {fi-icl-u4}:        [DMESG-WARN][7] ([fdo#105602]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/fi-icl-u4/igt@i915_pm_rps@basic-api.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/fi-icl-u4/igt@i915_pm_rps@basic-api.html

  * igt@i915_selftest@live_hangcheck:
    - fi-icl-u3:          [DMESG-FAIL][9] ([fdo#111144]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/fi-icl-u3/igt@i915_selftest@live_hangcheck.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/fi-icl-u3/igt@i915_selftest@live_hangcheck.html

  * igt@kms_chamelium@dp-edid-read:
    - fi-kbl-7500u:       [WARN][11] ([fdo#109483]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/fi-kbl-7500u/igt@kms_chamelium@dp-edid-read.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/fi-kbl-7500u/igt@kms_chamelium@dp-edid-read.html

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

  [fdo#105602]: https://bugs.freedesktop.org/show_bug.cgi?id=105602
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#109483]: https://bugs.freedesktop.org/show_bug.cgi?id=109483
  [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485
  [fdo#111045]: https://bugs.freedesktop.org/show_bug.cgi?id=111045
  [fdo#111046 ]: https://bugs.freedesktop.org/show_bug.cgi?id=111046 
  [fdo#111144]: https://bugs.freedesktop.org/show_bug.cgi?id=111144


Participating hosts (55 -> 44)
------------------------------

  Missing    (11): fi-kbl-soraka fi-cml-u2 fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-icl-y fi-icl-guc fi-byt-clapper fi-bdw-samus fi-cml-u 


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

  * IGT: IGT_5100 -> IGTPW_3272

  CI_DRM_6491: ae567b2a500c9bf077df32863a3303c15f773d63 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3272: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/
  IGT_5100: 0ea68a1efbfcc4961f2f816ab59e4ad8136c6250 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for Chamelium audio InfoFrame tests
  2019-07-16 11:58 [igt-dev] [RFC PATCH 0/3] Chamelium audio InfoFrame tests Simon Ser
                   ` (3 preceding siblings ...)
  2019-07-16 13:18 ` [igt-dev] ✓ Fi.CI.BAT: success for Chamelium audio InfoFrame tests Patchwork
@ 2019-07-16 14:26 ` Patchwork
  4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2019-07-16 14:26 UTC (permalink / raw)
  To: Simon Ser; +Cc: igt-dev

== Series Details ==

Series: Chamelium audio InfoFrame tests
URL   : https://patchwork.freedesktop.org/series/63750/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6491_full -> IGTPW_3272_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/63750/revisions/1/mbox/

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

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

### IGT changes ###

#### Issues hit ####

  * igt@i915_pm_rc6_residency@rc6-accuracy:
    - shard-iclb:         [PASS][1] -> [SKIP][2] ([fdo#110933])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-iclb7/igt@i915_pm_rc6_residency@rc6-accuracy.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-iclb4/igt@i915_pm_rc6_residency@rc6-accuracy.html
    - shard-snb:          [PASS][3] -> [SKIP][4] ([fdo#109271])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-snb2/igt@i915_pm_rc6_residency@rc6-accuracy.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-snb4/igt@i915_pm_rc6_residency@rc6-accuracy.html

  * igt@i915_pm_rpm@legacy-planes-dpms:
    - shard-iclb:         [PASS][5] -> [INCOMPLETE][6] ([fdo#107713] / [fdo#108840] / [fdo#109960])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-iclb3/igt@i915_pm_rpm@legacy-planes-dpms.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-iclb7/igt@i915_pm_rpm@legacy-planes-dpms.html

  * igt@kms_cursor_crc@pipe-a-cursor-64x64-random:
    - shard-apl:          [PASS][7] -> [FAIL][8] ([fdo#103232]) +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-apl1/igt@kms_cursor_crc@pipe-a-cursor-64x64-random.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-apl4/igt@kms_cursor_crc@pipe-a-cursor-64x64-random.html
    - shard-kbl:          [PASS][9] -> [FAIL][10] ([fdo#103232])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-kbl6/igt@kms_cursor_crc@pipe-a-cursor-64x64-random.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-kbl3/igt@kms_cursor_crc@pipe-a-cursor-64x64-random.html

  * igt@kms_flip@2x-dpms-vs-vblank-race:
    - shard-glk:          [PASS][11] -> [FAIL][12] ([fdo#103060])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-glk3/igt@kms_flip@2x-dpms-vs-vblank-race.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-glk3/igt@kms_flip@2x-dpms-vs-vblank-race.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-apl:          [PASS][13] -> [DMESG-WARN][14] ([fdo#108566]) +4 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-apl4/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-apl6/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt:
    - shard-iclb:         [PASS][15] -> [FAIL][16] ([fdo#103167]) +2 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-iclb3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-iclb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt.html

  * igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
    - shard-iclb:         [PASS][17] -> [INCOMPLETE][18] ([fdo#107713] / [fdo#110036 ])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-iclb4/igt@kms_plane@pixel-format-pipe-a-planes-source-clamping.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-iclb1/igt@kms_plane@pixel-format-pipe-a-planes-source-clamping.html

  * igt@kms_plane_lowres@pipe-a-tiling-y:
    - shard-iclb:         [PASS][19] -> [FAIL][20] ([fdo#103166])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-iclb5/igt@kms_plane_lowres@pipe-a-tiling-y.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-iclb7/igt@kms_plane_lowres@pipe-a-tiling-y.html

  * igt@kms_psr2_su@frontbuffer:
    - shard-iclb:         [PASS][21] -> [SKIP][22] ([fdo#109642] / [fdo#111068])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-iclb2/igt@kms_psr2_su@frontbuffer.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-iclb6/igt@kms_psr2_su@frontbuffer.html

  * igt@kms_psr@psr2_sprite_blt:
    - shard-iclb:         [PASS][23] -> [SKIP][24] ([fdo#109441]) +2 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-iclb2/igt@kms_psr@psr2_sprite_blt.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-iclb5/igt@kms_psr@psr2_sprite_blt.html

  
#### Possible fixes ####

  * igt@gem_create@create-clear:
    - shard-hsw:          [INCOMPLETE][25] ([fdo#103540] / [fdo#110401]) -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-hsw6/igt@gem_create@create-clear.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-hsw8/igt@gem_create@create-clear.html

  * igt@gem_tiled_swapping@non-threaded:
    - shard-apl:          [DMESG-WARN][27] ([fdo#108686]) -> [PASS][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-apl5/igt@gem_tiled_swapping@non-threaded.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-apl5/igt@gem_tiled_swapping@non-threaded.html

  * igt@i915_suspend@fence-restore-untiled:
    - shard-apl:          [DMESG-WARN][29] ([fdo#108566]) -> [PASS][30] +3 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-apl1/igt@i915_suspend@fence-restore-untiled.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-apl7/igt@i915_suspend@fence-restore-untiled.html

  * igt@kms_cursor_edge_walk@pipe-c-256x256-right-edge:
    - shard-iclb:         [INCOMPLETE][31] ([fdo#107713]) -> [PASS][32]
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-iclb7/igt@kms_cursor_edge_walk@pipe-c-256x256-right-edge.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-iclb3/igt@kms_cursor_edge_walk@pipe-c-256x256-right-edge.html

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic:
    - shard-hsw:          [FAIL][33] ([fdo#105767]) -> [PASS][34]
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-hsw8/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-hsw8/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-hsw:          [INCOMPLETE][35] ([fdo#103540]) -> [PASS][36]
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-hsw5/igt@kms_flip@flip-vs-suspend-interruptible.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-hsw8/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt:
    - shard-iclb:         [FAIL][37] ([fdo#103167]) -> [PASS][38] +6 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-iclb4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-iclb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html

  * igt@kms_psr@psr2_primary_mmap_cpu:
    - shard-iclb:         [SKIP][39] ([fdo#109441]) -> [PASS][40] +1 similar issue
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-iclb3/igt@kms_psr@psr2_primary_mmap_cpu.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html

  * igt@kms_setmode@basic:
    - shard-apl:          [FAIL][41] ([fdo#99912]) -> [PASS][42]
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-apl3/igt@kms_setmode@basic.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-apl4/igt@kms_setmode@basic.html
    - shard-kbl:          [FAIL][43] ([fdo#99912]) -> [PASS][44]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6491/shard-kbl7/igt@kms_setmode@basic.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/shard-kbl3/igt@kms_setmode@basic.html

  
  [fdo#103060]: https://bugs.freedesktop.org/show_bug.cgi?id=103060
  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#105767]: https://bugs.freedesktop.org/show_bug.cgi?id=105767
  [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#108840]: https://bugs.freedesktop.org/show_bug.cgi?id=108840
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#109960]: https://bugs.freedesktop.org/show_bug.cgi?id=109960
  [fdo#110036 ]: https://bugs.freedesktop.org/show_bug.cgi?id=110036 
  [fdo#110401]: https://bugs.freedesktop.org/show_bug.cgi?id=110401
  [fdo#110933]: https://bugs.freedesktop.org/show_bug.cgi?id=110933
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [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_5100 -> IGTPW_3272
  * Piglit: piglit_4509 -> None

  CI_DRM_6491: ae567b2a500c9bf077df32863a3303c15f773d63 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3272: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3272/
  IGT_5100: 0ea68a1efbfcc4961f2f816ab59e4ad8136c6250 @ 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_3272/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [RFC PATCH 3/3] tests/kms_chamelium: add InfoFrame checks to audio tests
  2019-07-16 11:58 ` [igt-dev] [RFC PATCH 3/3] tests/kms_chamelium: add InfoFrame checks to audio tests Simon Ser
@ 2019-07-17 13:36   ` Martin Peres
  0 siblings, 0 replies; 7+ messages in thread
From: Martin Peres @ 2019-07-17 13:36 UTC (permalink / raw)
  To: Simon Ser, igt-dev

On 16/07/2019 14:58, Simon Ser wrote:
> If the DUT sends an InfoFrame, check that its values are correct. Per the HDMI
> and DP specs, most of the fields can be set to "refer to stream header" because
> some information is duplicated. The DP spec also says that InfoFrames are
> optional if mono or stereo audio is used (because there's no channel speaker
> allocation).
> 
> Signed-off-by: Simon Ser <simon.ser@intel.com>

Looks good! With the TODO of patch 2 addressed, the series is:

Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
> ---
>  tests/kms_chamelium.c | 50 +++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 50 insertions(+)
> 
> diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c
> index 321fb16b73bd..e754c4734736 100644
> --- a/tests/kms_chamelium.c
> +++ b/tests/kms_chamelium.c
> @@ -29,6 +29,7 @@
>  #include "igt_vc4.h"
>  #include "igt_edid.h"
>  #include "igt_eld.h"
> +#include "igt_infoframe.h"
>  
>  #include <fcntl.h>
>  #include <pthread.h>
> @@ -1014,6 +1015,53 @@ static void audio_state_stop(struct audio_state *state, bool success)
>  		  success ? "ALL GREEN" : "FAILED");
>  }
>  
> +static void check_audio_infoframe(struct audio_state *state)
> +{
> +	struct chamelium_infoframe *infoframe;
> +	struct infoframe_audio infoframe_audio;
> +	struct infoframe_audio expected = {0};
> +	bool ok;
> +
> +	expected.coding_type = INFOFRAME_AUDIO_CT_PCM;
> +	expected.channel_count = state->playback.channels;
> +	expected.sampling_freq = state->playback.rate;
> +	expected.sample_size = snd_pcm_format_width(state->playback.format);
> +
> +	infoframe = chamelium_get_last_infoframe(state->chamelium, state->port,
> +						 CHAMELIUM_INFOFRAME_AUDIO);
> +	if (infoframe == NULL && state->playback.channels <= 2) {
> +		/* Audio InfoFrames are optional for mono and stereo audio */
> +		igt_debug("Skipping audio InfoFrame check: "
> +			  "no InfoFrame received\n");
> +		return;
> +	}
> +	igt_assert_f(infoframe != NULL, "no audio InfoFrame received\n");
> +
> +	ok = infoframe_audio_parse(&infoframe_audio, infoframe->version,
> +				   infoframe->payload, infoframe->payload_size);
> +	chamelium_infoframe_destroy(infoframe);
> +	igt_assert_f(ok, "failed to parse audio InfoFrame\n");
> +
> +	igt_debug("Checking audio InfoFrame:\n");
> +	igt_debug("coding_type: got %d, expected %d\n",
> +		  infoframe_audio.coding_type, expected.coding_type);
> +	igt_debug("channel_count: got %d, expected %d\n",
> +		  infoframe_audio.channel_count, expected.channel_count);
> +	igt_debug("sampling_freq: got %d, expected %d\n",
> +		  infoframe_audio.sampling_freq, expected.sampling_freq);
> +	igt_debug("sample_size: got %d, expected %d\n",
> +		  infoframe_audio.sample_size, expected.sample_size);
> +
> +	if (infoframe_audio.coding_type != INFOFRAME_AUDIO_CT_UNSPECIFIED)
> +		igt_assert(infoframe_audio.coding_type == expected.coding_type);
> +	if (infoframe_audio.channel_count >= 0)
> +		igt_assert(infoframe_audio.channel_count == expected.channel_count);
> +	if (infoframe_audio.sampling_freq >= 0)
> +		igt_assert(infoframe_audio.sampling_freq == expected.sampling_freq);
> +	if (infoframe_audio.sample_size >= 0)
> +		igt_assert(infoframe_audio.sample_size == expected.sample_size);
> +}
> +
>  static int
>  audio_output_frequencies_callback(void *data, void *buffer, int samples)
>  {
> @@ -1139,6 +1187,8 @@ static bool test_audio_frequencies(struct audio_state *state)
>  	free(channel);
>  	audio_signal_fini(state->signal);
>  
> +	check_audio_infoframe(state);
> +
>  	return success;
>  }
>  
> 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

end of thread, other threads:[~2019-07-17 13:36 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-16 11:58 [igt-dev] [RFC PATCH 0/3] Chamelium audio InfoFrame tests Simon Ser
2019-07-16 11:58 ` [igt-dev] [RFC PATCH 1/3] lib/igt_infoframe: new library Simon Ser
2019-07-16 11:58 ` [igt-dev] [RFC PATCH 2/3] lib/igt_chamelium: add support for GetLastInfoFrame Simon Ser
2019-07-16 11:58 ` [igt-dev] [RFC PATCH 3/3] tests/kms_chamelium: add InfoFrame checks to audio tests Simon Ser
2019-07-17 13:36   ` Martin Peres
2019-07-16 13:18 ` [igt-dev] ✓ Fi.CI.BAT: success for Chamelium audio InfoFrame tests Patchwork
2019-07-16 14:26 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox