From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mario Kleiner Subject: Re: [PATCH] drm/i915: Fix legacy gamma lut updates in Linux 4.7-rc6 Date: Thu, 14 Jul 2016 19:52:15 +0200 Message-ID: <5787D14F.30005@gmail.com> References: <1468319586-8509-1-git-send-email-mario.kleiner.de@gmail.com> <15be51a4-74e2-2390-5a18-2172a7eae8ce@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <15be51a4-74e2-2390-5a18-2172a7eae8ce@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Lionel Landwerlin , dri-devel@lists.freedesktop.org Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org T2ssIHNvIGxlZ2FjeSBnYW1tYSB0YWJsZSB1cGRhdGVzIGFyZSBjb21wbGV0ZWx5IGJyb2tlbiBm b3IgSW50ZWwgb24gCkxpbnV4LTQuNy1yYzcsIHRoZSBmaW5hbCByZWxlYXNlIGNhbmRpZGF0ZS4K ClRoZSBnb29kIG5ld3MgaXMgdGhhdCBhcHBseWluZyBMaW9uZWwncyBwYXRjaAoKImRybS9pOTE1 OiBhZGQgbWlzc2luZyBjb25kaXRpb24gZm9yIGNvbW1pdHRpbmcgcGxhbmVzIG9uIGNydGMiCgpm cm9tCgpodHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvcGF0Y2gvODkxMTEvCgpmaXhl cyBpdCBuaWNlbHkuIFRoZSBwYXRjaCBjdXJyZW50bHkgYXBwbGllcyBjbGVhbmx5IHRvIGRybS1m aXhlcyBhbmQgCmRybS1uZXh0IGFuZCBpcwoKUmV2aWV3ZWQtYW5kLXRlc3RlZC1ieTogTWFyaW8g S2xlaW5lciA8bWFyaW8ua2xlaW5lci5kZUBnbWFpbC5jb20+CgoKV2hlbiB3ZSBhcmUgYXQgaXQs IGNvdWxkIHNvbWVib2R5IHBsZWFzZSBsb29rIGF0IHRoYXQgdXBkYXRlZCBzZXJpZXMgb2YgCm15 IERpc3BsYXlwb3J0IGNvbG9yIGRlcHRoIGZpeGVzICgiRURJRC9EUCBmaXhlcyBmb3IgcHJvcGVy IGJwYyAKZGV0ZWN0aW9uIG9mIGRpc3BsYXlzLiIpIGkgc2VudCBvdXQgYSB3ZWVrIGFnbz8KCkVz cGVjaWFsbHkgcHVsbGluZyBwYXRjaCAyLzUgIltQQVRDSCAyLzVdIGRybS9pOTE1L2RwOiBSZXZl cnQgCiJkcm0vaTkxNS9kcDogZmFsbCBiYWNrIHRvIDE4IGJwcCB3aGVuIHNpbmsgY2FwYWJpbGl0 eSBpcyB1bmtub3duIiB3b3VsZCAKYmUgaW1wb3J0YW50LCBhcyB0aGF0IGJ1ZyBpbnRyb2R1Y2Vk IGEgcmVncmVzc2lvbiBmb3IgSW50ZWwgKyBEUCArIApsZWdhY3kgRFAgY29udmVydGVycyBpbnRv IHN0YWJsZSBrZXJuZWxzIHdoaWNoIGlzIHZlcnkgc2VyaW91cyBmb3IgdXNlcnMgCm9mIHNjaWVu dGlmaWMvbWVkaWNhbCBkaXNwbGF5IGVxdWlwbWVudCwgZXNwZWNpYWxseSBhcyB0aGUgZmFpbHVy ZXMgY2FuIAplYXNpbHkgZ28gdW5ub3RpY2VkIGR1cmluZyBub3JtYWwgZXF1aXBtZW50IHRlc3Rz LCBidXQgd291bGQgaW50cm9kdWNlIAp0aGUgZXF1aXZhbGVudCBvZiAic2lsZW50IGRhdGEgY29y cnVwdGlvbiIgaW50byB0aGVpciBtZWFzdXJlZCAKc2NpZW50aWZpYyBkYXRhLCB3aGljaCBpcyBu b3QgYSBncmVhdCBleHBlcmllbmNlIGdpdmVuIHRoYXQgY29sbGVjdGluZyAKc3VjaCBkYXRhIGNh biBlYXNpbHkgdGFrZSBoYWxmIGEgeWVhciBvZiB3b3JrIHRpbWUgYW5kIHRlbi10aG91c2FuZHMg b2YgCmV1cm9zIG9mIHdhc3RlZCByZXNlYXJjaCBmdW5kaW5nLgoKUGF0Y2hlcyAzIGFuZCA0IGNv bnRhaW4gY2hhbmdlcyBEYW5pZWwgYXNrZWQgbWUgdG8gZG8sIHBhdGNoIDUgd291bGQgYmUgCmdv b2QgdG8gc2FmZS1ndWFyZCBhZ2FpbnN0IHNpbWlsYXIgaXNzdWVzIGluIHRoZSBmdXR1cmUuCgp0 aGFua3MsCi1tYXJpbwoKT24gMDcvMTIvMjAxNiAxMjo1MCBQTSwgTGlvbmVsIExhbmR3ZXJsaW4g d3JvdGU6Cj4gSGkgTWFyaW8sCj4KPiBUaGVyZSB3YXMgYSBjb3VwbGUgb2YgcGF0Y2ggdG8gZml4 IHRoaXMgaXNzdWUgOgo+Cj4gaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3Nlcmll cy81NDY3Lwo+IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9zZXJpZXMvNTQ2Ni8K Pgo+IEkgdGVzdGVkIHRoaXMgbGF0ZSBsYXN0IHdlZWsgb24gZHJtLWludGVsLW5pZ2h0bHksIGl0 IHNlZW1zIGEgc2VyaWVzIG9mCj4gcmV2ZXJ0IGZpeGVkIG1vc3Qgb2YgdGhlIGlzc3Vlcy4KPgo+ IENoZWVycywKPgo+IC0KPiBMaW9uZWwKPgo+IE9uIDEyLzA3LzE2IDExOjMzLCBNYXJpbyBLbGVp bmVyIHdyb3RlOgo+PiBVcGRhdGluZyBsZWdhY3kgZ2FtbWEgdGFibGVzLCBlLmcuLCB2aWEgUmFu ZFIgZG9lc24ndCB3b3JrIGF0IGFsbAo+PiBhcyBvZiBMaW51eCA0LjctcmM2Lgo+Pgo+PiBSZWFz b24gc2VlbXMgdG8gYmUgdGhhdCB0aGUgcmVxdWlyZWQgY2FsbCB0bwo+PiBkcm1fYXRvbWljX2hl bHBlcl9jb21taXRfcGxhbmVzX29uX2NydGMgaXMgc2tpcHBlZCBpbgo+PiBpbnRlbF9hdG9taWNf Y29tbWl0IGFmdGVyIHVzZXJzcGFjZSBzZXQgbmV3IGdhbW1hIHRhYmxlcywKPj4gYmVjYXVzZSBu ZWl0aGVyIGNydGMtPnN0YXRlLT5wbGFuZXNfY2hhbmdlZCBub3IKPj4gdXBkYXRlX3BpcGUgKD0g cGlwZV9jb25maWctPnVwZGF0ZV9waXBlKSBhcmUgdHJ1ZS4KPj4KPj4gUmVtb3ZpbmcgdGhlIGNo ZWNrIGZvciBwbGFuZXNfY2hhbmdlZCB8fCB1cGRhdGVfcGlwZSBmaXhlcwo+PiBnYW1tYSB0YWJs ZSB1cGRhdGVzLgo+Pgo+PiBUaGUgY29kZSBmb3IgTGludXggNC44IGRybS1uZXh0IGhhcyBjaGFu Z2VkIGEgbG90IGluIHRoYXQgYXJlYQo+PiB3cnQuIDQuNywgYnV0IHRoZSBuZXcgY29kZSBmb3Ig NC44IGFsc28gcmVtb3ZlZCB0aG9zZSBjaGVja3MKPj4gYW5kIGNhbGxzIGRybV9hdG9taWNfaGVs cGVyX2NvbW1pdF9wbGFuZXNfb25fY3J0YyB1bmNvbmRpdGlvbmFsbHksCj4+IGFuZCBsZWdhY3kg Z2FtbWEgbHV0IHVwZGF0ZXMgd29yayBvbiBkcm0tbmV4dCwgc28gdGhpcyBzZWVtcyB0byBiZQo+ PiB0aGUgcmlnaHQgc29sdXRpb24uCj4+Cj4+IFRlc3RlZCBhbHNvIHNodXRkb3duL3JlYm9vdCwg c3VzcGVuZC9yZXN1bWUsICh1bi0pcGx1Z2dpbmcgZGlzcGxheXMsCj4+IG1vZGUgc3dpdGNoZXMg Zm9yIHJlc29sdXRpb24vcmVmcmVzaCByYXRlLCBkaXNwbGF5IHJvdGF0aW9uLCBhbmQKPj4gcGFn ZS1mbGlwcGluZy9wYWdlZmxpcCB0aW1pbmcgb24gSW50ZWwgSEQgSXJvbmxha2UgdG8gY29uZmly bSB0aGUKPj4gZml4IGFwcGFyZW50bHkgZG9lc24ndCBicmVhayBhbnl0aGluZyB1bmRlciBYMTEu Cj4+Cj4+IFNpZ25lZC1vZmYtYnk6IE1hcmlvIEtsZWluZXIgPG1hcmlvLmtsZWluZXIuZGVAZ21h aWwuY29tPgo+PiBDYzogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4 LmludGVsLmNvbT4KPj4gQ2M6IExpb25lbCBMYW5kd2VybGluIDxsaW9uZWwuZy5sYW5kd2VybGlu QGludGVsLmNvbT4KPj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+ Cj4+IC0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDQgKy0t LQo+PiAgIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMyBkZWxldGlvbnMoLSkKPj4K Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiBpbmRleCAwNDQ1MmNmLi5l YjhmYjM2IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+IEBAIC0x MzY4NSw3ICsxMzY4NSw2IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NvbW1pdChzdHJ1Y3QK Pj4gZHJtX2RldmljZSAqZGV2LAo+PiAgICAgICAgICAgYm9vbCBtb2Rlc2V0ID0gbmVlZHNfbW9k ZXNldChjcnRjLT5zdGF0ZSk7Cj4+ICAgICAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq cGlwZV9jb25maWcgPQo+PiAgICAgICAgICAgICAgIHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+ c3RhdGUpOwo+PiAtICAgICAgICBib29sIHVwZGF0ZV9waXBlID0gIW1vZGVzZXQgJiYgcGlwZV9j b25maWctPnVwZGF0ZV9waXBlOwo+PiAgICAgICAgICAgaWYgKG1vZGVzZXQgJiYgY3J0Yy0+c3Rh dGUtPmFjdGl2ZSkgewo+PiAgICAgICAgICAgICAgIHVwZGF0ZV9zY2FubGluZV9vZmZzZXQodG9f aW50ZWxfY3J0YyhjcnRjKSk7Cj4+IEBAIC0xMzY5OSw4ICsxMzY5OCw3IEBAIHN0YXRpYyBpbnQg aW50ZWxfYXRvbWljX2NvbW1pdChzdHJ1Y3QKPj4gZHJtX2RldmljZSAqZGV2LAo+PiAgICAgICAg ICAgICAgIGRybV9hdG9taWNfZ2V0X2V4aXN0aW5nX3BsYW5lX3N0YXRlKHN0YXRlLCBjcnRjLT5w cmltYXJ5KSkKPj4gICAgICAgICAgICAgICBpbnRlbF9mYmNfZW5hYmxlKGludGVsX2NydGMpOwo+ PiAtICAgICAgICBpZiAoY3J0Yy0+c3RhdGUtPmFjdGl2ZSAmJgo+PiAtICAgICAgICAgICAgKGNy dGMtPnN0YXRlLT5wbGFuZXNfY2hhbmdlZCB8fCB1cGRhdGVfcGlwZSkpCj4+ICsgICAgICAgIGlm IChjcnRjLT5zdGF0ZS0+YWN0aXZlKQo+PiAgICAgICAgICAgICAgIGRybV9hdG9taWNfaGVscGVy X2NvbW1pdF9wbGFuZXNfb25fY3J0YyhvbGRfY3J0Y19zdGF0ZSk7Cj4+ICAgICAgICAgICBpZiAo cGlwZV9jb25maWctPmJhc2UuYWN0aXZlICYmIG5lZWRzX3ZibGFua193YWl0KHBpcGVfY29uZmln KSkKPgo+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751424AbcGNRwX (ORCPT ); Thu, 14 Jul 2016 13:52:23 -0400 Received: from mail-wm0-f67.google.com ([74.125.82.67]:34570 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751051AbcGNRwT (ORCPT ); Thu, 14 Jul 2016 13:52:19 -0400 Subject: Re: [PATCH] drm/i915: Fix legacy gamma lut updates in Linux 4.7-rc6 To: Lionel Landwerlin , dri-devel@lists.freedesktop.org References: <1468319586-8509-1-git-send-email-mario.kleiner.de@gmail.com> <15be51a4-74e2-2390-5a18-2172a7eae8ce@intel.com> Cc: intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, Maarten Lankhorst , Daniel Vetter , Jani Nikula , Mario Kleiner From: Mario Kleiner Message-ID: <5787D14F.30005@gmail.com> Date: Thu, 14 Jul 2016 19:52:15 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: <15be51a4-74e2-2390-5a18-2172a7eae8ce@intel.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Ok, so legacy gamma table updates are completely broken for Intel on Linux-4.7-rc7, the final release candidate. The good news is that applying Lionel's patch "drm/i915: add missing condition for committing planes on crtc" from https://patchwork.freedesktop.org/patch/89111/ fixes it nicely. The patch currently applies cleanly to drm-fixes and drm-next and is Reviewed-and-tested-by: Mario Kleiner When we are at it, could somebody please look at that updated series of my Displayport color depth fixes ("EDID/DP fixes for proper bpc detection of displays.") i sent out a week ago? Especially pulling patch 2/5 "[PATCH 2/5] drm/i915/dp: Revert "drm/i915/dp: fall back to 18 bpp when sink capability is unknown" would be important, as that bug introduced a regression for Intel + DP + legacy DP converters into stable kernels which is very serious for users of scientific/medical display equipment, especially as the failures can easily go unnoticed during normal equipment tests, but would introduce the equivalent of "silent data corruption" into their measured scientific data, which is not a great experience given that collecting such data can easily take half a year of work time and ten-thousands of euros of wasted research funding. Patches 3 and 4 contain changes Daniel asked me to do, patch 5 would be good to safe-guard against similar issues in the future. thanks, -mario On 07/12/2016 12:50 PM, Lionel Landwerlin wrote: > Hi Mario, > > There was a couple of patch to fix this issue : > > https://patchwork.freedesktop.org/series/5467/ > https://patchwork.freedesktop.org/series/5466/ > > I tested this late last week on drm-intel-nightly, it seems a series of > revert fixed most of the issues. > > Cheers, > > - > Lionel > > On 12/07/16 11:33, Mario Kleiner wrote: >> Updating legacy gamma tables, e.g., via RandR doesn't work at all >> as of Linux 4.7-rc6. >> >> Reason seems to be that the required call to >> drm_atomic_helper_commit_planes_on_crtc is skipped in >> intel_atomic_commit after userspace set new gamma tables, >> because neither crtc->state->planes_changed nor >> update_pipe (= pipe_config->update_pipe) are true. >> >> Removing the check for planes_changed || update_pipe fixes >> gamma table updates. >> >> The code for Linux 4.8 drm-next has changed a lot in that area >> wrt. 4.7, but the new code for 4.8 also removed those checks >> and calls drm_atomic_helper_commit_planes_on_crtc unconditionally, >> and legacy gamma lut updates work on drm-next, so this seems to be >> the right solution. >> >> Tested also shutdown/reboot, suspend/resume, (un-)plugging displays, >> mode switches for resolution/refresh rate, display rotation, and >> page-flipping/pageflip timing on Intel HD Ironlake to confirm the >> fix apparently doesn't break anything under X11. >> >> Signed-off-by: Mario Kleiner >> Cc: Maarten Lankhorst >> Cc: Lionel Landwerlin >> Cc: Daniel Vetter >> --- >> drivers/gpu/drm/i915/intel_display.c | 4 +--- >> 1 file changed, 1 insertion(+), 3 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/intel_display.c >> b/drivers/gpu/drm/i915/intel_display.c >> index 04452cf..eb8fb36 100644 >> --- a/drivers/gpu/drm/i915/intel_display.c >> +++ b/drivers/gpu/drm/i915/intel_display.c >> @@ -13685,7 +13685,6 @@ static int intel_atomic_commit(struct >> drm_device *dev, >> bool modeset = needs_modeset(crtc->state); >> struct intel_crtc_state *pipe_config = >> to_intel_crtc_state(crtc->state); >> - bool update_pipe = !modeset && pipe_config->update_pipe; >> if (modeset && crtc->state->active) { >> update_scanline_offset(to_intel_crtc(crtc)); >> @@ -13699,8 +13698,7 @@ static int intel_atomic_commit(struct >> drm_device *dev, >> drm_atomic_get_existing_plane_state(state, crtc->primary)) >> intel_fbc_enable(intel_crtc); >> - if (crtc->state->active && >> - (crtc->state->planes_changed || update_pipe)) >> + if (crtc->state->active) >> drm_atomic_helper_commit_planes_on_crtc(old_crtc_state); >> if (pipe_config->base.active && needs_vblank_wait(pipe_config)) > >