From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH libdrm 05/10] tests: kms: Implement CRTC stealing test Date: Wed, 9 Dec 2015 18:37:43 +0100 Message-ID: <1449682668-22487-5-git-send-email-thierry.reding@gmail.com> References: <1449682668-22487-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-pf0-f177.google.com (mail-pf0-f177.google.com [209.85.192.177]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6D62C6E298 for ; Wed, 9 Dec 2015 09:38:07 -0800 (PST) Received: by pfu207 with SMTP id 207so33248566pfu.2 for ; Wed, 09 Dec 2015 09:38:07 -0800 (PST) In-Reply-To: <1449682668-22487-1-git-send-email-thierry.reding@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Emil Velikov , Hyungwon Hwang List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KClRoaXMgdGVzdCBwcm9n cmFtIHNldHMgYSBtb2RlIGFuZCBmcmFtZWJ1ZmZlciBvbiBhIGNvbm5lY3RvciBhbmQgY3ljbGVz CnRocm91Z2ggYWxsIENSVENzLCBtb3ZpbmcgdGhlIGNvbm5lY3RvciB0byBlYWNoIG9mIHRoZW0g aW4gdHVybi4gVGhpcyBpcwp1c2VmdWwgdG8gdmVyaWZ5IHRoYXQgQ1JUQyBzdGVhbGluZyBpcyBw cm9wZXJseSBoYW5kbGVkIGluIHRoZSBEUk0gY29yZQphbmQgZHJpdmVycy4KClNpZ25lZC1vZmYt Ynk6IFRoaWVycnkgUmVkaW5nIDx0cmVkaW5nQG52aWRpYS5jb20+Ci0tLQogdGVzdHMva21zL01h a2VmaWxlLmFtICAgICAgfCAgMTEgKysrKwogdGVzdHMva21zL2ttcy1zdGVhbC1jcnRjLmMgfCAx NjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVz IGNoYW5nZWQsIDE3MiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMva21z L2ttcy1zdGVhbC1jcnRjLmMKCmRpZmYgLS1naXQgYS90ZXN0cy9rbXMvTWFrZWZpbGUuYW0gYi90 ZXN0cy9rbXMvTWFrZWZpbGUuYW0KaW5kZXggZGE0NjQyMTg0NTA0Li5mMjhiNzI5YzA2OGMgMTAw NjQ0Ci0tLSBhL3Rlc3RzL2ttcy9NYWtlZmlsZS5hbQorKysgYi90ZXN0cy9rbXMvTWFrZWZpbGUu YW0KQEAgLTE4LDMgKzE4LDE0IEBAIGxpYmttc190ZXN0X2xhX1NPVVJDRVMgPSBcCiAKIGxpYmtt c190ZXN0X2xhX0xJQkFERCA9IFwKIAkkKHRvcF9idWlsZGRpcikvbGliZHJtLmxhCisKK2lmIEhB VkVfSU5TVEFMTF9URVNUUworYmluX1BST0dSQU1TID0gXAorCWttcy1zdGVhbC1jcnRjCitlbHNl Citub2luc3RfUFJPR1JBTVMgPSBcCisJa21zLXN0ZWFsLWNydGMKK2VuZGlmCisKK2ttc19zdGVh bF9jcnRjX1NPVVJDRVMgPSBrbXMtc3RlYWwtY3J0Yy5jCitrbXNfc3RlYWxfY3J0Y19MREFERCA9 IGxpYmttcy10ZXN0LmxhIC4uL3V0aWwvbGlidXRpbC5sYSAkKENBSVJPX0xJQlMpCmRpZmYgLS1n aXQgYS90ZXN0cy9rbXMva21zLXN0ZWFsLWNydGMuYyBiL3Rlc3RzL2ttcy9rbXMtc3RlYWwtY3J0 Yy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMmY3ZjMyN2VkYzE2 Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMva21zL2ttcy1zdGVhbC1jcnRjLmMKQEAgLTAsMCAr MSwxNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxNCBOVklESUEgQ29ycG9yYXRpb24KKyAq CisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55 IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lh dGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4g dGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0 YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNo LCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBT b2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBp cyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25z OgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24g bm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVk ZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3 YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdB UlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVU IE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBO TyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElB QkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhF UiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisg KiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUg VVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2lmZGVm IEhBVkVfQ09ORklHX0gKKyNpbmNsdWRlICJjb25maWcuaCIKKyNlbmRpZgorCisjaW5jbHVkZSA8 ZXJybm8uaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1 ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisK KyNpbmNsdWRlIDxkcm1fZm91cmNjLmg+CisKKyNpbmNsdWRlICJ1dGlsL3BhdHRlcm4uaCIKKyNp bmNsdWRlICJsaWJrbXMtdGVzdC5oIgorCitzdGF0aWMgdm9pZCBzaWduYWxfaGFuZGxlcihpbnQg c2lnbnVtKQoreworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworCXN0 cnVjdCBrbXNfZnJhbWVidWZmZXIgKmZiOworCXN0cnVjdCBrbXNfc2NyZWVuICpzY3JlZW47CisJ c3RydWN0IGttc19kZXZpY2UgKmRldmljZTsKKwl1bnNpZ25lZCBpbnQgaW5kZXggPSAwOworCXN0 cnVjdCBzaWdhY3Rpb24gc2E7CisJaW50IGZkLCBlcnI7CisJdm9pZCAqcHRyOworCisJaWYgKGFy Z2MgPCAyKSB7CisJCWZwcmludGYoc3RkZXJyLCAidXNhZ2U6ICVzIERFVklDRVxuIiwgYXJndlsw XSk7CisJCXJldHVybiAxOworCX0KKworCW1lbXNldCgmc2EsIDAsIHNpemVvZihzYSkpOworCXNh LnNhX2hhbmRsZXIgPSBzaWduYWxfaGFuZGxlcjsKKworCWVyciA9IHNpZ2FjdGlvbihTSUdJTlQs ICZzYSwgTlVMTCk7CisJaWYgKGVyciA8IDApIHsKKwkJZnByaW50ZihzdGRlcnIsICJzaWdhY3Rp b24oKSBmYWlsZWQ6ICVtXG4iKTsKKwkJcmV0dXJuIDE7CisJfQorCisJZmQgPSBvcGVuKGFyZ3Zb MV0sIE9fUkRXUik7CisJaWYgKGZkIDwgMCkgeworCQlmcHJpbnRmKHN0ZGVyciwgIm9wZW4oKSBm YWlsZWQ6ICVtXG4iKTsKKwkJcmV0dXJuIDE7CisJfQorCisJZGV2aWNlID0ga21zX2RldmljZV9v cGVuKGZkKTsKKwlpZiAoIWRldmljZSkgeworCQlmcHJpbnRmKHN0ZGVyciwgImttc19kZXZpY2Vf b3BlbigpIGZhaWxlZDogJW1cbiIpOworCQlyZXR1cm4gMTsKKwl9CisKKwlpZiAoZGV2aWNlLT5u dW1fc2NyZWVucyA8IDEpIHsKKwkJZnByaW50ZihzdGRlcnIsICJubyBzY3JlZW5zIGZvdW5kXG4i KTsKKwkJa21zX2RldmljZV9jbG9zZShkZXZpY2UpOworCQljbG9zZShmZCk7CisJCXJldHVybiAx OworCX0KKworCS8qIFRPRE86IGFsbG93IGNvbW1hbmQtbGluZSB0byBvdmVycmlkZSAqLworCXNj cmVlbiA9IGRldmljZS0+c2NyZWVuc1swXTsKKworCXByaW50ZigiVXNpbmcgc2NyZWVuICVzLCBy ZXNvbHV0aW9uICV1eCV1XG4iLCBzY3JlZW4tPm5hbWUsCisJICAgICAgIHNjcmVlbi0+d2lkdGgs IHNjcmVlbi0+aGVpZ2h0KTsKKworCWZiID0ga21zX2ZyYW1lYnVmZmVyX2NyZWF0ZShkZXZpY2Us IHNjcmVlbi0+d2lkdGgsIHNjcmVlbi0+aGVpZ2h0LAorCQkJCSAgICBEUk1fRk9STUFUX1hSR0I4 ODg4KTsKKwlpZiAoIWZiKSB7CisJCWZwcmludGYoc3RkZXJyLCAia21zX2ZyYW1lYnVmZmVyX2Ny ZWF0ZSgpIGZhaWxlZFxuIik7CisJCXJldHVybiAxOworCX0KKworCWVyciA9IGttc19mcmFtZWJ1 ZmZlcl9tYXAoZmIsICZwdHIpOworCWlmIChlcnIgPCAwKSB7CisJCWZwcmludGYoc3RkZXJyLCAi a21zX2ZyYW1lYnVmZmVyX21hcCgpIGZhaWxlZDogJWRcbiIsIGVycik7CisJCXJldHVybiAxOwor CX0KKworCXV0aWxfZmlsbF9wYXR0ZXJuKGZiLT5mb3JtYXQsIFVUSUxfUEFUVEVSTl9TTVBURSwg JnB0ciwgZmItPndpZHRoLAorCQkJICBmYi0+aGVpZ2h0LCBmYi0+cGl0Y2gpOworCisJa21zX2Zy YW1lYnVmZmVyX3VubWFwKGZiKTsKKworCWVyciA9IGttc19zY3JlZW5fc2V0KHNjcmVlbiwgZGV2 aWNlLT5jcnRjc1tpbmRleCsrXSwgZmIpOworCWlmIChlcnIgPCAwKSB7CisJCWZwcmludGYoc3Rk ZXJyLCAia21zX3NjcmVlbl9zZXQoKSBmYWlsZWQ6ICVkXG4iLCBlcnIpOworCQlyZXR1cm4gMTsK Kwl9CisKKwl3aGlsZSAodHJ1ZSkgeworCQlpbnQgbmZkcyA9IFNURElOX0ZJTEVOTyArIDE7CisJ CXN0cnVjdCB0aW1ldmFsIHRpbWVvdXQ7CisJCWZkX3NldCBmZHM7CisKKwkJbWVtc2V0KCZ0aW1l b3V0LCAwLCBzaXplb2YodGltZW91dCkpOworCQl0aW1lb3V0LnR2X3NlYyA9IDU7CisJCXRpbWVv dXQudHZfdXNlYyA9IDA7CisKKwkJRkRfWkVSTygmZmRzKTsKKwkJRkRfU0VUKFNURElOX0ZJTEVO TywgJmZkcyk7CisKKwkJZXJyID0gc2VsZWN0KG5mZHMsICZmZHMsIE5VTEwsIE5VTEwsICZ0aW1l b3V0KTsKKwkJaWYgKGVyciA8IDApIHsKKwkJCWlmIChlcnJubyA9PSBFSU5UUikKKwkJCQlicmVh azsKKworCQkJZnByaW50ZihzdGRlcnIsICJzZWxlY3QoKSBmYWlsZWQ6ICVkXG4iLCBlcnJubyk7 CisJCQlicmVhazsKKwkJfQorCisJCWlmIChlcnIgPiAwKSB7CisJCQlpZiAoRkRfSVNTRVQoU1RE SU5fRklMRU5PLCAmZmRzKSkKKwkJCQlicmVhazsKKwkJfQorCisJCS8qIHN3aXRjaCBDUlRDICov CisJCWlmIChpbmRleCA+PSBkZXZpY2UtPm51bV9jcnRjcykKKwkJCWluZGV4ID0gMDsKKworCQll cnIgPSBrbXNfc2NyZWVuX3NldChzY3JlZW4sIGRldmljZS0+Y3J0Y3NbaW5kZXhdLCBmYik7CisJ CWlmIChlcnIgPCAwKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgImttc19zY3JlZW5fc2V0KCkgZmFp bGVkOiAlZFxuIiwgZXJyKTsKKwkJCWJyZWFrOworCQl9CisKKwkJaW5kZXgrKzsKKwl9CisKKwlr bXNfZnJhbWVidWZmZXJfZnJlZShmYik7CisJa21zX2RldmljZV9jbG9zZShkZXZpY2UpOworCWNs b3NlKGZkKTsKKworCXJldHVybiAwOworfQotLSAKMi41LjAKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==