From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915/dp: Fix alt mode handling. Date: Tue, 13 Mar 2018 17:09:16 +0200 Message-ID: <20180313150916.GY5453@intel.com> References: <20180313131143.GV5453@intel.com> <20180313135235.13686-1-maarten.lankhorst@linux.intel.com> <20180313142717.GX5453@intel.com> <3c9b6c1c-c4f3-f316-6e44-39d908b8f71c@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id E49336E567 for ; Tue, 13 Mar 2018 15:09:21 +0000 (UTC) Content-Disposition: inline In-Reply-To: <3c9b6c1c-c4f3-f316-6e44-39d908b8f71c@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: Paulo Zanoni , Jani Nikula , intel-gfx@lists.freedesktop.org, stable@vger.kernel.org, Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBNYXIgMTMsIDIwMTggYXQgMDM6Mzc6MDVQTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gT3AgMTMtMDMtMTggb20gMTU6Mjcgc2NocmVlZiBWaWxsZSBTeXJqw6Rsw6Q6 Cj4gPiBPbiBUdWUsIE1hciAxMywgMjAxOCBhdCAwMjo1MjozNVBNICswMTAwLCBNYWFydGVuIExh bmtob3JzdCB3cm90ZToKPiA+PiBPbiBmaS1jbmwteTMgd2UgaGF2ZSAyIG1vZGVzIHRoYXQgZGlm ZmVyIG9ubHkgYnkgY3J0Y19jbG9jay4gVGhpcyBtZWFucwo+ID4+IHRoYXQgaWYgd2UgcmVxdWVz dCB0aGUgbm9ybWFsIG1vZGUsIHdlIGF1dG9tYXRpY2FsbHkgZ2V0IHRoZSBkb3duY2xvY2tlZAo+ ID4+IG1vZGUuCj4gPj4KPiA+PiBUaGlzIGNhbiBiZSBzZWVuIGR1cmluZyBib290Ogo+ID4+IFtk cm06ZHJtX2hlbHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzXSBbQ09OTkVDVE9SOjEw MTplRFAtMV0gcHJvYmVkIG1vZGVzIDoKPiA+PiBbZHJtOmRybV9tb2RlX2RlYnVnX3ByaW50bW9k ZWxpbmVdIE1vZGVsaW5lIDEwMjoiMzg0MHgyMTYwIiA2MCA1MzMyNTAgMzg0MCAzODg4IDM5MjAg NDAwMCAyMTYwIDIxNjMgMjE2OCAyMjIyIDB4NDggMHhhCj4gPj4gW2RybTpkcm1fbW9kZV9kZWJ1 Z19wcmludG1vZGVsaW5lXSBNb2RlbGluZSAxMDM6IjM4NDB4MjE2MCIgNDggNDI2NjAwIDM4NDAg Mzg4OCAzOTIwIDQwMDAgMjE2MCAyMTYzIDIxNjggMjIyMiAweDQwIDB4YQo+ID4+IC4uLgo+ID4+ IFtkcm06aW50ZWxfZHVtcF9waXBlX2NvbmZpZyBbaTkxNV1dIFtDUlRDOjUxOnBpcGUgQV1bbW9k ZXNldF0KPiA+PiBbZHJtOmludGVsX2R1bXBfcGlwZV9jb25maWcgW2k5MTVdXSBvdXRwdXRfdHlw ZXM6IEVEUCAoMHgxMDApCj4gPj4gW2RybTppbnRlbF9kdW1wX3BpcGVfY29uZmlnIFtpOTE1XV0g Y3B1X3RyYW5zY29kZXI6IEVEUCwgcGlwZSBicHA6IDI0LCBkaXRoZXJpbmc6IDAKPiA+PiBbZHJt OmludGVsX2R1bXBfcGlwZV9jb25maWcgW2k5MTVdXSBkcCBtX246IGxhbmVzOiA0OyBnbWNoX206 IDQ5NzAyNTAsIGdtY2hfbjogODM4ODYwOCwgbGlua19tOiA4MjgzNzUsIGxpbmtfbjogMTA0ODU3 NiwgdHU6IDY0Cj4gPj4gW2RybTppbnRlbF9kdW1wX3BpcGVfY29uZmlnIFtpOTE1XV0gZHAgbTJf bjI6IGxhbmVzOiA0OyBnbWNoX206IDQ5NzAyNTAsIGdtY2hfbjogODM4ODYwOCwgbGlua19tOiA4 MjgzNzUsIGxpbmtfbjogMTA0ODU3NiwgdHU6IDY0Cj4gPj4gW2RybTppbnRlbF9kdW1wX3BpcGVf Y29uZmlnIFtpOTE1XV0gYXVkaW86IDAsIGluZm9mcmFtZXM6IDAKPiA+PiBbZHJtOmludGVsX2R1 bXBfcGlwZV9jb25maWcgW2k5MTVdXSByZXF1ZXN0ZWQgbW9kZToKPiA+PiBbZHJtOmRybV9tb2Rl X2RlYnVnX3ByaW50bW9kZWxpbmVdIE1vZGVsaW5lIDA6IjM4NDB4MjE2MCIgNjAgNTMzMjUwIDM4 NDAgMzg4OCAzOTIwIDQwMDAgMjE2MCAyMTYzIDIxNjggMjIyMiAweDQ4IDB4YQo+ID4+IFtkcm06 aW50ZWxfZHVtcF9waXBlX2NvbmZpZyBbaTkxNV1dIGFkanVzdGVkIG1vZGU6Cj4gPj4gW2RybTpk cm1fbW9kZV9kZWJ1Z19wcmludG1vZGVsaW5lXSBNb2RlbGluZSAwOiIzODQweDIxNjAiIDQ4IDQy NjYwMCAzODQwIDM4ODggMzkyMCA0MDAwIDIxNjAgMjE2MyAyMTY4IDIyMjIgMHg0MCAweGEKPiA+ Pgo+ID4+IEFkZCBhIGludGVsX2VkcF9jaG9vc2VfbW9kZSBoZWxwZXIgdGhhdCBwaWNrcyB0aGUg bW9kZS4KPiA+Pgo+ID4+IElmIHRoZXJlIGlzIG5vIGFsdCBtb2RlLCBpdCBhbHdheXMgcGlja3Mg dGhlIGRlZmF1bHQgbW9kZS4KPiA+PiBJZiB0aGUgYWx0IG1vZGUgaXMgaWRlbnRpY2FsIHRvIHRo ZSBkZWZhdWx0IG1vZGUsIGl0IHBpY2tzIHRoZSBtb2RlCj4gPj4gYmFzZWQgb24gd2hhdCBtb2Rl IGlzIGNsb3Nlc3QgdG8gdGhlIHJlcXVlc3QgY2xvY2suCj4gPj4gSWYgdGhlIGFsdCBtb2RlIGRp ZmZlcnMsIGl0IG9ubHkgcGlja3MgdGhlIGFsdCBtb2RlIG9uIGV4YWN0IG1hdGNoLgo+ID4+Cj4g Pj4gVGVzdGNhc2U6IGttc19wYW5lbF9maXR0aW5nLmF0b21pYy1mYXN0c2V0Cj4gPj4gU2lnbmVk LW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVs LmNvbT4KPiA+PiBGaXhlczogZGM5MTFmNWJkOGFhICgiZHJtL2k5MTUvZWRwOiBBbGxvdyBhbHRl cm5hdGUgZml4ZWQgbW9kZSBmb3IgZURQIGlmIGF2YWlsYWJsZS4iKQo+ID4+IENjOiBEYXZpZCBX ZWluZWhhbGwgPGRhdmlkLndlaW5laGFsbEBsaW51eC5pbnRlbC5jb20+Cj4gPj4gQ2M6IFJvZHJp Z28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPiA+PiBDYzogUGF1bG8gWmFub25pIDxw YXVsby5yLnphbm9uaUBpbnRlbC5jb20+Cj4gPj4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3Vs YUBpbnRlbC5jb20+Cj4gPj4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNv LnVrPgo+ID4+IENjOiBKaW0gQnJpZGUgPGppbS5icmlkZUBsaW51eC5pbnRlbC5jb20+Cj4gPj4g Q2M6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KPiA+ PiBDYzogPHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmc+ICMgdjQuMTQrCj4gPj4gQnVnemlsbGE6IGh0 dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTQ2OQo+ID4+IFJl ZmVyZW5jZXM6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTEw NTQ1Ngo+ID4+IC0tLQo+ID4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIHwgMzkg KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gIDEgZmlsZSBjaGFu Z2VkLCAyMSBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKPiA+Pgo+ID4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYwo+ID4+IGluZGV4IDlhNGE1MWU3OWZhMS4uMDc1OTgxODQyYTdmIDEwMDY0 NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPj4gQEAgLTE2NzEsMjEgKzE2NzEsMjUg QEAgc3RhdGljIGludCBpbnRlbF9kcF9jb21wdXRlX2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwLAo+ID4+ICAJcmV0dXJuIGJwcDsKPiA+PiAgfQo+ID4+ICAKPiA+PiAtc3RhdGljIGJvb2wg aW50ZWxfZWRwX2NvbXBhcmVfYWx0X21vZGUoc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm0xLAo+ ID4+IC0JCQkJICAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptMikKPiA+PiArc3RhdGlj IGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICoKPiA+PiAraW50ZWxfZWRwX2Nob29zZV9t b2RlKGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpyZXEsCj4gPj4gKwkJICAgICAgY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmRlZiwKPiA+PiArCQkgICAgICBjb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWx0KQo+ID4+ICB7Cj4gPj4gLQlib29sIGJyZXMgPSBmYWxz ZTsKPiA+PiArCWlmICghYWx0KQo+ID4+ICsJCXJldHVybiBkZWY7Cj4gPj4gIAo+ID4+IC0JaWYg KG0xICYmIG0yKQo+ID4+IC0JCWJyZXMgPSAobTEtPmhkaXNwbGF5ID09IG0yLT5oZGlzcGxheSAm Jgo+ID4+IC0JCQltMS0+aHN5bmNfc3RhcnQgPT0gbTItPmhzeW5jX3N0YXJ0ICYmCj4gPj4gLQkJ CW0xLT5oc3luY19lbmQgPT0gbTItPmhzeW5jX2VuZCAmJgo+ID4+IC0JCQltMS0+aHRvdGFsID09 IG0yLT5odG90YWwgJiYKPiA+PiAtCQkJbTEtPnZkaXNwbGF5ID09IG0yLT52ZGlzcGxheSAmJgo+ ID4+IC0JCQltMS0+dnN5bmNfc3RhcnQgPT0gbTItPnZzeW5jX3N0YXJ0ICYmCj4gPj4gLQkJCW0x LT52c3luY19lbmQgPT0gbTItPnZzeW5jX2VuZCAmJgo+ID4+IC0JCQltMS0+dnRvdGFsID09IG0y LT52dG90YWwpOwo+ID4+IC0JcmV0dXJuIGJyZXM7Cj4gPj4gKwlpZiAoZHJtX21vZGVfZXF1YWxf bm9fY2xvY2tzKGRlZiwgYWx0KSkgewo+ID4+ICsJCWludCBjbG9jazsKPiA+PiArCj4gPj4gKwkJ aWYgKCFkcm1fbW9kZV9lcXVhbF9ub19jbG9ja3MocmVxLCBkZWYpKQo+ID4+ICsJCQlyZXR1cm4g ZGVmOwo+ID4+ICsKPiA+PiArCQljbG9jayA9IGRlZi0+Y2xvY2sgLyAyICsgYWx0LT5jbG9jayAv IDI7Cj4gPj4gKwo+ID4+ICsJCXJldHVybiByZXEtPmNsb2NrID4gY2xvY2sgPyBkZWYgOiBhbHQ7 Cj4gPj4gKwl9IGVsc2UKPiA+PiArCQlyZXR1cm4gZHJtX21vZGVfZXF1YWxfbm9fY2xvY2tzKHJl cSwgYWx0KSA/IGFsdCA6IGRlZjsKPiA+IFNlZW1zIGEgYml0IGNvbnZvbHV0ZWQgdG8gbWUuCj4g Pgo+ID4gcmV0dXJuIHVzZXJfbW9kZS0+dnJlZnJlc2ggPiBhbHRfbW9kZS0+dnJlZnJlc2ggPwo+ ID4gCWZpeGVkX21vZGUgOiBhbHRfbW9kZTsKPiA+Cj4gPiBtYXliZT8KPiA+Cj4gPiBUaG91Z2gg d2UgZG9uJ3Qgc2VlbSB0byB0cnkgdmVyeSBoYXJkIHRvIG1ha2UgdnJlZnJlc2ggYWNjdXJhdGUg c28gbm90Cj4gPiAxMDAlIHRoaXMgaXMgZ29pbmcgdG8gd29yayBwZXJmZWN0bHkuCj4gPgo+ID4g SSBndWVzcyB3ZSBjb3VsZCBnbyB3aXRoIHRoZSAicGljayB0aGUgY2xvc2VzdCIgdnJlZnJlc2gg YXBwcm9hY2gKPiA+IGluc3RlYWQuIEknbSB0aGlua2luZyB3ZSBzaG91bGQgYWN0dWFsbHkgYmUg cmVqZWN0aW5nIHRoZSB1c2VyIG1vZGUKPiA+IGVudGlyZWx5IGlmIGl0IGlzbid0IGNsb3NldG8g ZWl0aGVyIHJlZnJlc2ggcmF0ZS4KPiBUaGVyZSdzIG5vIGd1YXJhbnRlZSB2cmVmcmVzaCBpcyBz ZXQgdG8gc29tZXRoaW5nIHNhbmUsIGFmYWlrLiBJIGRvbid0IHRoaW5rIHdlIGNhbiB1c2UgaXQu Cj4gSWYgaXQgd2FzIGFsd2F5cyBzZXQsIHRoZW4gbWF5YmUuIEJ1dCBJIHRoaW5rIG5vdGhpbmcg cHJldmVudHMgaXQgZnJvbSBiZWluZyBnYXJiYWdlLgoKWWVhaC4gSSBqdXN0IHNlbnQgYSBwYXRj aCB0aGF0IG1pZ2h0IGZpeCB0aGF0LgoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com ([134.134.136.24]:55439 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751408AbeCMPJW (ORCPT ); Tue, 13 Mar 2018 11:09:22 -0400 Date: Tue, 13 Mar 2018 17:09:16 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org, David Weinehall , Rodrigo Vivi , Paulo Zanoni , Jani Nikula , Chris Wilson , Jim Bride , Joonas Lahtinen , stable@vger.kernel.org Subject: Re: [PATCH] drm/i915/dp: Fix alt mode handling. Message-ID: <20180313150916.GY5453@intel.com> References: <20180313131143.GV5453@intel.com> <20180313135235.13686-1-maarten.lankhorst@linux.intel.com> <20180313142717.GX5453@intel.com> <3c9b6c1c-c4f3-f316-6e44-39d908b8f71c@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <3c9b6c1c-c4f3-f316-6e44-39d908b8f71c@linux.intel.com> Sender: stable-owner@vger.kernel.org List-ID: On Tue, Mar 13, 2018 at 03:37:05PM +0100, Maarten Lankhorst wrote: > Op 13-03-18 om 15:27 schreef Ville Syrj�l�: > > On Tue, Mar 13, 2018 at 02:52:35PM +0100, Maarten Lankhorst wrote: > >> On fi-cnl-y3 we have 2 modes that differ only by crtc_clock. This means > >> that if we request the normal mode, we automatically get the downclocked > >> mode. > >> > >> This can be seen during boot: > >> [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:101:eDP-1] probed modes : > >> [drm:drm_mode_debug_printmodeline] Modeline 102:"3840x2160" 60 533250 3840 3888 3920 4000 2160 2163 2168 2222 0x48 0xa > >> [drm:drm_mode_debug_printmodeline] Modeline 103:"3840x2160" 48 426600 3840 3888 3920 4000 2160 2163 2168 2222 0x40 0xa > >> ... > >> [drm:intel_dump_pipe_config [i915]] [CRTC:51:pipe A][modeset] > >> [drm:intel_dump_pipe_config [i915]] output_types: EDP (0x100) > >> [drm:intel_dump_pipe_config [i915]] cpu_transcoder: EDP, pipe bpp: 24, dithering: 0 > >> [drm:intel_dump_pipe_config [i915]] dp m_n: lanes: 4; gmch_m: 4970250, gmch_n: 8388608, link_m: 828375, link_n: 1048576, tu: 64 > >> [drm:intel_dump_pipe_config [i915]] dp m2_n2: lanes: 4; gmch_m: 4970250, gmch_n: 8388608, link_m: 828375, link_n: 1048576, tu: 64 > >> [drm:intel_dump_pipe_config [i915]] audio: 0, infoframes: 0 > >> [drm:intel_dump_pipe_config [i915]] requested mode: > >> [drm:drm_mode_debug_printmodeline] Modeline 0:"3840x2160" 60 533250 3840 3888 3920 4000 2160 2163 2168 2222 0x48 0xa > >> [drm:intel_dump_pipe_config [i915]] adjusted mode: > >> [drm:drm_mode_debug_printmodeline] Modeline 0:"3840x2160" 48 426600 3840 3888 3920 4000 2160 2163 2168 2222 0x40 0xa > >> > >> Add a intel_edp_choose_mode helper that picks the mode. > >> > >> If there is no alt mode, it always picks the default mode. > >> If the alt mode is identical to the default mode, it picks the mode > >> based on what mode is closest to the request clock. > >> If the alt mode differs, it only picks the alt mode on exact match. > >> > >> Testcase: kms_panel_fitting.atomic-fastset > >> Signed-off-by: Maarten Lankhorst > >> Fixes: dc911f5bd8aa ("drm/i915/edp: Allow alternate fixed mode for eDP if available.") > >> Cc: David Weinehall > >> Cc: Rodrigo Vivi > >> Cc: Paulo Zanoni > >> Cc: Jani Nikula > >> Cc: Chris Wilson > >> Cc: Jim Bride > >> Cc: Joonas Lahtinen > >> Cc: # v4.14+ > >> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105469 > >> References: https://bugs.freedesktop.org/show_bug.cgi?id=105456 > >> --- > >> drivers/gpu/drm/i915/intel_dp.c | 39 +++++++++++++++++++++------------------ > >> 1 file changed, 21 insertions(+), 18 deletions(-) > >> > >> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c > >> index 9a4a51e79fa1..075981842a7f 100644 > >> --- a/drivers/gpu/drm/i915/intel_dp.c > >> +++ b/drivers/gpu/drm/i915/intel_dp.c > >> @@ -1671,21 +1671,25 @@ static int intel_dp_compute_bpp(struct intel_dp *intel_dp, > >> return bpp; > >> } > >> > >> -static bool intel_edp_compare_alt_mode(struct drm_display_mode *m1, > >> - struct drm_display_mode *m2) > >> +static const struct drm_display_mode * > >> +intel_edp_choose_mode(const struct drm_display_mode *req, > >> + const struct drm_display_mode *def, > >> + const struct drm_display_mode *alt) > >> { > >> - bool bres = false; > >> + if (!alt) > >> + return def; > >> > >> - if (m1 && m2) > >> - bres = (m1->hdisplay == m2->hdisplay && > >> - m1->hsync_start == m2->hsync_start && > >> - m1->hsync_end == m2->hsync_end && > >> - m1->htotal == m2->htotal && > >> - m1->vdisplay == m2->vdisplay && > >> - m1->vsync_start == m2->vsync_start && > >> - m1->vsync_end == m2->vsync_end && > >> - m1->vtotal == m2->vtotal); > >> - return bres; > >> + if (drm_mode_equal_no_clocks(def, alt)) { > >> + int clock; > >> + > >> + if (!drm_mode_equal_no_clocks(req, def)) > >> + return def; > >> + > >> + clock = def->clock / 2 + alt->clock / 2; > >> + > >> + return req->clock > clock ? def : alt; > >> + } else > >> + return drm_mode_equal_no_clocks(req, alt) ? alt : def; > > Seems a bit convoluted to me. > > > > return user_mode->vrefresh > alt_mode->vrefresh ? > > fixed_mode : alt_mode; > > > > maybe? > > > > Though we don't seem to try very hard to make vrefresh accurate so not > > 100% this is going to work perfectly. > > > > I guess we could go with the "pick the closest" vrefresh approach > > instead. I'm thinking we should actually be rejecting the user mode > > entirely if it isn't closeto either refresh rate. > There's no guarantee vrefresh is set to something sane, afaik. I don't think we can use it. > If it was always set, then maybe. But I think nothing prevents it from being garbage. Yeah. I just sent a patch that might fix that. -- Ville Syrj�l� Intel OTC