From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH] drm/atomic: Handle vblank events in atomic ioctl correctly. Date: Mon, 1 Jun 2015 20:12:38 +0200 Message-ID: <1433182358-15463-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org QWxsIHVzZXJzIG9mIGFzeW5jIHVwZGF0ZXMgc2VlbSB0byBjbGVhciBjbGVhciBjcnRjX3N0YXRl LT5ldmVudApjb3JyZWN0bHksIHNvIG1vdmUgZGVzdHJveWluZyB2YmxhbmsgZXZlbnQgdG8gY3J0 Y19kZXN0cm95X3N0YXRlLgoKVGhpcyBpcyBiZXR0ZXIgdGhhbiBtYW51YWxseSBmcmVlJ2luZyBp dCBpbiB0aGUgYXRvbWljIGlvY3RsLCBzaW5jZQp0aGlzIGNvZGUgc2VlbXMgdG8gZG8gaXQgd3Jv bmcuCgpXaGlsZSB3ZSdyZSBhdCBpdCBoYW5kbGUgLUVERUFETEsgZnJvbSBhdG9taWNfY29tbWl0 IGNvcnJlY3RseSwKYmVjYXVzZSB0aGUgY2hlY2sgbWlnaHQgZmFpbCBvdGhlcndpc2UgaWYgaXQg dGFrZXMgYWRkaXRpb25hbCBzdGF0ZS4KClNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0 IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+ClJldmlld2VkLWJ5OiBEYW5pZWwg U3RvbmUgPGRhbmllbHNAY29sbGFib3JhLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pYy5jICAgICAgICB8IDQ0ICsrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIHwgMTUgKysrKysrKysrKysrKwog MiBmaWxlcyBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspLCAzNCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWMuYwppbmRleCBjN2U1OWIwNzRlNjIuLjA5N2FhNmQ5YThjNyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pYy5jCkBAIC0xMzI4LDE3ICsxMzI4LDYgQEAgb3V0OgogCXJldHVybiBlOwogfQogCi1zdGF0 aWMgdm9pZCBkZXN0cm95X3ZibGFua19ldmVudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQlz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwgc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVu dCAqZSkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRl di0+ZXZlbnRfbG9jaywgZmxhZ3MpOwotCWZpbGVfcHJpdi0+ZXZlbnRfc3BhY2UgKz0gc2l6ZW9m IGUtPmV2ZW50OwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+ZXZlbnRfbG9jaywgZmxh Z3MpOwotCWtmcmVlKGUpOwotfQotCiBzdGF0aWMgaW50IGF0b21pY19zZXRfcHJvcChzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCXN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKm9iaiwg c3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcCwKIAkJdWludDY0X3QgcHJvcF92YWx1ZSkKQEAgLTE1 MzQsMTMgKzE1MjMsMTggQEAgcmV0cnk6CiAJaWYgKGFyZy0+ZmxhZ3MgJiBEUk1fTU9ERV9BVE9N SUNfVEVTVF9PTkxZKSB7CiAJCXJldCA9IGRybV9hdG9taWNfY2hlY2tfb25seShzdGF0ZSk7CiAJ CS8qIF9jaGVja19vbmx5KCkgZG9lcyBub3QgZnJlZSBzdGF0ZSwgdW5saWtlIF9jb21taXQoKSAq LwotCQlkcm1fYXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUpOworCQlpZiAoIXJldCkKKwkJCWRybV9h dG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7CiAJfSBlbHNlIGlmIChhcmctPmZsYWdzICYgRFJNX01P REVfQVRPTUlDX05PTkJMT0NLKSB7CiAJCXJldCA9IGRybV9hdG9taWNfYXN5bmNfY29tbWl0KHN0 YXRlKTsKIAl9IGVsc2UgewogCQlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7CiAJfQog CitmYWlsOgorCWlmIChyZXQgPT0gLUVERUFETEspCisJCWdvdG8gYmFja29mZjsKKwogCS8qIGlm IHN1Y2NlZWRlZCwgZml4dXAgbGVnYWN5IHBsYW5lIGNydGMvZmIgcHRycyBiZWZvcmUgZHJvcHBp bmcKIAkgKiBsb2NrcyAoaWUuIHdoaWxlIGl0IGlzIHN0aWxsIHNhZmUgdG8gZGVyZWYgcGxhbmUt PnN0YXRlKS4gIFdlCiAJICogbmVlZCB0byBkbyB0aGlzIGhlcmUgYmVjYXVzZSB0aGUgZHJpdmVy IGVudHJ5IHBvaW50cyBjYW5ub3QKQEAgLTE1NTMsMzIgKzE1NDcsMTQgQEAgcmV0cnk6CiAJCQkJ ZHJtX2ZyYW1lYnVmZmVyX3JlZmVyZW5jZShuZXdfZmIpOwogCQkJcGxhbmUtPmZiID0gbmV3X2Zi OwogCQkJcGxhbmUtPmNydGMgPSBwbGFuZS0+c3RhdGUtPmNydGM7Ci0JCX0gZWxzZSB7Ci0JCQlw bGFuZS0+b2xkX2ZiID0gTlVMTDsKLQkJfQotCQlpZiAocGxhbmUtPm9sZF9mYikgewotCQkJZHJt X2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKHBsYW5lLT5vbGRfZmIpOwotCQkJcGxhbmUtPm9sZF9m YiA9IE5VTEw7Ci0JCX0KLQl9Ci0KLQlkcm1fbW9kZXNldF9kcm9wX2xvY2tzKCZjdHgpOwotCWRy bV9tb2Rlc2V0X2FjcXVpcmVfZmluaSgmY3R4KTsKIAotCXJldHVybiByZXQ7Ci0KLWZhaWw6Ci0J aWYgKHJldCA9PSAtRURFQURMSykKLQkJZ290byBiYWNrb2ZmOwotCi0JaWYgKGFyZy0+ZmxhZ3Mg JiBEUk1fTU9ERV9QQUdFX0ZMSVBfRVZFTlQpIHsKLQkJZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShz dGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewotCQkJZGVzdHJveV92YmxhbmtfZXZlbnQoZGV2 LCBmaWxlX3ByaXYsIGNydGNfc3RhdGUtPmV2ZW50KTsKLQkJCWNydGNfc3RhdGUtPmV2ZW50ID0g TlVMTDsKKwkJCWRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShwbGFuZS0+b2xkX2ZiKTsKIAkJ fQorCQlwbGFuZS0+b2xkX2ZiID0gTlVMTDsKIAl9CiAKLQlkcm1fYXRvbWljX3N0YXRlX2ZyZWUo c3RhdGUpOworCWlmIChyZXQpCisJCWRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7CiAKIAlk cm1fbW9kZXNldF9kcm9wX2xvY2tzKCZjdHgpOwogCWRybV9tb2Rlc2V0X2FjcXVpcmVfZmluaSgm Y3R4KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKaW5kZXggNTM2YWU0ZGE0NjY1Li4w YmI3MGM0ZGE3N2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBl ci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCkBAIC0yMTAxLDYg KzIxMDEsMTggQEAgZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUoc3RydWN0 IGRybV9jcnRjICpjcnRjKQogfQogRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9jcnRj X2R1cGxpY2F0ZV9zdGF0ZSk7CiAKK3N0YXRpYyB2b2lkIGRlc3Ryb3lfdmJsYW5rX2V2ZW50KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCXN0cnVjdCBkcm1fcGVuZGluZ192YmxhbmtfZXZlbnQg KmUpCit7CisJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYgPSBlLT5iYXNlLmZpbGVfcHJpdjsK Kwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmRldi0+ZXZlbnRf bG9jaywgZmxhZ3MpOworCWZpbGVfcHJpdi0+ZXZlbnRfc3BhY2UgKz0gc2l6ZW9mIGUtPmV2ZW50 OworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOworCWtm cmVlKGUpOworfQorCiAvKioKICAqIF9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0 YXRlIC0gcmVsZWFzZSBDUlRDIHN0YXRlCiAgKiBAY3J0YzogQ1JUQyBvYmplY3QKQEAgLTIxMTUs NiArMjEyNyw5IEBAIHZvaWQgX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUo c3RydWN0IGRybV9jcnRjICpjcnRjLAogewogCWlmIChzdGF0ZS0+bW9kZV9ibG9iKQogCQlkcm1f cHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihzdGF0ZS0+bW9kZV9ibG9iKTsKKworCWlmIChzdGF0 ZS0+ZXZlbnQpCisJCWRlc3Ryb3lfdmJsYW5rX2V2ZW50KGNydGMtPmRldiwgc3RhdGUtPmV2ZW50 KTsKIH0KIEVYUE9SVF9TWU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3Rh dGUpOwogCi0tIAoyLjEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK