From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Liviu Dudau Date: Tue, 15 Jan 2019 17:47:45 +0000 Message-Id: <20190115174747.3138-5-liviu.dudau@arm.com> In-Reply-To: <20190115174747.3138-1-liviu.dudau@arm.com> References: <20190115174747.3138-1-liviu.dudau@arm.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v5 4/6] kms_writeback: Add writeback-check-output List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Brian Starkey Cc: Boris Brezillon , Petri Latvala , Intel GFX ML , IGT GPU Tools , Daniel Vetter List-ID: RnJvbTogQnJpYW4gU3RhcmtleSA8YnJpYW4uc3RhcmtleUBhcm0uY29tPgoKQWRkIGEgdGVzdCB3 aGljaCBtYWtlcyBjb21taXRzIHVzaW5nIHRoZSB3cml0ZWJhY2sgY29ubmVjdG9yLCBhbmQKY2hl Y2tzIHRoZSBvdXRwdXQgYnVmZmVyIGhhc2ggdG8gbWFrZSBzdXJlIGl0IGlzL2lzbid0IHdyaXR0 ZW4gYXMKYXBwcm9wcmlhdGUuCgpTaWduZWQtb2ZmLWJ5OiBCcmlhbiBTdGFya2V5IDxicmlhbi5z dGFya2V5QGFybS5jb20+Ci0tLQogdGVzdHMva21zX3dyaXRlYmFjay5jIHwgMTI0ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEyNCBp bnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvdGVzdHMva21zX3dyaXRlYmFjay5jIGIvdGVzdHMv a21zX3dyaXRlYmFjay5jCmluZGV4IDY2ZWY0OGE2Yy4uMGYyMGRhZGQyIDEwMDY0NAotLS0gYS90 ZXN0cy9rbXNfd3JpdGViYWNrLmMKKysrIGIvdGVzdHMva21zX3dyaXRlYmFjay5jCkBAIC0zMCw2 ICszMCw3IEBACiAjaW5jbHVkZSAiaWd0LmgiCiAjaW5jbHVkZSAiaWd0X2NvcmUuaCIKICNpbmNs dWRlICJpZ3RfZmIuaCIKKyNpbmNsdWRlICJzd19zeW5jLmgiCiAKIHN0YXRpYyBkcm1Nb2RlUHJv cGVydHlCbG9iUmVzICpnZXRfd3JpdGViYWNrX2Zvcm1hdHNfYmxvYihpZ3Rfb3V0cHV0X3QgKm91 dHB1dCkKIHsKQEAgLTIyMSw2ICsyMjIsMTE2IEBAIHN0YXRpYyB2b2lkIHdyaXRlYmFja19mYl9p ZChpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgaWd0X2ZiX3QgKnZhbGlkX2ZiLCBpZ3RfZmJfdCAqCiAJ aWd0X2Fzc2VydChyZXQgPT0gMCk7CiB9CiAKK3N0YXRpYyB2b2lkIGZpbGxfZmIoaWd0X2ZiX3Qg KmZiLCBkb3VibGUgY29sb3JbM10pCit7CisJY2Fpcm9fdCAqY3IgPSBpZ3RfZ2V0X2NhaXJvX2N0 eChmYi0+ZmQsIGZiKTsKKwlpZ3RfYXNzZXJ0KGNyKTsKKworCWlndF9wYWludF9jb2xvcihjciwg MCwgMCwgZmItPndpZHRoLCBmYi0+aGVpZ2h0LAorCQkJY29sb3JbMF0sIGNvbG9yWzFdLCBjb2xv clsyXSk7Cit9CisKK3N0YXRpYyB2b2lkIGdldF9hbmRfd2FpdF9vdXRfZmVuY2UoaWd0X291dHB1 dF90ICpvdXRwdXQpCit7CisJaW50IHJldDsKKworCWlndF9hc3NlcnQob3V0cHV0LT53cml0ZWJh Y2tfb3V0X2ZlbmNlX2ZkID49IDApOworCisJcmV0ID0gc3luY19mZW5jZV93YWl0KG91dHB1dC0+ d3JpdGViYWNrX291dF9mZW5jZV9mZCwgMTAwMCk7CisJaWd0X2Fzc2VydChyZXQgPT0gMCk7CisJ Y2xvc2Uob3V0cHV0LT53cml0ZWJhY2tfb3V0X2ZlbmNlX2ZkKTsKKwlvdXRwdXQtPndyaXRlYmFj a19vdXRfZmVuY2VfZmQgPSAtMTsKK30KKworc3RhdGljIHZvaWQgd3JpdGViYWNrX3NlcXVlbmNl KGlndF9vdXRwdXRfdCAqb3V0cHV0LCBpZ3RfcGxhbmVfdCAqcGxhbmUsCisJCQkJaWd0X2ZiX3Qg KmluX2ZiLCBpZ3RfZmJfdCAqb3V0X2Zic1tdLCBpbnQgbl9jb21taXRzKQoreworCWludCBpLCBj b2xvcl9pZHggPSAwOworCWRvdWJsZSBpbl9mYl9jb2xvcnNbMl1bM10gPSB7CisJCXsgMS4wLCAw LjAsIDAuMCB9LAorCQl7IDAuMCwgMS4wLCAwLjAgfSwKKwl9OworCWRvdWJsZSBjbGVhcl9jb2xv clszXSA9IHsgMS4wLCAxLjAsIDEuMCB9OworCWlndF9jcmNfdCBjbGVhcmVkX2NyYywgb3V0X2V4 cGVjdGVkOworCisJZm9yIChpID0gMDsgaSA8IG5fY29tbWl0czsgaSsrLCBjb2xvcl9pZHgrKykg eworCQkvKiBDaGFuZ2UgdGhlIGlucHV0IGNvbG9yIGVhY2ggdGltZSAqLworCQlmaWxsX2ZiKGlu X2ZiLCBpbl9mYl9jb2xvcnNbY29sb3JfaWR4ICUgMl0pOworCisJCWlmIChvdXRfZmJzW2ldKSB7 CisJCQlpZ3RfY3JjX3Qgb3V0X2JlZm9yZTsKKworCQkJLyogR2V0IHRoZSBleHBlY3RlZCBDUkMg Ki8KKwkJCWZpbGxfZmIob3V0X2Zic1tpXSwgaW5fZmJfY29sb3JzW2NvbG9yX2lkeCAlIDJdKTsK KwkJCWlndF9mYl9nZXRfY3JjKG91dF9mYnNbaV0sICZvdXRfZXhwZWN0ZWQpOworCisJCQlmaWxs X2ZiKG91dF9mYnNbaV0sIGNsZWFyX2NvbG9yKTsKKwkJCWlmIChpID09IDApCisJCQkJaWd0X2Zi X2dldF9jcmMob3V0X2Zic1tpXSwgJmNsZWFyZWRfY3JjKTsKKwkJCWlndF9mYl9nZXRfY3JjKG91 dF9mYnNbaV0sICZvdXRfYmVmb3JlKTsKKwkJCWlndF9hc3NlcnRfY3JjX2VxdWFsKCZjbGVhcmVk X2NyYywgJm91dF9iZWZvcmUpOworCQl9CisKKwkJLyogQ29tbWl0ICovCisJCWlndF9wbGFuZV9z ZXRfZmIocGxhbmUsIGluX2ZiKTsKKwkJaWd0X291dHB1dF9zZXRfd3JpdGViYWNrX2ZiKG91dHB1 dCwgb3V0X2Zic1tpXSk7CisKKwkJaWd0X2Rpc3BsYXlfY29tbWl0X2F0b21pYyhvdXRwdXQtPmRp c3BsYXksCisJCQkJCSAgRFJNX01PREVfQVRPTUlDX0FMTE9XX01PREVTRVQsCisJCQkJCSAgTlVM TCk7CisJCWlmIChvdXRfZmJzW2ldKQorCQkJZ2V0X2FuZF93YWl0X291dF9mZW5jZShvdXRwdXQp OworCisJCS8qIE1ha2Ugc3VyZSB0aGUgb2xkIG91dHB1dCBidWZmZXIgaXMgdW50b3VjaGVkICov CisJCWlmIChpID4gMCAmJiBvdXRfZmJzW2kgLSAxXSAmJiAob3V0X2Zic1tpXSAhPSBvdXRfZmJz W2kgLSAxXSkpIHsKKwkJCWlndF9jcmNfdCBvdXRfcHJldjsKKwkJCWlndF9mYl9nZXRfY3JjKG91 dF9mYnNbaSAtIDFdLCAmb3V0X3ByZXYpOworCQkJaWd0X2Fzc2VydF9jcmNfZXF1YWwoJmNsZWFy ZWRfY3JjLCAmb3V0X3ByZXYpOworCQl9CisKKwkJLyogTWFrZSBzdXJlIHRoaXMgb3V0cHV0IGJ1 ZmZlciBpcyB3cml0dGVuICovCisJCWlmIChvdXRfZmJzW2ldKSB7CisJCQlpZ3RfY3JjX3Qgb3V0 X2FmdGVyOworCQkJaWd0X2ZiX2dldF9jcmMob3V0X2Zic1tpXSwgJm91dF9hZnRlcik7CisJCQlp Z3RfYXNzZXJ0X2NyY19lcXVhbCgmb3V0X2V4cGVjdGVkLCAmb3V0X2FmdGVyKTsKKworCQkJLyog QW5kIGNsZWFyIGl0LCBmb3IgdGhlIG5leHQgdGltZSAqLworCQkJZmlsbF9mYihvdXRfZmJzW2ld LCBjbGVhcl9jb2xvcik7CisJCX0KKwl9Cit9CisKK3N0YXRpYyB2b2lkIHdyaXRlYmFja19jaGVj a19vdXRwdXQoaWd0X291dHB1dF90ICpvdXRwdXQsIGlndF9wbGFuZV90ICpwbGFuZSwKKwkJCQkg ICBpZ3RfZmJfdCAqaW5wdXRfZmIsIGlndF9mYl90ICpvdXRwdXRfZmIpCit7CisJaWd0X2ZiX3Qg Km91dF9mYnNbMl0gPSB7IDAgfTsKKwlpZ3RfZmJfdCBzZWNvbmRfb3V0X2ZiOworCWludCByZXQ7 CisKKwkvKiBPbmUgY29tbWl0LCB3aXRoIGEgd3JpdGViYWNrLiAqLworCXdyaXRlYmFja19zZXF1 ZW5jZShvdXRwdXQsIHBsYW5lLCBpbnB1dF9mYiwgJm91dHB1dF9mYiwgMSk7CisKKwkvKiBUd28g Y29tbWl0cywgdGhlIHNlY29uZCB3aXRoIG5vIHdyaXRlYmFjayAqLworCW91dF9mYnNbMF0gPSBv dXRwdXRfZmI7CisJd3JpdGViYWNrX3NlcXVlbmNlKG91dHB1dCwgcGxhbmUsIGlucHV0X2ZiLCBv dXRfZmJzLCAyKTsKKworCS8qIFR3byBjb21taXRzLCBib3RoIHdpdGggd3JpdGViYWNrICovCisJ b3V0X2Zic1sxXSA9IG91dHB1dF9mYjsKKwl3cml0ZWJhY2tfc2VxdWVuY2Uob3V0cHV0LCBwbGFu ZSwgaW5wdXRfZmIsIG91dF9mYnMsIDIpOworCisJcmV0ID0gaWd0X2NyZWF0ZV9mYihvdXRwdXRf ZmItPmZkLCBvdXRwdXRfZmItPndpZHRoLCBvdXRwdXRfZmItPmhlaWdodCwKKwkJCSAgICBEUk1f Rk9STUFUX1hSR0I4ODg4LAorCQkJICAgIGlndF9mYl9tb2RfdG9fdGlsaW5nKDApLAorCQkJICAg ICZzZWNvbmRfb3V0X2ZiKTsKKwlpZ3RfcmVxdWlyZShyZXQgPiAwKTsKKworCS8qIFR3byBjb21t aXRzLCB3aXRoIGRpZmZlcmVudCB3cml0ZWJhY2sgYnVmZmVycyAqLworCW91dF9mYnNbMV0gPSAm c2Vjb25kX291dF9mYjsKKwl3cml0ZWJhY2tfc2VxdWVuY2Uob3V0cHV0LCBwbGFuZSwgaW5wdXRf ZmIsIG91dF9mYnMsIDIpOworCisJaWd0X3JlbW92ZV9mYihvdXRwdXRfZmItPmZkLCAmc2Vjb25k X291dF9mYik7Cit9CisKIGlndF9tYWluCiB7CiAJaWd0X2Rpc3BsYXlfdCBkaXNwbGF5OwpAQCAt MzA3LDYgKzQxOCwxOSBAQCBpZ3RfbWFpbgogCQlpZ3RfcmVtb3ZlX2ZiKGRpc3BsYXkuZHJtX2Zk LCAmb3V0cHV0X2ZiKTsKIAl9CiAKKwlpZ3Rfc3VidGVzdCgid3JpdGViYWNrLWNoZWNrLW91dHB1 dCIpIHsKKwkJaWd0X2ZiX3Qgb3V0cHV0X2ZiOworCQlyZXQgPSBpZ3RfY3JlYXRlX2ZiKGRpc3Bs YXkuZHJtX2ZkLCBtb2RlLmhkaXNwbGF5LCBtb2RlLnZkaXNwbGF5LAorCQkJCSAgICBEUk1fRk9S TUFUX1hSR0I4ODg4LAorCQkJCSAgICBpZ3RfZmJfbW9kX3RvX3RpbGluZygwKSwKKwkJCQkgICAg Jm91dHB1dF9mYik7CisJCWlndF9yZXF1aXJlKHJldCA+IDApOworCisJCXdyaXRlYmFja19jaGVj a19vdXRwdXQob3V0cHV0LCBwbGFuZSwgJmlucHV0X2ZiLCAmb3V0cHV0X2ZiKTsKKworCQlpZ3Rf cmVtb3ZlX2ZiKGRpc3BsYXkuZHJtX2ZkLCAmb3V0cHV0X2ZiKTsKKwl9CisKIAlpZ3RfZml4dHVy ZSB7CiAJCWlndF9yZW1vdmVfZmIoZGlzcGxheS5kcm1fZmQsICZpbnB1dF9mYik7CiAJCWlndF9k aXNwbGF5X2ZpbmkoJmRpc3BsYXkpOwotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2lndC1kZXYK