[igt-dev] [PATCH i-g-t 1/2] tests/kms_chamelium: Fix dp-mode-timings test
Petri Latvala
petri.latvala at intel.com
Wed Apr 8 09:17:04 UTC 2020
On Tue, Apr 07, 2020 at 01:13:37PM +0300, Arkadiusz Hiler wrote:
> Chamelium provides us with hsync_offset value which is read form its
> receiver register described as "Hsync start edge to H active start
> edge", vsync_offest is analogous.
>
> Let's calculate the correct things on IGT side.
>
> v2: keep the original checks for HDMI (Petri)
>
> Cc: Petri Latvala <petri.latvala at intel.com>
> Cc: Nidhi Gupta <nidhi1.gupta at intel.com>
> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler at intel.com>
Why does the discrepancy exist in the first place, DP vs HDMI? Just
the receivers handled differently in chameliumd? Is this a
misunderstanding on cham side and we might get a fix later and have to
change this test again?
Oh well. Either way, we don't automatically update chameliumd and will
notice if there's a need to update tests again...
Reviewed-by: Petri Latvala <petri.latvala at intel.com>
> ---
> tests/kms_chamelium.c | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c
> index 77c203d3..69c9de4e 100644
> --- a/tests/kms_chamelium.c
> +++ b/tests/kms_chamelium.c
> @@ -915,10 +915,20 @@ static void check_mode(struct chamelium *chamelium, struct chamelium_port *port,
> chamelium_port_get_video_params(chamelium, port, &video_params);
>
> mode_clock = (double) mode->clock / 1000;
> - mode_hsync_offset = mode->hsync_start - mode->hdisplay;
> - mode_vsync_offset = mode->vsync_start - mode->vdisplay;
> +
> + if (chamelium_port_get_type(port) == DRM_MODE_CONNECTOR_DisplayPort) {
> + /* this is what chamelium understands as offsets for DP */
> + mode_hsync_offset = mode->htotal - mode->hsync_start;
> + mode_vsync_offset = mode->vtotal - mode->vsync_start;
> + } else {
> + /* and this is what they are for other connectors */
> + mode_hsync_offset = mode->hsync_start - mode->hdisplay;
> + mode_vsync_offset = mode->vsync_start - mode->vdisplay;
> + }
> +
> mode_hsync_width = mode->hsync_end - mode->hsync_start;
> mode_vsync_width = mode->vsync_end - mode->vsync_start;
> +
> mode_hsync_polarity = !!(mode->flags & DRM_MODE_FLAG_PHSYNC);
> mode_vsync_polarity = !!(mode->flags & DRM_MODE_FLAG_PVSYNC);
>
> --
> 2.24.1
>
More information about the igt-dev
mailing list