From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH libdrm 10/11] tests: kms: Implement CRTC stealing test Date: Fri, 23 Jan 2015 17:08:23 +0100 Message-ID: <1422029304-1926-11-git-send-email-thierry.reding@gmail.com> References: <1422029304-1926-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-pd0-f176.google.com (mail-pd0-f176.google.com [209.85.192.176]) by gabe.freedesktop.org (Postfix) with ESMTP id 8A72B6E952 for ; Fri, 23 Jan 2015 08:09:14 -0800 (PST) Received: by mail-pd0-f176.google.com with SMTP id y10so9306922pdj.7 for ; Fri, 23 Jan 2015 08:09:14 -0800 (PST) In-Reply-To: <1422029304-1926-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: Laurent Pinchart List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KClRoaXMgdGVzdCBwcm9n cmFtIHNldHMgYSBtb2RlIGFuZCBmcmFtZWJ1ZmZlciBvbiBhIGNvbm5lY3RvciBhbmQgY3ljbGVz CnRocm91Z2ggYWxsIENSVENzLCBtb3ZpbmcgdGhlIGNvbm5lY3RvciB0byBlYWNoIG9mIHRoZW0g aW4gdHVybi4gVGhpcyBpcwp1c2VmdWwgdG8gdmVyaWZ5IHRoYXQgQ1JUQyBzdGVhbGluZyBpcyBw cm9wZXJseSBoYW5kbGVkIGluIHRoZSBEUk0gY29yZQphbmQgZHJpdmVycy4KClNpZ25lZC1vZmYt Ynk6IFRoaWVycnkgUmVkaW5nIDx0cmVkaW5nQG52aWRpYS5jb20+Ci0tLQogdGVzdHMva21zL01h a2VmaWxlLmFtICAgICAgfCAgMTEgKysrKwogdGVzdHMva21zL2ttcy1zdGVhbC1jcnRjLmMgfCAx NjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVz IGNoYW5nZWQsIDE3MiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMva21z L2ttcy1zdGVhbC1jcnRjLmMKCmRpZmYgLS1naXQgYS90ZXN0cy9rbXMvTWFrZWZpbGUuYW0gYi90 ZXN0cy9rbXMvTWFrZWZpbGUuYW0KaW5kZXggYzg0YmFlMDVkODY5Li4xMDU4NGM4OTMwYTQgMTAw NjQ0Ci0tLSBhL3Rlc3RzL2ttcy9NYWtlZmlsZS5hbQorKysgYi90ZXN0cy9rbXMvTWFrZWZpbGUu YW0KQEAgLTE3LDMgKzE3LDE0IEBAIGxpYmttc190ZXN0X2xhX1NPVVJDRVMgPSBcCiAKIGxpYmtt c190ZXN0X2xhX0xJQkFERCA9IFwKIAkkKHRvcF9idWlsZGRpcikvbGliZHJtLmxhCisKK2lmIEhB VkVfSU5TVEFMTF9URVNUUworYmluX1BST0dSQU1TID0gXAorCWttcy1zdGVhbC1jcnRjCitlbHNl Citub2luc3RfUFJPR1JBTVMgPSBcCisJa21zLXN0ZWFsLWNydGMKK2VuZGlmCisKK2ttc19zdGVh bF9jcnRjX1NPVVJDRVMgPSBrbXMtc3RlYWwtY3J0Yy5jCitrbXNfc3RlYWxfY3J0Y19MREFERCA9 IGxpYmttcy10ZXN0LmxhIC4uL3V0aWwvbGlidXRpbC5sYQpkaWZmIC0tZ2l0IGEvdGVzdHMva21z L2ttcy1zdGVhbC1jcnRjLmMgYi90ZXN0cy9rbXMva21zLXN0ZWFsLWNydGMuYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjJmN2YzMjdlZGMxNgotLS0gL2Rldi9udWxs CisrKyBiL3Rlc3RzL2ttcy9rbXMtc3RlYWwtY3J0Yy5jCkBAIC0wLDAgKzEsMTYxIEBACisvKgor ICogQ29weXJpZ2h0IMKpIDIwMTQgTlZJRElBIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lv biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu aW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0 aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3 aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUg cmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwg c3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0 byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRv IGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUg YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVk aW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3Bp ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBU SEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkg S0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBU TyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwK KyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENM QUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9O IE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9G IE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBE RUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpZmRlZiBIQVZFX0NPTkZJR19I CisjaW5jbHVkZSAiY29uZmlnLmgiCisjZW5kaWYKKworI2luY2x1ZGUgPGVycm5vLmg+CisjaW5j bHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgor I2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCisjaW5jbHVkZSA8ZHJt X2ZvdXJjYy5oPgorCisjaW5jbHVkZSAidXRpbC9wYXR0ZXJuLmgiCisjaW5jbHVkZSAibGlia21z LXRlc3QuaCIKKworc3RhdGljIHZvaWQgc2lnbmFsX2hhbmRsZXIoaW50IHNpZ251bSkKK3sKK30K KworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKwlzdHJ1Y3Qga21zX2ZyYW1l YnVmZmVyICpmYjsKKwlzdHJ1Y3Qga21zX3NjcmVlbiAqc2NyZWVuOworCXN0cnVjdCBrbXNfZGV2 aWNlICpkZXZpY2U7CisJdW5zaWduZWQgaW50IGluZGV4ID0gMDsKKwlzdHJ1Y3Qgc2lnYWN0aW9u IHNhOworCWludCBmZCwgZXJyOworCXZvaWQgKnB0cjsKKworCWlmIChhcmdjIDwgMikgeworCQlm cHJpbnRmKHN0ZGVyciwgInVzYWdlOiAlcyBERVZJQ0VcbiIsIGFyZ3ZbMF0pOworCQlyZXR1cm4g MTsKKwl9CisKKwltZW1zZXQoJnNhLCAwLCBzaXplb2Yoc2EpKTsKKwlzYS5zYV9oYW5kbGVyID0g c2lnbmFsX2hhbmRsZXI7CisKKwllcnIgPSBzaWdhY3Rpb24oU0lHSU5ULCAmc2EsIE5VTEwpOwor CWlmIChlcnIgPCAwKSB7CisJCWZwcmludGYoc3RkZXJyLCAic2lnYWN0aW9uKCkgZmFpbGVkOiAl bVxuIik7CisJCXJldHVybiAxOworCX0KKworCWZkID0gb3Blbihhcmd2WzFdLCBPX1JEV1IpOwor CWlmIChmZCA8IDApIHsKKwkJZnByaW50ZihzdGRlcnIsICJvcGVuKCkgZmFpbGVkOiAlbVxuIik7 CisJCXJldHVybiAxOworCX0KKworCWRldmljZSA9IGttc19kZXZpY2Vfb3BlbihmZCk7CisJaWYg KCFkZXZpY2UpIHsKKwkJZnByaW50ZihzdGRlcnIsICJrbXNfZGV2aWNlX29wZW4oKSBmYWlsZWQ6 ICVtXG4iKTsKKwkJcmV0dXJuIDE7CisJfQorCisJaWYgKGRldmljZS0+bnVtX3NjcmVlbnMgPCAx KSB7CisJCWZwcmludGYoc3RkZXJyLCAibm8gc2NyZWVucyBmb3VuZFxuIik7CisJCWttc19kZXZp Y2VfY2xvc2UoZGV2aWNlKTsKKwkJY2xvc2UoZmQpOworCQlyZXR1cm4gMTsKKwl9CisKKwkvKiBU T0RPOiBhbGxvdyBjb21tYW5kLWxpbmUgdG8gb3ZlcnJpZGUgKi8KKwlzY3JlZW4gPSBkZXZpY2Ut PnNjcmVlbnNbMF07CisKKwlwcmludGYoIlVzaW5nIHNjcmVlbiAlcywgcmVzb2x1dGlvbiAldXgl dVxuIiwgc2NyZWVuLT5uYW1lLAorCSAgICAgICBzY3JlZW4tPndpZHRoLCBzY3JlZW4tPmhlaWdo dCk7CisKKwlmYiA9IGttc19mcmFtZWJ1ZmZlcl9jcmVhdGUoZGV2aWNlLCBzY3JlZW4tPndpZHRo LCBzY3JlZW4tPmhlaWdodCwKKwkJCQkgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCk7CisJaWYgKCFm YikgeworCQlmcHJpbnRmKHN0ZGVyciwgImttc19mcmFtZWJ1ZmZlcl9jcmVhdGUoKSBmYWlsZWRc biIpOworCQlyZXR1cm4gMTsKKwl9CisKKwllcnIgPSBrbXNfZnJhbWVidWZmZXJfbWFwKGZiLCAm cHRyKTsKKwlpZiAoZXJyIDwgMCkgeworCQlmcHJpbnRmKHN0ZGVyciwgImttc19mcmFtZWJ1ZmZl cl9tYXAoKSBmYWlsZWQ6ICVkXG4iLCBlcnIpOworCQlyZXR1cm4gMTsKKwl9CisKKwl1dGlsX2Zp bGxfcGF0dGVybihmYi0+Zm9ybWF0LCBVVElMX1BBVFRFUk5fU01QVEUsICZwdHIsIGZiLT53aWR0 aCwKKwkJCSAgZmItPmhlaWdodCwgZmItPnBpdGNoKTsKKworCWttc19mcmFtZWJ1ZmZlcl91bm1h cChmYik7CisKKwllcnIgPSBrbXNfc2NyZWVuX3NldChzY3JlZW4sIGRldmljZS0+Y3J0Y3NbaW5k ZXgrK10sIGZiKTsKKwlpZiAoZXJyIDwgMCkgeworCQlmcHJpbnRmKHN0ZGVyciwgImttc19zY3Jl ZW5fc2V0KCkgZmFpbGVkOiAlZFxuIiwgZXJyKTsKKwkJcmV0dXJuIDE7CisJfQorCisJd2hpbGUg KHRydWUpIHsKKwkJaW50IG5mZHMgPSBTVERJTl9GSUxFTk8gKyAxOworCQlzdHJ1Y3QgdGltZXZh bCB0aW1lb3V0OworCQlmZF9zZXQgZmRzOworCisJCW1lbXNldCgmdGltZW91dCwgMCwgc2l6ZW9m KHRpbWVvdXQpKTsKKwkJdGltZW91dC50dl9zZWMgPSA1OworCQl0aW1lb3V0LnR2X3VzZWMgPSAw OworCisJCUZEX1pFUk8oJmZkcyk7CisJCUZEX1NFVChTVERJTl9GSUxFTk8sICZmZHMpOworCisJ CWVyciA9IHNlbGVjdChuZmRzLCAmZmRzLCBOVUxMLCBOVUxMLCAmdGltZW91dCk7CisJCWlmIChl cnIgPCAwKSB7CisJCQlpZiAoZXJybm8gPT0gRUlOVFIpCisJCQkJYnJlYWs7CisKKwkJCWZwcmlu dGYoc3RkZXJyLCAic2VsZWN0KCkgZmFpbGVkOiAlZFxuIiwgZXJybm8pOworCQkJYnJlYWs7CisJ CX0KKworCQlpZiAoZXJyID4gMCkgeworCQkJaWYgKEZEX0lTU0VUKFNURElOX0ZJTEVOTywgJmZk cykpCisJCQkJYnJlYWs7CisJCX0KKworCQkvKiBzd2l0Y2ggQ1JUQyAqLworCQlpZiAoaW5kZXgg Pj0gZGV2aWNlLT5udW1fY3J0Y3MpCisJCQlpbmRleCA9IDA7CisKKwkJZXJyID0ga21zX3NjcmVl bl9zZXQoc2NyZWVuLCBkZXZpY2UtPmNydGNzW2luZGV4XSwgZmIpOworCQlpZiAoZXJyIDwgMCkg eworCQkJZnByaW50ZihzdGRlcnIsICJrbXNfc2NyZWVuX3NldCgpIGZhaWxlZDogJWRcbiIsIGVy cik7CisJCQlicmVhazsKKwkJfQorCisJCWluZGV4Kys7CisJfQorCisJa21zX2ZyYW1lYnVmZmVy X2ZyZWUoZmIpOworCWttc19kZXZpY2VfY2xvc2UoZGV2aWNlKTsKKwljbG9zZShmZCk7CisKKwly ZXR1cm4gMDsKK30KLS0gCjIuMS4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbAo=