From 872797cdf5c23d85d9abf5531a3dc7141c693e62 Mon Sep 17 00:00:00 2001 From: Mario Kleiner Date: Sun, 21 Jun 2015 21:25:09 +0200 Subject: [PATCH] compositor-drm: Fix refresh rate selection in drm_output_switch_mode The matching logic in choose_mode() compared refresh rate of a drm_mode candidate mode expressed in Hz against the requested refresh rate of the target weston_mode expressed in milliHz, so the match always failed and the logic always ended up the mode with the highest refresh rate for a given resolution, instead of the one matching the requested rate. Match proper fields to fix this. Signed-off-by: Mario Kleiner Reviewed-by: Derek Foreman --- src/compositor-drm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compositor-drm.c b/src/compositor-drm.c index 6d8684dd..58b2e5ac 100644 --- a/src/compositor-drm.c +++ b/src/compositor-drm.c @@ -1225,8 +1225,8 @@ choose_mode (struct drm_output *output, struct weston_mode *target_mode) wl_list_for_each(mode, &output->base.mode_list, base.link) { if (mode->mode_info.hdisplay == target_mode->width && mode->mode_info.vdisplay == target_mode->height) { - if (mode->mode_info.vrefresh == target_mode->refresh || - target_mode->refresh == 0) { + if (mode->base.refresh == target_mode->refresh || + target_mode->refresh == 0) { return mode; } else if (!tmp_mode) tmp_mode = mode;