From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v2] drm/atomic: Handle vblank events in atomic ioctl correctly. Date: Tue, 02 Jun 2015 09:00:46 +0200 Message-ID: <556D549E.1010109@linux.intel.com> References: <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: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Stone Cc: intel-gfx , dri-devel List-Id: intel-gfx@lists.freedesktop.org QWxsIHVzZXJzIG9mIGFzeW5jIHVwZGF0ZXMgc2VlbSB0byBjbGVhciBjbGVhciBjcnRjX3N0YXRl LT5ldmVudApjb3JyZWN0bHksIHNvIG1vdmUgZGVzdHJveWluZyB2YmxhbmsgZXZlbnQgdG8gY3J0 Y19kZXN0cm95X3N0YXRlLgoKVGhpcyBpcyBiZXR0ZXIgdGhhbiBtYW51YWxseSBmcmVlJ2luZyBp dCBpbiB0aGUgYXRvbWljIGlvY3RsLCBzaW5jZQp0aGlzIGNvZGUgc2VlbXMgdG8gZG8gaXQgd3Jv bmcuCgpXaGlsZSB3ZSdyZSBhdCBpdCBoYW5kbGUgLUVERUFETEsgZnJvbSBhdG9taWNfY29tbWl0 IGNvcnJlY3RseSwKYmVjYXVzZSB0aGUgY2hlY2sgbWlnaHQgZmFpbCBvdGhlcndpc2UgaWYgaXQg dGFrZXMgYWRkaXRpb25hbCBzdGF0ZS4KCkNoYW5nZXMgc2luY2UgdjE6Ci0gRml4IGZyZWVpbmcg YSBOVUxMIGZyYW1lYnVmZmVyLCB0aGFua3MgZm9yIGNhdGNoaW5nIERhbmllbCBTdG9uZS4KClNp Z25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5p bnRlbC5jb20+ClJldmlld2VkLWJ5OiBEYW5pZWwgU3RvbmUgPGRhbmllbHNAY29sbGFib3JhLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICB8IDQ1ICsrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj X2hlbHBlci5jIHwgMTUgKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAyNiBpbnNlcnRp b25zKCspLCAzNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwppbmRleCBjN2U1OWIwNzRl NjIuLjhhZGQwZGQ4ZGM1ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCkBAIC0xMzI4LDE3ICsxMzI4LDYg QEAgb3V0OgogCXJldHVybiBlOwogfQogCi1zdGF0aWMgdm9pZCBkZXN0cm95X3ZibGFua19ldmVu dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwg c3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZSkKLXsKLQl1bnNpZ25lZCBsb25nIGZs YWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOwotCWZp bGVfcHJpdi0+ZXZlbnRfc3BhY2UgKz0gc2l6ZW9mIGUtPmV2ZW50OwotCXNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOwotCWtmcmVlKGUpOwotfQotCiBzdGF0 aWMgaW50IGF0b21pY19zZXRfcHJvcChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJ CXN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKm9iaiwgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcCwK IAkJdWludDY0X3QgcHJvcF92YWx1ZSkKQEAgLTE1MzQsMTMgKzE1MjMsMTggQEAgcmV0cnk6CiAJ aWYgKGFyZy0+ZmxhZ3MgJiBEUk1fTU9ERV9BVE9NSUNfVEVTVF9PTkxZKSB7CiAJCXJldCA9IGRy bV9hdG9taWNfY2hlY2tfb25seShzdGF0ZSk7CiAJCS8qIF9jaGVja19vbmx5KCkgZG9lcyBub3Qg ZnJlZSBzdGF0ZSwgdW5saWtlIF9jb21taXQoKSAqLwotCQlkcm1fYXRvbWljX3N0YXRlX2ZyZWUo c3RhdGUpOworCQlpZiAoIXJldCkKKwkJCWRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7CiAJ fSBlbHNlIGlmIChhcmctPmZsYWdzICYgRFJNX01PREVfQVRPTUlDX05PTkJMT0NLKSB7CiAJCXJl dCA9IGRybV9hdG9taWNfYXN5bmNfY29tbWl0KHN0YXRlKTsKIAl9IGVsc2UgewogCQlyZXQgPSBk cm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7CiAJfQogCitmYWlsOgorCWlmIChyZXQgPT0gLUVERUFE TEspCisJCWdvdG8gYmFja29mZjsKKwogCS8qIGlmIHN1Y2NlZWRlZCwgZml4dXAgbGVnYWN5IHBs YW5lIGNydGMvZmIgcHRycyBiZWZvcmUgZHJvcHBpbmcKIAkgKiBsb2NrcyAoaWUuIHdoaWxlIGl0 IGlzIHN0aWxsIHNhZmUgdG8gZGVyZWYgcGxhbmUtPnN0YXRlKS4gIFdlCiAJICogbmVlZCB0byBk byB0aGlzIGhlcmUgYmVjYXVzZSB0aGUgZHJpdmVyIGVudHJ5IHBvaW50cyBjYW5ub3QKQEAgLTE1 NTMsMzIgKzE1NDcsMTUgQEAgcmV0cnk6CiAJCQkJZHJtX2ZyYW1lYnVmZmVyX3JlZmVyZW5jZShu ZXdfZmIpOwogCQkJcGxhbmUtPmZiID0gbmV3X2ZiOwogCQkJcGxhbmUtPmNydGMgPSBwbGFuZS0+ c3RhdGUtPmNydGM7Ci0JCX0gZWxzZSB7Ci0JCQlwbGFuZS0+b2xkX2ZiID0gTlVMTDsKLQkJfQot CQlpZiAocGxhbmUtPm9sZF9mYikgewotCQkJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKHBs YW5lLT5vbGRfZmIpOwotCQkJcGxhbmUtPm9sZF9mYiA9IE5VTEw7Ci0JCX0KLQl9Ci0KLQlkcm1f bW9kZXNldF9kcm9wX2xvY2tzKCZjdHgpOwotCWRybV9tb2Rlc2V0X2FjcXVpcmVfZmluaSgmY3R4 KTsKLQotCXJldHVybiByZXQ7Ci0KLWZhaWw6Ci0JaWYgKHJldCA9PSAtRURFQURMSykKLQkJZ290 byBiYWNrb2ZmOwogCi0JaWYgKGFyZy0+ZmxhZ3MgJiBEUk1fTU9ERV9QQUdFX0ZMSVBfRVZFTlQp IHsKLQkJZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkg ewotCQkJZGVzdHJveV92YmxhbmtfZXZlbnQoZGV2LCBmaWxlX3ByaXYsIGNydGNfc3RhdGUtPmV2 ZW50KTsKLQkJCWNydGNfc3RhdGUtPmV2ZW50ID0gTlVMTDsKKwkJCWlmIChwbGFuZS0+b2xkX2Zi KQorCQkJCWRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShwbGFuZS0+b2xkX2ZiKTsKIAkJfQor CQlwbGFuZS0+b2xkX2ZiID0gTlVMTDsKIAl9CiAKLQlkcm1fYXRvbWljX3N0YXRlX2ZyZWUoc3Rh dGUpOworCWlmIChyZXQpCisJCWRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7CiAKIAlkcm1f bW9kZXNldF9kcm9wX2xvY2tzKCZjdHgpOwogCWRybV9tb2Rlc2V0X2FjcXVpcmVfZmluaSgmY3R4 KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKaW5kZXggNTM2YWU0ZGE0NjY1Li4wYmI3 MGM0ZGE3N2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCkBAIC0yMTAxLDYgKzIx MDEsMTggQEAgZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRy bV9jcnRjICpjcnRjKQogfQogRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1 cGxpY2F0ZV9zdGF0ZSk7CiAKK3N0YXRpYyB2b2lkIGRlc3Ryb3lfdmJsYW5rX2V2ZW50KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCisJCXN0cnVjdCBkcm1fcGVuZGluZ192YmxhbmtfZXZlbnQgKmUp Cit7CisJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYgPSBlLT5iYXNlLmZpbGVfcHJpdjsKKwl1 bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmRldi0+ZXZlbnRfbG9j aywgZmxhZ3MpOworCWZpbGVfcHJpdi0+ZXZlbnRfc3BhY2UgKz0gc2l6ZW9mIGUtPmV2ZW50Owor CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOworCWtmcmVl KGUpOworfQorCiAvKioKICAqIF9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRl IC0gcmVsZWFzZSBDUlRDIHN0YXRlCiAgKiBAY3J0YzogQ1JUQyBvYmplY3QKQEAgLTIxMTUsNiAr MjEyNyw5IEBAIHZvaWQgX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUoc3Ry dWN0IGRybV9jcnRjICpjcnRjLAogewogCWlmIChzdGF0ZS0+bW9kZV9ibG9iKQogCQlkcm1fcHJv cGVydHlfdW5yZWZlcmVuY2VfYmxvYihzdGF0ZS0+bW9kZV9ibG9iKTsKKworCWlmIChzdGF0ZS0+ ZXZlbnQpCisJCWRlc3Ryb3lfdmJsYW5rX2V2ZW50KGNydGMtPmRldiwgc3RhdGUtPmV2ZW50KTsK IH0KIEVYUE9SVF9TWU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUp OwogCi0tIAoyLjEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg==