From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [PATCH v2 01/12] drm/atomic: Move __drm_atomic_helper_disable_plane/set_config() Date: Sun, 7 Apr 2019 18:52:32 +0200 Message-ID: <20190407165243.54043-2-noralf@tronnes.org> References: <20190407165243.54043-1-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190407165243.54043-1-noralf@tronnes.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= List-Id: dri-devel@lists.freedesktop.org UHJlcGFyZSBmb3IgbW92aW5nIGRybV9mYl9oZWxwZXIgbW9kZXNldHRpbmcgY29kZSB0byBkcm1f Y2xpZW50Lgpkcm1fY2xpZW50IHdpbGwgYmUgbGlua2VkIHRvIGRybS5rbywgc28gbW92ZQpfX2Ry bV9hdG9taWNfaGVscGVyX2Rpc2FibGVfcGxhbmUoKSBhbmQgX19kcm1fYXRvbWljX2hlbHBlcl9z ZXRfY29uZmlnKCkKb3V0IG9mIGRybV9rbXNfaGVscGVyLmtvLgoKV2hpbGUgYXQgaXQsIGZpeCB0 d28gY2hlY2twYXRjaCBjb21wbGFpbnRzOgotIFdBUk5JTkc6IEJsb2NrIGNvbW1lbnRzIHVzZSBh IHRyYWlsaW5nICovIG9uIGEgc2VwYXJhdGUgbGluZQotIENIRUNLOiBBbGlnbm1lbnQgc2hvdWxk IG1hdGNoIG9wZW4gcGFyZW50aGVzaXMKClNpZ25lZC1vZmYtYnk6IE5vcmFsZiBUcsO4bm5lcyA8 bm9yYWxmQHRyb25uZXMub3JnPgpSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZl dHRlckBmZndsbC5jaD4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICB8 IDE2OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pY19oZWxwZXIuYyB8IDE2NCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMv Z3B1L2RybS9kcm1fY3J0Y19pbnRlcm5hbC5oIHwgICA1ICsKIGluY2x1ZGUvZHJtL2RybV9hdG9t aWNfaGVscGVyLmggICAgIHwgICA0IC0KIDQgZmlsZXMgY2hhbmdlZCwgMTczIGluc2VydGlvbnMo KyksIDE2OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwppbmRleCA1ZWI0MDEzMGZhZmIu LmMzYTlmZmJmMjMxMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCkBAIC0xMTMwLDYgKzExMzAsMTc0IEBA IGludCBkcm1fYXRvbWljX25vbmJsb2NraW5nX2NvbW1pdChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUpCiB9CiBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfbm9uYmxvY2tpbmdfY29tbWl0 KTsKIAorLyoganVzdCB1c2VkIGZyb20gZHJtLWNsaWVudCBhbmQgYXRvbWljLWhlbHBlcjogKi8K K2ludCBfX2RybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCisJCQkJICAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCit7 CisJaW50IHJldDsKKworCXJldCA9IGRybV9hdG9taWNfc2V0X2NydGNfZm9yX3BsYW5lKHBsYW5l X3N0YXRlLCBOVUxMKTsKKwlpZiAocmV0ICE9IDApCisJCXJldHVybiByZXQ7CisKKwlkcm1fYXRv bWljX3NldF9mYl9mb3JfcGxhbmUocGxhbmVfc3RhdGUsIE5VTEwpOworCXBsYW5lX3N0YXRlLT5j cnRjX3ggPSAwOworCXBsYW5lX3N0YXRlLT5jcnRjX3kgPSAwOworCXBsYW5lX3N0YXRlLT5jcnRj X3cgPSAwOworCXBsYW5lX3N0YXRlLT5jcnRjX2ggPSAwOworCXBsYW5lX3N0YXRlLT5zcmNfeCA9 IDA7CisJcGxhbmVfc3RhdGUtPnNyY195ID0gMDsKKwlwbGFuZV9zdGF0ZS0+c3JjX3cgPSAwOwor CXBsYW5lX3N0YXRlLT5zcmNfaCA9IDA7CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0wo X19kcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3BsYW5lKTsKKworc3RhdGljIGludCB1cGRhdGVf b3V0cHV0X3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCSAgICAgICBz dHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHNl dC0+Y3J0Yy0+ZGV2OworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKKwlzdHJ1Y3QgZHJtX2NydGNf c3RhdGUgKm5ld19jcnRjX3N0YXRlOworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7 CisJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm5ld19jb25uX3N0YXRlOworCWludCByZXQs IGk7CisKKwlyZXQgPSBkcm1fbW9kZXNldF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rp b25fbXV0ZXgsCisJCQkgICAgICAgc3RhdGUtPmFjcXVpcmVfY3R4KTsKKwlpZiAocmV0KQorCQly ZXR1cm4gcmV0OworCisJLyogRmlyc3QgZGlzYWJsZSBhbGwgY29ubmVjdG9ycyBvbiB0aGUgdGFy Z2V0IGNydGMuICovCisJcmV0ID0gZHJtX2F0b21pY19hZGRfYWZmZWN0ZWRfY29ubmVjdG9ycyhz dGF0ZSwgc2V0LT5jcnRjKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJZm9yX2VhY2hf bmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZShzdGF0ZSwgY29ubmVjdG9yLCBuZXdfY29ubl9zdGF0ZSwg aSkgeworCQlpZiAobmV3X2Nvbm5fc3RhdGUtPmNydGMgPT0gc2V0LT5jcnRjKSB7CisJCQlyZXQg PSBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9jb25uZWN0b3IobmV3X2Nvbm5fc3RhdGUsCisJCQkJ CQkJCU5VTEwpOworCQkJaWYgKHJldCkKKwkJCQlyZXR1cm4gcmV0OworCisJCQkvKiBNYWtlIHN1 cmUgbGVnYWN5IHNldENydGMgYWx3YXlzIHJlLXRyYWlucyAqLworCQkJbmV3X2Nvbm5fc3RhdGUt Pmxpbmtfc3RhdHVzID0gRFJNX0xJTktfU1RBVFVTX0dPT0Q7CisJCX0KKwl9CisKKwkvKiBUaGVu IHNldCBhbGwgY29ubmVjdG9ycyBmcm9tIHNldC0+Y29ubmVjdG9ycyBvbiB0aGUgdGFyZ2V0IGNy dGMgKi8KKwlmb3IgKGkgPSAwOyBpIDwgc2V0LT5udW1fY29ubmVjdG9yczsgaSsrKSB7CisJCW5l d19jb25uX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY29ubmVjdG9yX3N0YXRlKHN0YXRlLAorCQkJ CQkJCQlzZXQtPmNvbm5lY3RvcnNbaV0pOworCQlpZiAoSVNfRVJSKG5ld19jb25uX3N0YXRlKSkK KwkJCXJldHVybiBQVFJfRVJSKG5ld19jb25uX3N0YXRlKTsKKworCQlyZXQgPSBkcm1fYXRvbWlj X3NldF9jcnRjX2Zvcl9jb25uZWN0b3IobmV3X2Nvbm5fc3RhdGUsCisJCQkJCQkJc2V0LT5jcnRj KTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJZm9yX2VhY2hfbmV3X2NydGNf aW5fc3RhdGUoc3RhdGUsIGNydGMsIG5ld19jcnRjX3N0YXRlLCBpKSB7CisJCS8qCisJCSAqIERv bid0IHVwZGF0ZSAtPmVuYWJsZSBmb3IgdGhlIENSVEMgaW4gdGhlIHNldF9jb25maWcgcmVxdWVz dCwKKwkJICogc2luY2UgYSBtaXNtYXRjaCB3b3VsZCBpbmRpY2F0ZSBhIGJ1ZyBpbiB0aGUgdXBw ZXIgbGF5ZXJzLgorCQkgKiBUaGUgYWN0dWFsIG1vZGVzZXQgY29kZSBsYXRlciBvbiB3aWxsIGNh dGNoIGFueQorCQkgKiBpbmNvbnNpc3RlbmNpZXMgaGVyZS4KKwkJICovCisJCWlmIChjcnRjID09 IHNldC0+Y3J0YykKKwkJCWNvbnRpbnVlOworCisJCWlmICghbmV3X2NydGNfc3RhdGUtPmNvbm5l Y3Rvcl9tYXNrKSB7CisJCQlyZXQgPSBkcm1fYXRvbWljX3NldF9tb2RlX3Byb3BfZm9yX2NydGMo bmV3X2NydGNfc3RhdGUsCisJCQkJCQkJCU5VTEwpOworCQkJaWYgKHJldCA8IDApCisJCQkJcmV0 dXJuIHJldDsKKworCQkJbmV3X2NydGNfc3RhdGUtPmFjdGl2ZSA9IGZhbHNlOworCQl9CisJfQor CisJcmV0dXJuIDA7Cit9CisKKy8qIGp1c3QgdXNlZCBmcm9tIGRybS1jbGllbnQgYW5kIGF0b21p Yy1oZWxwZXI6ICovCitpbnQgX19kcm1fYXRvbWljX2hlbHBlcl9zZXRfY29uZmlnKHN0cnVjdCBk cm1fbW9kZV9zZXQgKnNldCwKKwkJCQkgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUp Cit7CisJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOworCXN0cnVjdCBkcm1fcGxh bmVfc3RhdGUgKnByaW1hcnlfc3RhdGU7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gc2V0LT5j cnRjOworCWludCBoZGlzcGxheSwgdmRpc3BsYXk7CisJaW50IHJldDsKKworCWNydGNfc3RhdGUg PSBkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKKwlpZiAoSVNfRVJSKGNy dGNfc3RhdGUpKQorCQlyZXR1cm4gUFRSX0VSUihjcnRjX3N0YXRlKTsKKworCXByaW1hcnlfc3Rh dGUgPSBkcm1fYXRvbWljX2dldF9wbGFuZV9zdGF0ZShzdGF0ZSwgY3J0Yy0+cHJpbWFyeSk7CisJ aWYgKElTX0VSUihwcmltYXJ5X3N0YXRlKSkKKwkJcmV0dXJuIFBUUl9FUlIocHJpbWFyeV9zdGF0 ZSk7CisKKwlpZiAoIXNldC0+bW9kZSkgeworCQlXQVJOX09OKHNldC0+ZmIpOworCQlXQVJOX09O KHNldC0+bnVtX2Nvbm5lY3RvcnMpOworCisJCXJldCA9IGRybV9hdG9taWNfc2V0X21vZGVfZm9y X2NydGMoY3J0Y19zdGF0ZSwgTlVMTCk7CisJCWlmIChyZXQgIT0gMCkKKwkJCXJldHVybiByZXQ7 CisKKwkJY3J0Y19zdGF0ZS0+YWN0aXZlID0gZmFsc2U7CisKKwkJcmV0ID0gZHJtX2F0b21pY19z ZXRfY3J0Y19mb3JfcGxhbmUocHJpbWFyeV9zdGF0ZSwgTlVMTCk7CisJCWlmIChyZXQgIT0gMCkK KwkJCXJldHVybiByZXQ7CisKKwkJZHJtX2F0b21pY19zZXRfZmJfZm9yX3BsYW5lKHByaW1hcnlf c3RhdGUsIE5VTEwpOworCisJCWdvdG8gY29tbWl0OworCX0KKworCVdBUk5fT04oIXNldC0+ZmIp OworCVdBUk5fT04oIXNldC0+bnVtX2Nvbm5lY3RvcnMpOworCisJcmV0ID0gZHJtX2F0b21pY19z ZXRfbW9kZV9mb3JfY3J0YyhjcnRjX3N0YXRlLCBzZXQtPm1vZGUpOworCWlmIChyZXQgIT0gMCkK KwkJcmV0dXJuIHJldDsKKworCWNydGNfc3RhdGUtPmFjdGl2ZSA9IHRydWU7CisKKwlyZXQgPSBk cm1fYXRvbWljX3NldF9jcnRjX2Zvcl9wbGFuZShwcmltYXJ5X3N0YXRlLCBjcnRjKTsKKwlpZiAo cmV0ICE9IDApCisJCXJldHVybiByZXQ7CisKKwlkcm1fbW9kZV9nZXRfaHZfdGltaW5nKHNldC0+ bW9kZSwgJmhkaXNwbGF5LCAmdmRpc3BsYXkpOworCisJZHJtX2F0b21pY19zZXRfZmJfZm9yX3Bs YW5lKHByaW1hcnlfc3RhdGUsIHNldC0+ZmIpOworCXByaW1hcnlfc3RhdGUtPmNydGNfeCA9IDA7 CisJcHJpbWFyeV9zdGF0ZS0+Y3J0Y195ID0gMDsKKwlwcmltYXJ5X3N0YXRlLT5jcnRjX3cgPSBo ZGlzcGxheTsKKwlwcmltYXJ5X3N0YXRlLT5jcnRjX2ggPSB2ZGlzcGxheTsKKwlwcmltYXJ5X3N0 YXRlLT5zcmNfeCA9IHNldC0+eCA8PCAxNjsKKwlwcmltYXJ5X3N0YXRlLT5zcmNfeSA9IHNldC0+ eSA8PCAxNjsKKwlpZiAoZHJtX3JvdGF0aW9uXzkwX29yXzI3MChwcmltYXJ5X3N0YXRlLT5yb3Rh dGlvbikpIHsKKwkJcHJpbWFyeV9zdGF0ZS0+c3JjX3cgPSB2ZGlzcGxheSA8PCAxNjsKKwkJcHJp bWFyeV9zdGF0ZS0+c3JjX2ggPSBoZGlzcGxheSA8PCAxNjsKKwl9IGVsc2UgeworCQlwcmltYXJ5 X3N0YXRlLT5zcmNfdyA9IGhkaXNwbGF5IDw8IDE2OworCQlwcmltYXJ5X3N0YXRlLT5zcmNfaCA9 IHZkaXNwbGF5IDw8IDE2OworCX0KKworY29tbWl0OgorCXJldCA9IHVwZGF0ZV9vdXRwdXRfc3Rh dGUoc3RhdGUsIHNldCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiAwOwor fQorRVhQT1JUX1NZTUJPTChfX2RybV9hdG9taWNfaGVscGVyX3NldF9jb25maWcpOworCiB2b2lk IGRybV9hdG9taWNfcHJpbnRfc3RhdGUoY29uc3Qgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlKQogewogCXN0cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX2luZm9fcHJpbnRlcihzdGF0ZS0+ ZGV2LT5kZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVy LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwppbmRleCAxNmQ3NGI4YTA5 ZmUuLmRiMTljOTRhYjVmYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNf aGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKQEAgLTI4 MzEsOTUgKzI4MzEsNiBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9wbGFuZShzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJf ZGlzYWJsZV9wbGFuZSk7CiAKLS8qIGp1c3QgdXNlZCBmcm9tIGZiLWhlbHBlciBhbmQgYXRvbWlj LWhlbHBlcjogKi8KLWludCBfX2RybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfcGxhbmUoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCi0JCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRl KQotewotCWludCByZXQ7Ci0KLQlyZXQgPSBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9wbGFuZShw bGFuZV9zdGF0ZSwgTlVMTCk7Ci0JaWYgKHJldCAhPSAwKQotCQlyZXR1cm4gcmV0OwotCi0JZHJt X2F0b21pY19zZXRfZmJfZm9yX3BsYW5lKHBsYW5lX3N0YXRlLCBOVUxMKTsKLQlwbGFuZV9zdGF0 ZS0+Y3J0Y194ID0gMDsKLQlwbGFuZV9zdGF0ZS0+Y3J0Y195ID0gMDsKLQlwbGFuZV9zdGF0ZS0+ Y3J0Y193ID0gMDsKLQlwbGFuZV9zdGF0ZS0+Y3J0Y19oID0gMDsKLQlwbGFuZV9zdGF0ZS0+c3Jj X3ggPSAwOwotCXBsYW5lX3N0YXRlLT5zcmNfeSA9IDA7Ci0JcGxhbmVfc3RhdGUtPnNyY193ID0g MDsKLQlwbGFuZV9zdGF0ZS0+c3JjX2ggPSAwOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBp bnQgdXBkYXRlX291dHB1dF9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCi0J CQkgICAgICAgc3RydWN0IGRybV9tb2RlX3NldCAqc2V0KQotewotCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBzZXQtPmNydGMtPmRldjsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Ci0Jc3RydWN0 IGRybV9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZTsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yOwotCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfY29ubl9zdGF0ZTsK LQlpbnQgcmV0LCBpOwotCi0JcmV0ID0gZHJtX21vZGVzZXRfbG9jaygmZGV2LT5tb2RlX2NvbmZp Zy5jb25uZWN0aW9uX211dGV4LAotCQkJICAgICAgIHN0YXRlLT5hY3F1aXJlX2N0eCk7Ci0JaWYg KHJldCkKLQkJcmV0dXJuIHJldDsKLQotCS8qIEZpcnN0IGRpc2FibGUgYWxsIGNvbm5lY3RvcnMg b24gdGhlIHRhcmdldCBjcnRjLiAqLwotCXJldCA9IGRybV9hdG9taWNfYWRkX2FmZmVjdGVkX2Nv bm5lY3RvcnMoc3RhdGUsIHNldC0+Y3J0Yyk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQot CWZvcl9lYWNoX25ld19jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5lY3RvciwgbmV3X2Nv bm5fc3RhdGUsIGkpIHsKLQkJaWYgKG5ld19jb25uX3N0YXRlLT5jcnRjID09IHNldC0+Y3J0Yykg ewotCQkJcmV0ID0gZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfY29ubmVjdG9yKG5ld19jb25uX3N0 YXRlLAotCQkJCQkJCQlOVUxMKTsKLQkJCWlmIChyZXQpCi0JCQkJcmV0dXJuIHJldDsKLQotCQkJ LyogTWFrZSBzdXJlIGxlZ2FjeSBzZXRDcnRjIGFsd2F5cyByZS10cmFpbnMgKi8KLQkJCW5ld19j b25uX3N0YXRlLT5saW5rX3N0YXR1cyA9IERSTV9MSU5LX1NUQVRVU19HT09EOwotCQl9Ci0JfQot Ci0JLyogVGhlbiBzZXQgYWxsIGNvbm5lY3RvcnMgZnJvbSBzZXQtPmNvbm5lY3RvcnMgb24gdGhl IHRhcmdldCBjcnRjICovCi0JZm9yIChpID0gMDsgaSA8IHNldC0+bnVtX2Nvbm5lY3RvcnM7IGkr KykgewotCQluZXdfY29ubl9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X2Nvbm5lY3Rvcl9zdGF0ZShz dGF0ZSwKLQkJCQkJCQkgICAgc2V0LT5jb25uZWN0b3JzW2ldKTsKLQkJaWYgKElTX0VSUihuZXdf Y29ubl9zdGF0ZSkpCi0JCQlyZXR1cm4gUFRSX0VSUihuZXdfY29ubl9zdGF0ZSk7Ci0KLQkJcmV0 ID0gZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfY29ubmVjdG9yKG5ld19jb25uX3N0YXRlLAotCQkJ CQkJCXNldC0+Y3J0Yyk7Ci0JCWlmIChyZXQpCi0JCQlyZXR1cm4gcmV0OwotCX0KLQotCWZvcl9l YWNoX25ld19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBuZXdfY3J0Y19zdGF0ZSwgaSkgewot CQkvKiBEb24ndCB1cGRhdGUgLT5lbmFibGUgZm9yIHRoZSBDUlRDIGluIHRoZSBzZXRfY29uZmln IHJlcXVlc3QsCi0JCSAqIHNpbmNlIGEgbWlzbWF0Y2ggd291bGQgaW5kaWNhdGUgYSBidWcgaW4g dGhlIHVwcGVyIGxheWVycy4KLQkJICogVGhlIGFjdHVhbCBtb2Rlc2V0IGNvZGUgbGF0ZXIgb24g d2lsbCBjYXRjaCBhbnkKLQkJICogaW5jb25zaXN0ZW5jaWVzIGhlcmUuICovCi0JCWlmIChjcnRj ID09IHNldC0+Y3J0YykKLQkJCWNvbnRpbnVlOwotCi0JCWlmICghbmV3X2NydGNfc3RhdGUtPmNv bm5lY3Rvcl9tYXNrKSB7Ci0JCQlyZXQgPSBkcm1fYXRvbWljX3NldF9tb2RlX3Byb3BfZm9yX2Ny dGMobmV3X2NydGNfc3RhdGUsCi0JCQkJCQkJCU5VTEwpOwotCQkJaWYgKHJldCA8IDApCi0JCQkJ cmV0dXJuIHJldDsKLQotCQkJbmV3X2NydGNfc3RhdGUtPmFjdGl2ZSA9IGZhbHNlOwotCQl9Ci0J fQotCi0JcmV0dXJuIDA7Ci19Ci0KIC8qKgogICogZHJtX2F0b21pY19oZWxwZXJfc2V0X2NvbmZp ZyAtIHNldCBhIG5ldyBjb25maWcgZnJvbSB1c2Vyc3BhY2UKICAqIEBzZXQ6IG1vZGUgc2V0IGNv bmZpZ3VyYXRpb24KQEAgLTI5NjQsODEgKzI4NzUsNiBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJf c2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQsCiB9CiBFWFBPUlRfU1lNQk9MKGRy bV9hdG9taWNfaGVscGVyX3NldF9jb25maWcpOwogCi0vKiBqdXN0IHVzZWQgZnJvbSBmYi1oZWxw ZXIgYW5kIGF0b21pYy1oZWxwZXI6ICovCi1pbnQgX19kcm1fYXRvbWljX2hlbHBlcl9zZXRfY29u ZmlnKHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCwKLQkJc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KnN0YXRlKQotewotCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKLQlzdHJ1Y3Qg ZHJtX3BsYW5lX3N0YXRlICpwcmltYXJ5X3N0YXRlOwotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9 IHNldC0+Y3J0YzsKLQlpbnQgaGRpc3BsYXksIHZkaXNwbGF5OwotCWludCByZXQ7Ci0KLQljcnRj X3N0YXRlID0gZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Ci0JaWYgKElT X0VSUihjcnRjX3N0YXRlKSkKLQkJcmV0dXJuIFBUUl9FUlIoY3J0Y19zdGF0ZSk7Ci0KLQlwcmlt YXJ5X3N0YXRlID0gZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUoc3RhdGUsIGNydGMtPnByaW1h cnkpOwotCWlmIChJU19FUlIocHJpbWFyeV9zdGF0ZSkpCi0JCXJldHVybiBQVFJfRVJSKHByaW1h cnlfc3RhdGUpOwotCi0JaWYgKCFzZXQtPm1vZGUpIHsKLQkJV0FSTl9PTihzZXQtPmZiKTsKLQkJ V0FSTl9PTihzZXQtPm51bV9jb25uZWN0b3JzKTsKLQotCQlyZXQgPSBkcm1fYXRvbWljX3NldF9t b2RlX2Zvcl9jcnRjKGNydGNfc3RhdGUsIE5VTEwpOwotCQlpZiAocmV0ICE9IDApCi0JCQlyZXR1 cm4gcmV0OwotCi0JCWNydGNfc3RhdGUtPmFjdGl2ZSA9IGZhbHNlOwotCi0JCXJldCA9IGRybV9h dG9taWNfc2V0X2NydGNfZm9yX3BsYW5lKHByaW1hcnlfc3RhdGUsIE5VTEwpOwotCQlpZiAocmV0 ICE9IDApCi0JCQlyZXR1cm4gcmV0OwotCi0JCWRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFuZShw cmltYXJ5X3N0YXRlLCBOVUxMKTsKLQotCQlnb3RvIGNvbW1pdDsKLQl9Ci0KLQlXQVJOX09OKCFz ZXQtPmZiKTsKLQlXQVJOX09OKCFzZXQtPm51bV9jb25uZWN0b3JzKTsKLQotCXJldCA9IGRybV9h dG9taWNfc2V0X21vZGVfZm9yX2NydGMoY3J0Y19zdGF0ZSwgc2V0LT5tb2RlKTsKLQlpZiAocmV0 ICE9IDApCi0JCXJldHVybiByZXQ7Ci0KLQljcnRjX3N0YXRlLT5hY3RpdmUgPSB0cnVlOwotCi0J cmV0ID0gZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfcGxhbmUocHJpbWFyeV9zdGF0ZSwgY3J0Yyk7 Ci0JaWYgKHJldCAhPSAwKQotCQlyZXR1cm4gcmV0OwotCi0JZHJtX21vZGVfZ2V0X2h2X3RpbWlu ZyhzZXQtPm1vZGUsICZoZGlzcGxheSwgJnZkaXNwbGF5KTsKLQotCWRybV9hdG9taWNfc2V0X2Zi X2Zvcl9wbGFuZShwcmltYXJ5X3N0YXRlLCBzZXQtPmZiKTsKLQlwcmltYXJ5X3N0YXRlLT5jcnRj X3ggPSAwOwotCXByaW1hcnlfc3RhdGUtPmNydGNfeSA9IDA7Ci0JcHJpbWFyeV9zdGF0ZS0+Y3J0 Y193ID0gaGRpc3BsYXk7Ci0JcHJpbWFyeV9zdGF0ZS0+Y3J0Y19oID0gdmRpc3BsYXk7Ci0JcHJp bWFyeV9zdGF0ZS0+c3JjX3ggPSBzZXQtPnggPDwgMTY7Ci0JcHJpbWFyeV9zdGF0ZS0+c3JjX3kg PSBzZXQtPnkgPDwgMTY7Ci0JaWYgKGRybV9yb3RhdGlvbl85MF9vcl8yNzAocHJpbWFyeV9zdGF0 ZS0+cm90YXRpb24pKSB7Ci0JCXByaW1hcnlfc3RhdGUtPnNyY193ID0gdmRpc3BsYXkgPDwgMTY7 Ci0JCXByaW1hcnlfc3RhdGUtPnNyY19oID0gaGRpc3BsYXkgPDwgMTY7Ci0JfSBlbHNlIHsKLQkJ cHJpbWFyeV9zdGF0ZS0+c3JjX3cgPSBoZGlzcGxheSA8PCAxNjsKLQkJcHJpbWFyeV9zdGF0ZS0+ c3JjX2ggPSB2ZGlzcGxheSA8PCAxNjsKLQl9Ci0KLWNvbW1pdDoKLQlyZXQgPSB1cGRhdGVfb3V0 cHV0X3N0YXRlKHN0YXRlLCBzZXQpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlyZXR1 cm4gMDsKLX0KLQogLyoqCiAgKiBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX2FsbCAtIGRpc2Fi bGUgYWxsIGN1cnJlbnRseSBhY3RpdmUgb3V0cHV0cwogICogQGRldjogRFJNIGRldmljZQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2ludGVybmFsLmggYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2NydGNfaW50ZXJuYWwuaAppbmRleCAyMTZmMmE5ZWUzZDQuLjIyYTYzYTU0NGVj NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2ludGVybmFsLmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2ludGVybmFsLmgKQEAgLTIwNyw2ICsyMDcsMTEgQEAg c3RydWN0IGRybV9taW5vcjsKIGludCBkcm1fYXRvbWljX2RlYnVnZnNfaW5pdChzdHJ1Y3QgZHJt X21pbm9yICptaW5vcik7CiAjZW5kaWYKIAoraW50IF9fZHJtX2F0b21pY19oZWxwZXJfZGlzYWJs ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCQkgICAgICBzdHJ1Y3QgZHJtX3Bs YW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7CitpbnQgX19kcm1fYXRvbWljX2hlbHBlcl9zZXRfY29u ZmlnKHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCwKKwkJCQkgICBzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUpOworCiB2b2lkIGRybV9hdG9taWNfcHJpbnRfc3RhdGUoY29uc3Qgc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKIAogLyogZHJtX2F0b21pY191YXBpLmMgKi8KZGlm ZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmggYi9pbmNsdWRlL2RybS9k cm1fYXRvbWljX2hlbHBlci5oCmluZGV4IDU4MjE0YmUzYmYzZC4uYmY0ZTA3MTQxZDgxIDEwMDY0 NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oCisrKyBiL2luY2x1ZGUvZHJt L2RybV9hdG9taWNfaGVscGVyLmgKQEAgLTExNywxMiArMTE3LDggQEAgaW50IGRybV9hdG9taWNf aGVscGVyX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJCQkgICBzdHJ1 Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCk7CiBpbnQgZHJtX2F0b21pY19oZWxwZXJf ZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJCQkgICAgc3RydWN0IGRy bV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpOwotaW50IF9fZHJtX2F0b21pY19oZWxwZXJfZGlz YWJsZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKLQkJc3RydWN0IGRybV9wbGFuZV9z dGF0ZSAqcGxhbmVfc3RhdGUpOwogaW50IGRybV9hdG9taWNfaGVscGVyX3NldF9jb25maWcoc3Ry dWN0IGRybV9tb2RlX3NldCAqc2V0LAogCQkJCSBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9j dHggKmN0eCk7Ci1pbnQgX19kcm1fYXRvbWljX2hlbHBlcl9zZXRfY29uZmlnKHN0cnVjdCBkcm1f bW9kZV9zZXQgKnNldCwKLQkJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKIAogaW50 IGRybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfYWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ CQkJICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCk7Ci0tIAoyLjIwLjEKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==