Re: [igt-dev] [PATCH i-g-t] kms_chamelium: Fix test failures from missing outputs/unsupported formats, v2.

Ville Syrjälä
2019-02-25T19:11:00Z

On Thu, Feb 14, 2019 at 11:59:01AM +0100, Maarten Lankhorst wrote:
> Newer platforms don't support this format, but the tests don't check
> if the format is supported on the primary plane.

This sentence is rather confusing. Maybe
"Not all hardware supports all formats, but ..." ?

Otherwise the patch seems sensible to me
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

>
> After enabling an output we also don't refresh the output connection,
> calling igt_output_set_pipe(output, PIPE_NONE) will do so, and prevent
> skips because no connected output is detected.
>
> Changes since v1:
> - Use igt_plane_has_format_mod (Ville).
>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> ---
> tests/kms_chamelium.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c
> index 64f87d3ae474..cab7d751379d 100644
> --- a/tests/kms_chamelium.c
> +++ b/tests/kms_chamelium.c
> @@ -436,6 +436,9 @@ prepare_output(data_t *data,
>
> output = igt_output_from_connector(display, connector);
>
> + /* Refresh pipe to update connected status */
> + igt_output_set_pipe(output, PIPE_NONE);
> +
> for_each_pipe(display, pipe) {
> if (!igt_pipe_connector_valid(pipe, output))
> continue;
> @@ -614,6 +617,8 @@ static void test_display_one_mode(data_t *data, struct chamelium_port *port,
> primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
> igt_assert(primary);
>
> + igt_require(igt_plane_has_format_mod(primary, fourcc, LOCAL_DRM_FORMAT_MOD_NONE));
> +
> mode = &connector->modes[0];
> if (check == CHAMELIUM_CHECK_ANALOG) {
> bool bridge = check_analog_bridge(data, port);
> @@ -642,6 +647,7 @@ static void test_display_all_modes(data_t *data, struct chamelium_port *port,
> connector = chamelium_port_get_connector(data->chamelium, port, false);
> primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
> igt_assert(primary);
> + igt_require(igt_plane_has_format_mod(primary, fourcc, LOCAL_DRM_FORMAT_MOD_NONE));
>
> if (check == CHAMELIUM_CHECK_ANALOG)
> bridge = check_analog_bridge(data, port);
> --
> 2.20.1

--
Ville Syrjälä
Intel