From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH 34/36] drm/tegra: Track active planes in CRTC state Date: Tue, 20 Jan 2015 11:48:53 +0100 Message-ID: <1421750935-4023-35-git-send-email-thierry.reding@gmail.com> References: <1421750935-4023-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: In-Reply-To: <1421750935-4023-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: linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org List-Id: linux-tegra@vger.kernel.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KCldyYXAgc3RydWN0IGRy bV9jcnRjX3N0YXRlIGluIGEgZHJpdmVyLXNwZWNpZmljIHN0cnVjdHVyZSBhbmQgYWRkIHRoZQpw bGFuZXMgZmllbGQgd2hpY2gga2VlcHMgdHJhY2sgb2Ygd2hpY2ggcGxhbmVzIGFyZSB1cGRhdGVk IG9yIGRpc2FibGVkCmR1cmluZyBhIG1vZGVzZXQuIFRoaXMgYWxsb3dzIGF0b21pYyB1cGRhdGVz IG9mIHRoZSB0aGUgZGlzcGxheSBlbmdpbmUKYXQgLT5hdG9taWNfZmx1c2goKSB0aW1lLgoKU2ln bmVkLW9mZi1ieTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vdGVncmEvZGMuYyB8IDcyICsrKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspLCAyOCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYyBiL2Ry aXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jCmluZGV4IDUyYWU1NjNjYjUzMS4uODM1ZGU0Mzk4Yzhm IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vdGVncmEvZGMuYwpAQCAtNTQsNiArNTQsOCBAQCBzdHJ1Y3QgdGVncmFfZGNfc3RhdGUg ewogCXN0cnVjdCBjbGsgKmNsazsKIAl1bnNpZ25lZCBsb25nIHBjbGs7CiAJdW5zaWduZWQgaW50 IGRpdjsKKworCXUzMiBwbGFuZXM7CiB9OwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCB0ZWdyYV9k Y19zdGF0ZSAqdG9fZGNfc3RhdGUoc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSkKQEAgLTY0 LDIwICs2Niw2IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHRlZ3JhX2RjX3N0YXRlICp0b19kY19z dGF0ZShzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQogCXJldHVybiBOVUxMOwogfQogCi1z dGF0aWMgdm9pZCB0ZWdyYV9kY193aW5kb3dfY29tbWl0KHN0cnVjdCB0ZWdyYV9kYyAqZGMsIHVu c2lnbmVkIGludCBpbmRleCkKLXsKLQl1MzIgdmFsdWUgPSBXSU5fQV9BQ1RfUkVRIDw8IGluZGV4 OwotCi0JdGVncmFfZGNfd3JpdGVsKGRjLCB2YWx1ZSA8PCA4LCBEQ19DTURfU1RBVEVfQ09OVFJP TCk7Ci0JdGVncmFfZGNfd3JpdGVsKGRjLCB2YWx1ZSwgRENfQ01EX1NUQVRFX0NPTlRST0wpOwot fQotCi1zdGF0aWMgdm9pZCB0ZWdyYV9kY19jdXJzb3JfY29tbWl0KHN0cnVjdCB0ZWdyYV9kYyAq ZGMpCi17Ci0JdGVncmFfZGNfd3JpdGVsKGRjLCBDVVJTT1JfQUNUX1JFUSA8PCA4LCBEQ19DTURf U1RBVEVfQ09OVFJPTCk7Ci0JdGVncmFfZGNfd3JpdGVsKGRjLCBDVVJTT1JfQUNUX1JFUSwgRENf Q01EX1NUQVRFX0NPTlRST0wpOwotfQotCiAvKgogICogUmVhZHMgdGhlIGFjdGl2ZSBjb3B5IG9m IGEgcmVnaXN0ZXIuIFRoaXMgdGFrZXMgdGhlIGRjLT5sb2NrIHNwaW5sb2NrIHRvCiAgKiBwcmV2 ZW50IHJhY2VzIHdpdGggdGhlIFZCTEFOSyBwcm9jZXNzaW5nIHdoaWNoIGFsc28gbmVlZHMgYWNj ZXNzIHRvIHRoZQpAQCAtMzk1LDggKzM4Myw2IEBAIHN0YXRpYyB2b2lkIHRlZ3JhX2RjX3NldHVw X3dpbmRvdyhzdHJ1Y3QgdGVncmFfZGMgKmRjLCB1bnNpZ25lZCBpbnQgaW5kZXgsCiAJCWJyZWFr OwogCX0KIAotCXRlZ3JhX2RjX3dpbmRvd19jb21taXQoZGMsIGluZGV4KTsKLQogCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJmRjLT5sb2NrLCBmbGFncyk7CiB9CiAKQEAgLTQzOSw5ICs0MjUsMjgg QEAgc3RhdGljIHZvaWQgdGVncmFfcGxhbmVfY2xlYW51cF9mYihzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKIHsKIH0KIAorc3RhdGljIGludCB0ZWdyYV9wbGFuZV9zdGF0ZV9hZGQoc3RydWN0IHRl Z3JhX3BsYW5lICpwbGFuZSwKKwkJCQkgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCit7 CisJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOworCXN0cnVjdCB0ZWdyYV9kY19z dGF0ZSAqdGVncmE7CisKKwkvKiBQcm9wYWdhdGUgZXJyb3JzIGZyb20gYWxsb2NhdGlvbiBvciBs b2NraW5nIGZhaWx1cmVzLiAqLworCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX3BsYW5lX2dldF9j cnRjX3N0YXRlKHN0YXRlKTsKKwlpZiAoSVNfRVJSKGNydGNfc3RhdGUpKQorCQlyZXR1cm4gUFRS X0VSUihjcnRjX3N0YXRlKTsKKworCXRlZ3JhID0gdG9fZGNfc3RhdGUoY3J0Y19zdGF0ZSk7CisK Kwl0ZWdyYS0+cGxhbmVzIHw9IFdJTl9BX0FDVF9SRVEgPDwgcGxhbmUtPmluZGV4OworCisJcmV0 dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgdGVncmFfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAogCQkJCSAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkK IHsKKwlzdHJ1Y3QgdGVncmFfcGxhbmUgKnRlZ3JhID0gdG9fdGVncmFfcGxhbmUocGxhbmUpOwog CXN0cnVjdCB0ZWdyYV9kYyAqZGMgPSB0b190ZWdyYV9kYyhzdGF0ZS0+Y3J0Yyk7CiAJc3RydWN0 IHRlZ3JhX2JvX3RpbGluZyB0aWxpbmc7CiAJaW50IGVycjsKQEAgLTQ3Miw2ICs0NzcsMTAgQEAg c3RhdGljIGludCB0ZWdyYV9wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCiAJCX0KIAl9CiAKKwllcnIgPSB0ZWdyYV9wbGFuZV9zdGF0ZV9hZGQodGVncmEsIHN0YXRl KTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKwogCXJldHVybiAwOwogfQogCkBAIC01 MzgsOCArNTQ3LDYgQEAgc3RhdGljIHZvaWQgdGVncmFfcGxhbmVfYXRvbWljX2Rpc2FibGUoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJdmFsdWUgJj0gfldJTl9FTkFCTEU7CiAJdGVncmFfZGNf d3JpdGVsKGRjLCB2YWx1ZSwgRENfV0lOX1dJTl9PUFRJT05TKTsKIAotCXRlZ3JhX2RjX3dpbmRv d19jb21taXQoZGMsIHAtPmluZGV4KTsKLQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRjLT5s b2NrLCBmbGFncyk7CiB9CiAKQEAgLTU5OSw2ICs2MDYsOSBAQCBzdGF0aWMgY29uc3QgdTMyIHRl Z3JhX2N1cnNvcl9wbGFuZV9mb3JtYXRzW10gPSB7CiBzdGF0aWMgaW50IHRlZ3JhX2N1cnNvcl9h dG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkJICAgICBzdHJ1Y3QgZHJt X3BsYW5lX3N0YXRlICpzdGF0ZSkKIHsKKwlzdHJ1Y3QgdGVncmFfcGxhbmUgKnRlZ3JhID0gdG9f dGVncmFfcGxhbmUocGxhbmUpOworCWludCBlcnI7CisKIAkvKiBubyBuZWVkIGZvciBmdXJ0aGVy IGNoZWNrcyBpZiB0aGUgcGxhbmUgaXMgYmVpbmcgZGlzYWJsZWQgKi8KIAlpZiAoIXN0YXRlLT5j cnRjKQogCQlyZXR1cm4gMDsKQEAgLTYxNiw2ICs2MjYsMTAgQEAgc3RhdGljIGludCB0ZWdyYV9j dXJzb3JfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCSAgICBzdGF0ZS0+ Y3J0Y193ICE9IDEyOCAmJiBzdGF0ZS0+Y3J0Y193ICE9IDI1NikKIAkJcmV0dXJuIC1FSU5WQUw7 CiAKKwllcnIgPSB0ZWdyYV9wbGFuZV9zdGF0ZV9hZGQodGVncmEsIHN0YXRlKTsKKwlpZiAoZXJy IDwgMCkKKwkJcmV0dXJuIGVycjsKKwogCXJldHVybiAwOwogfQogCkBAIC02ODAsOSArNjk0LDYg QEAgc3RhdGljIHZvaWQgdGVncmFfY3Vyc29yX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCiAJdmFsdWUgPSAoc3RhdGUtPmNydGNfeSAmIDB4M2ZmZikgPDwgMTYgfCAoc3Rh dGUtPmNydGNfeCAmIDB4M2ZmZik7CiAJdGVncmFfZGNfd3JpdGVsKGRjLCB2YWx1ZSwgRENfRElT UF9DVVJTT1JfUE9TSVRJT04pOwogCi0JLyogYXBwbHkgY2hhbmdlcyAqLwotCXRlZ3JhX2RjX2N1 cnNvcl9jb21taXQoZGMpOwotCXRlZ3JhX2RjX2NvbW1pdChkYyk7CiB9CiAKIHN0YXRpYyB2b2lk IHRlZ3JhX2N1cnNvcl9hdG9taWNfZGlzYWJsZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKQEAg LTcwMCw5ICs3MTEsNiBAQCBzdGF0aWMgdm9pZCB0ZWdyYV9jdXJzb3JfYXRvbWljX2Rpc2FibGUo c3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJdmFsdWUgPSB0ZWdyYV9kY19yZWFkbChkYywgRENf RElTUF9ESVNQX1dJTl9PUFRJT05TKTsKIAl2YWx1ZSAmPSB+Q1VSU09SX0VOQUJMRTsKIAl0ZWdy YV9kY193cml0ZWwoZGMsIHZhbHVlLCBEQ19ESVNQX0RJU1BfV0lOX09QVElPTlMpOwotCi0JdGVn cmFfZGNfY3Vyc29yX2NvbW1pdChkYyk7Ci0JdGVncmFfZGNfY29tbWl0KGRjKTsKIH0KIAogc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfZnVuY3MgdGVncmFfY3Vyc29yX3BsYW5lX2Z1bmNz ID0gewpAQCAtNzM0LDYgKzc0MiwxMyBAQCBzdGF0aWMgc3RydWN0IGRybV9wbGFuZSAqdGVncmFf ZGNfY3Vyc29yX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLAogCWlmICghcGxh bmUpCiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCisJLyoKKwkgKiBXZSdsbCB0cmVhdCB0 aGUgY3Vyc29yIGFzIGFuIG92ZXJsYXkgcGxhbmUgd2l0aCBpbmRleCA2IGhlcmUgc28KKwkgKiB0 aGF0IHRoZSB1cGRhdGUgYW5kIGFjdGl2YXRpb24gcmVxdWVzdCBiaXRzIGluIERDX0NNRF9TVEFU RV9DT05UUk9MCisJICogbWF0Y2ggdXAuCisJICovCisJcGxhbmUtPmluZGV4ID0gNjsKKwogCW51 bV9mb3JtYXRzID0gQVJSQVlfU0laRSh0ZWdyYV9jdXJzb3JfcGxhbmVfZm9ybWF0cyk7CiAJZm9y bWF0cyA9IHRlZ3JhX2N1cnNvcl9wbGFuZV9mb3JtYXRzOwogCkBAIC0xMDI5LDcgKzEwNDQsNiBA QCBzdGF0aWMgdm9pZCB0ZWdyYV9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQog CX0KIAogCWRybV9jcnRjX3ZibGFua19vZmYoY3J0Yyk7Ci0JdGVncmFfZGNfY29tbWl0KGRjKTsK IH0KIAogc3RhdGljIGJvb2wgdGVncmFfY3J0Y19tb2RlX2ZpeHVwKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywKQEAgLTEyMDcsMTAgKzEyMjEsNyBAQCBzdGF0aWMgdm9pZCB0ZWdyYV9jcnRjX3ByZXBh cmUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCiBzdGF0aWMgdm9pZCB0ZWdyYV9jcnRjX2NvbW1p dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB7Ci0Jc3RydWN0IHRlZ3JhX2RjICpkYyA9IHRvX3Rl Z3JhX2RjKGNydGMpOwotCiAJZHJtX2NydGNfdmJsYW5rX29uKGNydGMpOwotCXRlZ3JhX2RjX2Nv bW1pdChkYyk7CiB9CiAKIHN0YXRpYyBpbnQgdGVncmFfY3J0Y19hdG9taWNfY2hlY2soc3RydWN0 IGRybV9jcnRjICpjcnRjLApAQCAtMTIzNSw2ICsxMjQ2LDExIEBAIHN0YXRpYyB2b2lkIHRlZ3Jh X2NydGNfYXRvbWljX2JlZ2luKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAogc3RhdGljIHZvaWQg dGVncmFfY3J0Y19hdG9taWNfZmx1c2goc3RydWN0IGRybV9jcnRjICpjcnRjKQogeworCXN0cnVj dCB0ZWdyYV9kY19zdGF0ZSAqc3RhdGUgPSB0b19kY19zdGF0ZShjcnRjLT5zdGF0ZSk7CisJc3Ry dWN0IHRlZ3JhX2RjICpkYyA9IHRvX3RlZ3JhX2RjKGNydGMpOworCisJdGVncmFfZGNfd3JpdGVs KGRjLCBzdGF0ZS0+cGxhbmVzIDw8IDgsIERDX0NNRF9TVEFURV9DT05UUk9MKTsKKwl0ZWdyYV9k Y193cml0ZWwoZGMsIHN0YXRlLT5wbGFuZXMsIERDX0NNRF9TVEFURV9DT05UUk9MKTsKIH0KIAog c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3MgdGVncmFfY3J0Y19oZWxw ZXJfZnVuY3MgPSB7Ci0tIAoyLjEuMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWwK