From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH] drm/nouveau: Fix pre-nv50 pageflip events (v4) Date: Tue, 10 Nov 2015 17:37:31 +0100 Message-ID: <1447173451-27890-1-git-send-email-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f54.google.com (mail-wm0-f54.google.com [74.125.82.54]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8AF1C6E88A for ; Tue, 10 Nov 2015 08:37:34 -0800 (PST) Received: by wmvv187 with SMTP id v187so16974555wmv.1 for ; Tue, 10 Nov 2015 08:37:33 -0800 (PST) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: David Airlie Cc: Daniel Vetter , dri-devel@lists.freedesktop.org, Ikey Doherty , Ben Skeggs , russianneuromancer@ya.ru, Daniel Vetter , Thierry Reding List-Id: dri-devel@lists.freedesktop.org RnJvbTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KCkFwcGFyZW50bHkg cHJlLW52NTAgcGFnZWZsaXAgZXZlbnRzIGhhcHBlbiBiZWZvcmUgdGhlIGFjdHVhbCB2YmxhbmsK cGVyaW9kLiBUaGVyZWZvcmUgdGhhdCBmdW5jdGlvbmFsaXR5IGdvdCBzZW1pLWRpc2FibGVkIGlu Cgpjb21taXQgYWY0ODcwZTQwNjEyNmI3YWMwYWU3YzdjZTU3NTFmMjVlYmU2MGYyOApBdXRob3I6 IE1hcmlvIEtsZWluZXIgPG1hcmlvLmtsZWluZXIuZGVAZ21haWwuY29tPgpEYXRlOiAgIFR1ZSBN YXkgMTMgMDA6NDI6MDggMjAxNCArMDIwMAoKICAgIGRybS9ub3V2ZWF1L2ttcy9udjA0LW52NDA6 IGZpeCBwYWdlZmxpcCBldmVudHMgdmlhIHNwZWNpYWwgY2FzZS4KClVuZm9ydHVuYXRlbHkgdGhh dCBoYWNrIGdvdCB1cHJvb3RlZCBpbgoKY29tbWl0IGNjMWVmMTE4ZmMwOTkyOTVhZTZhYWJiYWNj OGFmOTRkOGQ4ODg1ZWIKQXV0aG9yOiBUaGllcnJ5IFJlZGluZyA8dHJlZGluZ0BudmlkaWEuY29t PgpEYXRlOiAgIFdlZCBBdWcgMTIgMTc6MDA6MzEgMjAxNSArMDIwMAoKICAgIGRybS9pcnE6IE1h a2UgcGlwZSB1bnNpZ25lZCBhbmQgbmFtZSBjb25zaXN0ZW50CgpUcmlnZ2VyaW5nIGEgd2Fybmlu ZyB3aGVuIHRyeWluZyB0byBzYW1wbGUgdGhlIHZibGFuayB0aW1lc3RhbXAgZm9yIGEKbm9uLWV4 aXN0aW5nIHBpcGUuIFRoZXJlJ3MgYSBmZXcgd2F5cyB0byBmaXggdGhpczoKCi0gT3Blbi1jb2Rl IHRoZSBvbGQgYmVoYXZpb3VyLCB3aGljaCBqdXN0IGVuc2hyaW5lcyB0aGlzIHNsaWdodAogIGJy ZWFrYWdlIG9mIHRoZSB1c2Vyc3BhY2UgQUJJLgoKLSBSZXZlcnQgTWFyaW8ncyBjb21taXQgYW5k IGFnYWluIGluZmxpY3QgYnJva2VuIHRpbWVzdGFtcHMsIGFnYWluIG5vdAogIHByZXR0eS4KCi0g Rml4IHRoaXMgZm9yIHJlYWwgYnkgZGVsYXlpbmcgdGhlIHBhZ2VmbGlwIFRTIHVudGlsIHRoZSBu ZXh0IHZibGFuawogIGludGVycnVwdCwgdGhlcmVieSBtYWtpbmcgaXQgYWNjdXJhdGUuCgpUaGlz IHBhdGNoIGltcGxlbWVudHMgdGhlIHRoaXJkIG9wdGlvbi4gU2luY2UgaGF2aW5nIGEgcGFnZSBm bGlwCmludGVycnVwdCB0aGF0IGhhcHBlbnMgd2hlbiB0aGUgcGFnZWZsaXAgZ2V0cyBhcm1lZCBh bmQgbm90IHdoZW4gaXQKY29tcGxldGVzIGluIHRoZSBuZXh0IHZibGFuayBzZWVtcyB0byBiZSBm YWlybHkgY29tbW9uIChvbGRlciBpOTE1IGh3CndvcmtzIHZlcnkgc2ltaWxhcmx5KSBjcmVhdGUg YSBuZXcgaGVscGVyIHRvIGFybSB2YmxhbmsgZXZlbnRzIGZvcgpzdWNoIGRyaXZlcnMuCgp2MiAo TWFyaW8gS2xlaW5lcik6Ci0gRml4IGZ1bmN0aW9uIHByb3RvdHlwZXMgaW4gZHJtUC5oCi0gQWRk IG1pc3NpbmcgdmJsYW5rX3B1dCgpIGZvciBwYWdlZmxpcCBjb21wbGV0aW9uIHdpdGhvdXQKICBw YWdlZmxpcCBldmVudC4KLSBJbml0aWFsaXplIHNlcXVlbmNlIG51bWJlciBmb3IgcXVldWVkIHBh Z2VmbGlwIGV2ZW50IHRvIGF2b2lkCiAgdHJvdWJsZSBpbiBkcm1faGFuZGxlX3ZibGFua19ldmVu dHMoKS4KLSBSZW1vdmUgZGVhZCBjb2RlIGFuZCBzcGVsbGluZyBmaXguCgp2MyAoTWFyaW8gS2xl aW5lcik6Ci0gQWRkIGEgc2lnbmVkLW9mZi1ieSBhbmQgY2Mgc3RhYmxlIHRhZyBwZXIgSWxqYSdz IGFkdmljZS4KCnY0IChUaGllcnJ5IFJlZGluZyk6Ci0gRml4IGtlcm5lbGRvYyB0eXBvLCBkaXNj b3ZlcmVkIGJ5IE1pY2hlbCBEw6RuemVyCi0gUmVhcnJhbmdlIHRhZ3MgYW5kIGNoYW5nZWxvZwoK QnVnemlsbGE6IGh0dHBzOi8vYnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2 NDMxCkNjOiBUaGllcnJ5IFJlZGluZyA8dHJlZGluZ0BudmlkaWEuY29tPgpDYzogTWFyaW8gS2xl aW5lciA8bWFyaW8ua2xlaW5lci5kZUBnbWFpbC5jb20+CkNjOiBCZW4gU2tlZ2dzIDxic2tlZ2dz QHJlZGhhdC5jb20+CkNjOiBJbGlhIE1pcmtpbiA8aW1pcmtpbkBhbHVtLm1pdC5lZHU+ClNpZ25l ZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgpSZXZpZXdl ZC1ieTogTWFyaW8gS2xlaW5lciA8bWFyaW8ua2xlaW5lci5kZUBnbWFpbC5jb20+CkNjOiBzdGFi bGVAdmdlci5rZXJuZWwub3JnICMgdjQuMwpTaWduZWQtb2ZmLWJ5OiBNYXJpbyBLbGVpbmVyIDxt YXJpby5rbGVpbmVyLmRlQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogVGhpZXJyeSBSZWRpbmcg PHRyZWRpbmdAbnZpZGlhLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jICAgICAg ICAgICAgICAgICB8IDU0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIGRyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5jIHwgMTkgKysrKysrLS0tLS0KIGluY2x1 ZGUvZHJtL2RybVAuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKysrCiAzIGZpbGVzIGNo YW5nZWQsIDY4IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMKaW5kZXgg MjJkMjA3ZTIxMWU3Li5jNWYyMGU0MWRjYzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9k cm1faXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYwpAQCAtOTQ0LDcgKzk0NCw4 IEBAIHN0YXRpYyB2b2lkIHNlbmRfdmJsYW5rX2V2ZW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs CiAJCXN0cnVjdCBkcm1fcGVuZGluZ192YmxhbmtfZXZlbnQgKmUsCiAJCXVuc2lnbmVkIGxvbmcg c2VxLCBzdHJ1Y3QgdGltZXZhbCAqbm93KQogewotCVdBUk5fT05fU01QKCFzcGluX2lzX2xvY2tl ZCgmZGV2LT5ldmVudF9sb2NrKSk7CisJYXNzZXJ0X3NwaW5fbG9ja2VkKCZkZXYtPmV2ZW50X2xv Y2spOworCiAJZS0+ZXZlbnQuc2VxdWVuY2UgPSBzZXE7CiAJZS0+ZXZlbnQudHZfc2VjID0gbm93 LT50dl9zZWM7CiAJZS0+ZXZlbnQudHZfdXNlYyA9IG5vdy0+dHZfdXNlYzsKQEAgLTk1Nyw2ICs5 NTgsNTcgQEAgc3RhdGljIHZvaWQgc2VuZF92YmxhbmtfZXZlbnQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKIH0KIAogLyoqCisgKiBkcm1fYXJtX3ZibGFua19ldmVudCAtIGFybSB2YmxhbmsgZXZl bnQgYWZ0ZXIgcGFnZWZsaXAKKyAqIEBkZXY6IERSTSBkZXZpY2UKKyAqIEBwaXBlOiBDUlRDIGlu ZGV4CisgKiBAZTogdGhlIGV2ZW50IHRvIHByZXBhcmUgdG8gc2VuZAorICoKKyAqIEEgbG90IG9m IGRyaXZlcnMgbmVlZCB0byBnZW5lcmF0ZSB2YmxhbmsgZXZlbnRzIGZvciB0aGUgdmVyeSBuZXh0 IHZibGFuaworICogaW50ZXJydXB0LiBGb3IgZXhhbXBsZSB3aGVuIHRoZSBwYWdlIGZsaXAgaW50 ZXJydXB0IGhhcHBlbnMgd2hlbiB0aGUgcGFnZQorICogZmxpcCBnZXRzIGFybWVkLCBidXQgbm90 IHdoZW4gaXQgYWN0dWFsbHkgZXhlY3V0ZXMgd2l0aGluIHRoZSBuZXh0IHZibGFuaworICogcGVy aW9kLiBUaGlzIGhlbHBlciBmdW5jdGlvbiBpbXBsZW1lbnRzIGV4YWN0bHkgdGhlIHJlcXVpcmVk IHZibGFuayBhcm1pbmcKKyAqIGJlaGF2aW91ci4KKyAqCisgKiBDYWxsZXIgbXVzdCBob2xkIGV2 ZW50IGxvY2suIENhbGxlciBtdXN0IGFsc28gaG9sZCBhIHZibGFuayByZWZlcmVuY2UgZm9yCisg KiB0aGUgZXZlbnQgQGUsIHdoaWNoIHdpbGwgYmUgZHJvcHBlZCB3aGVuIHRoZSBuZXh0IHZibGFu ayBhcnJpdmVzLgorICoKKyAqIFRoaXMgaXMgdGhlIGxlZ2FjeSB2ZXJzaW9uIG9mIGRybV9jcnRj X2FybV92YmxhbmtfZXZlbnQoKS4KKyAqLwordm9pZCBkcm1fYXJtX3ZibGFua19ldmVudChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwKKwkJCSAgc3RydWN0IGRybV9w ZW5kaW5nX3ZibGFua19ldmVudCAqZSkKK3sKKwlhc3NlcnRfc3Bpbl9sb2NrZWQoJmRldi0+ZXZl bnRfbG9jayk7CisKKwllLT5waXBlID0gcGlwZTsKKwllLT5ldmVudC5zZXF1ZW5jZSA9IGRybV92 YmxhbmtfY291bnQoZGV2LCBwaXBlKTsKKwlsaXN0X2FkZF90YWlsKCZlLT5iYXNlLmxpbmssICZk ZXYtPnZibGFua19ldmVudF9saXN0KTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2FybV92Ymxhbmtf ZXZlbnQpOworCisvKioKKyAqIGRybV9jcnRjX2FybV92YmxhbmtfZXZlbnQgLSBhcm0gdmJsYW5r IGV2ZW50IGFmdGVyIHBhZ2VmbGlwCisgKiBAY3J0YzogdGhlIHNvdXJjZSBDUlRDIG9mIHRoZSB2 YmxhbmsgZXZlbnQKKyAqIEBlOiB0aGUgZXZlbnQgdG8gc2VuZAorICoKKyAqIEEgbG90IG9mIGRy aXZlcnMgbmVlZCB0byBnZW5lcmF0ZSB2YmxhbmsgZXZlbnRzIGZvciB0aGUgdmVyeSBuZXh0IHZi bGFuaworICogaW50ZXJydXB0LiBGb3IgZXhhbXBsZSB3aGVuIHRoZSBwYWdlIGZsaXAgaW50ZXJy dXB0IGhhcHBlbnMgd2hlbiB0aGUgcGFnZQorICogZmxpcCBnZXRzIGFybWVkLCBidXQgbm90IHdo ZW4gaXQgYWN0dWFsbHkgZXhlY3V0ZXMgd2l0aGluIHRoZSBuZXh0IHZibGFuaworICogcGVyaW9k LiBUaGlzIGhlbHBlciBmdW5jdGlvbiBpbXBsZW1lbnRzIGV4YWN0bHkgdGhlIHJlcXVpcmVkIHZi bGFuayBhcm1pbmcKKyAqIGJlaGF2aW91ci4KKyAqCisgKiBDYWxsZXIgbXVzdCBob2xkIGV2ZW50 IGxvY2suIENhbGxlciBtdXN0IGFsc28gaG9sZCBhIHZibGFuayByZWZlcmVuY2UgZm9yCisgKiB0 aGUgZXZlbnQgQGUsIHdoaWNoIHdpbGwgYmUgZHJvcHBlZCB3aGVuIHRoZSBuZXh0IHZibGFuayBh cnJpdmVzLgorICoKKyAqIFRoaXMgaXMgdGhlIG5hdGl2ZSBLTVMgdmVyc2lvbiBvZiBkcm1fYXJt X3ZibGFua19ldmVudCgpLgorICovCit2b2lkIGRybV9jcnRjX2FybV92YmxhbmtfZXZlbnQoc3Ry dWN0IGRybV9jcnRjICpjcnRjLAorCQkJICAgICAgIHN0cnVjdCBkcm1fcGVuZGluZ192Ymxhbmtf ZXZlbnQgKmUpCit7CisJZHJtX2FybV92YmxhbmtfZXZlbnQoY3J0Yy0+ZGV2LCBkcm1fY3J0Y19p bmRleChjcnRjKSwgZSk7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9jcnRjX2FybV92YmxhbmtfZXZl bnQpOworCisvKioKICAqIGRybV9zZW5kX3ZibGFua19ldmVudCAtIGhlbHBlciB0byBzZW5kIHZi bGFuayBldmVudCBhZnRlciBwYWdlZmxpcAogICogQGRldjogRFJNIGRldmljZQogICogQHBpcGU6 IENSVEMgaW5kZXgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVf ZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kaXNwbGF5LmMKaW5k ZXggZTkwNWMwMGFjZjFhLi41NDE4M2JjY2E0OGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1 L25vdXZlYXVfZGlzcGxheS5jCkBAIC04MjcsNyArODI3LDYgQEAgbm91dmVhdV9maW5pc2hfcGFn ZV9mbGlwKHN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKmNoYW4sCiAJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGRybS0+ZGV2OwogCXN0cnVjdCBub3V2ZWF1X3BhZ2VfZmxpcF9zdGF0ZSAqczsKIAl1 bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCBjcnRjaWQgPSAtMTsKIAogCXNwaW5fbG9ja19pcnFz YXZlKCZkZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKIApAQCAtODM5LDE1ICs4MzgsMTkgQEAgbm91 dmVhdV9maW5pc2hfcGFnZV9mbGlwKHN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKmNoYW4sCiAKIAlz ID0gbGlzdF9maXJzdF9lbnRyeSgmZmN0eC0+ZmxpcCwgc3RydWN0IG5vdXZlYXVfcGFnZV9mbGlw X3N0YXRlLCBoZWFkKTsKIAlpZiAocy0+ZXZlbnQpIHsKLQkJLyogVmJsYW5rIHRpbWVzdGFtcHMv Y291bnRzIGFyZSBvbmx5IGNvcnJlY3Qgb24gPj0gTlYtNTAgKi8KLQkJaWYgKGRybS0+ZGV2aWNl LmluZm8uZmFtaWx5ID49IE5WX0RFVklDRV9JTkZPX1YwX1RFU0xBKQotCQkJY3J0Y2lkID0gcy0+ Y3J0YzsKKwkJaWYgKGRybS0+ZGV2aWNlLmluZm8uZmFtaWx5IDwgTlZfREVWSUNFX0lORk9fVjBf VEVTTEEpIHsKKwkJCWRybV9hcm1fdmJsYW5rX2V2ZW50KGRldiwgcy0+Y3J0Yywgcy0+ZXZlbnQp OworCQl9IGVsc2UgeworCQkJZHJtX3NlbmRfdmJsYW5rX2V2ZW50KGRldiwgcy0+Y3J0Yywgcy0+ ZXZlbnQpOwogCi0JCWRybV9zZW5kX3ZibGFua19ldmVudChkZXYsIGNydGNpZCwgcy0+ZXZlbnQp OworCQkJLyogR2l2ZSB1cCBvd25lcnNoaXAgb2YgdmJsYW5rIGZvciBwYWdlLWZsaXBwZWQgY3J0 YyAqLworCQkJZHJtX3ZibGFua19wdXQoZGV2LCBzLT5jcnRjKTsKKwkJfQorCX0KKwllbHNlIHsK KwkJLyogR2l2ZSB1cCBvd25lcnNoaXAgb2YgdmJsYW5rIGZvciBwYWdlLWZsaXBwZWQgY3J0YyAq LworCQlkcm1fdmJsYW5rX3B1dChkZXYsIHMtPmNydGMpOwogCX0KLQotCS8qIEdpdmUgdXAgb3du ZXJzaGlwIG9mIHZibGFuayBmb3IgcGFnZS1mbGlwcGVkIGNydGMgKi8KLQlkcm1fdmJsYW5rX3B1 dChkZXYsIHMtPmNydGMpOwogCiAJbGlzdF9kZWwoJnMtPmhlYWQpOwogCWlmIChwcykKZGlmZiAt LWdpdCBhL2luY2x1ZGUvZHJtL2RybVAuaCBiL2luY2x1ZGUvZHJtL2RybVAuaAppbmRleCA4YjVj ZTdjNWQ5YmIuLmM5OGYwMTA0NmJkMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtUC5oCisr KyBiL2luY2x1ZGUvZHJtL2RybVAuaApAQCAtOTMyLDYgKzkzMiwxMCBAQCBleHRlcm4gdm9pZCBk cm1fc2VuZF92YmxhbmtfZXZlbnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50 IHBpcGUsCiAJCQkJICBzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICplKTsKIGV4dGVy biB2b2lkIGRybV9jcnRjX3NlbmRfdmJsYW5rX2V2ZW50KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK IAkJCQkgICAgICAgc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZSk7CitleHRlcm4g dm9pZCBkcm1fYXJtX3ZibGFua19ldmVudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25l ZCBpbnQgcGlwZSwKKwkJCQkgc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZSk7Citl eHRlcm4gdm9pZCBkcm1fY3J0Y19hcm1fdmJsYW5rX2V2ZW50KHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKKwkJCQkgICAgICBzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICplKTsKIGV4dGVy biBib29sIGRybV9oYW5kbGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVk IGludCBwaXBlKTsKIGV4dGVybiBib29sIGRybV9jcnRjX2hhbmRsZV92Ymxhbmsoc3RydWN0IGRy bV9jcnRjICpjcnRjKTsKIGV4dGVybiBpbnQgZHJtX3ZibGFua19nZXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpOwotLSAKMi41LjAKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==