From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [PATCH v5 01/11] drm/atomic: Move __drm_atomic_helper_disable_plane/set_config() Date: Mon, 6 May 2019 20:01:29 +0200 Message-ID: <20190506180139.6913-2-noralf@tronnes.org> References: <20190506180139.6913-1-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190506180139.6913-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: Maxime Ripard , Daniel Vetter , 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 dHRlckBmZndsbC5jaD4KUmV2aWV3ZWQtYnk6IE1heGltZSBSaXBhcmQgPG1heGltZS5yaXBhcmRA Ym9vdGxpbi5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyAgICAgICAgfCAx NjggKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWNfaGVscGVyLmMgfCAxNjQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dw dS9kcm0vZHJtX2NydGNfaW50ZXJuYWwuaCB8ICAgNSArCiBpbmNsdWRlL2RybS9kcm1fYXRvbWlj X2hlbHBlci5oICAgICB8ICAgNCAtCiA0IGZpbGVzIGNoYW5nZWQsIDE3MyBpbnNlcnRpb25zKCsp LCAxNjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKaW5kZXggNWViNDAxMzBmYWZiLi5j M2E5ZmZiZjIzMTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwpAQCAtMTEzMCw2ICsxMTMwLDE3NCBAQCBp bnQgZHJtX2F0b21pY19ub25ibG9ja2luZ19jb21taXQoc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KnN0YXRlKQogfQogRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX25vbmJsb2NraW5nX2NvbW1pdCk7 CiAKKy8qIGp1c3QgdXNlZCBmcm9tIGRybS1jbGllbnQgYW5kIGF0b21pYy1oZWxwZXI6ICovCitp bnQgX19kcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lLAorCQkJCSAgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQorewor CWludCByZXQ7CisKKwlyZXQgPSBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9wbGFuZShwbGFuZV9z dGF0ZSwgTlVMTCk7CisJaWYgKHJldCAhPSAwKQorCQlyZXR1cm4gcmV0OworCisJZHJtX2F0b21p Y19zZXRfZmJfZm9yX3BsYW5lKHBsYW5lX3N0YXRlLCBOVUxMKTsKKwlwbGFuZV9zdGF0ZS0+Y3J0 Y194ID0gMDsKKwlwbGFuZV9zdGF0ZS0+Y3J0Y195ID0gMDsKKwlwbGFuZV9zdGF0ZS0+Y3J0Y193 ID0gMDsKKwlwbGFuZV9zdGF0ZS0+Y3J0Y19oID0gMDsKKwlwbGFuZV9zdGF0ZS0+c3JjX3ggPSAw OworCXBsYW5lX3N0YXRlLT5zcmNfeSA9IDA7CisJcGxhbmVfc3RhdGUtPnNyY193ID0gMDsKKwlw bGFuZV9zdGF0ZS0+c3JjX2ggPSAwOworCisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MKF9f ZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9wbGFuZSk7CisKK3N0YXRpYyBpbnQgdXBkYXRlX291 dHB1dF9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkgICAgICAgc3Ry dWN0IGRybV9tb2RlX3NldCAqc2V0KQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzZXQt PmNydGMtPmRldjsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CisJc3RydWN0IGRybV9jcnRjX3N0 YXRlICpuZXdfY3J0Y19zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwor CXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfY29ubl9zdGF0ZTsKKwlpbnQgcmV0LCBp OworCisJcmV0ID0gZHJtX21vZGVzZXRfbG9jaygmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9u X211dGV4LAorCQkJICAgICAgIHN0YXRlLT5hY3F1aXJlX2N0eCk7CisJaWYgKHJldCkKKwkJcmV0 dXJuIHJldDsKKworCS8qIEZpcnN0IGRpc2FibGUgYWxsIGNvbm5lY3RvcnMgb24gdGhlIHRhcmdl dCBjcnRjLiAqLworCXJldCA9IGRybV9hdG9taWNfYWRkX2FmZmVjdGVkX2Nvbm5lY3RvcnMoc3Rh dGUsIHNldC0+Y3J0Yyk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWZvcl9lYWNoX25l d19jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5lY3RvciwgbmV3X2Nvbm5fc3RhdGUsIGkp IHsKKwkJaWYgKG5ld19jb25uX3N0YXRlLT5jcnRjID09IHNldC0+Y3J0YykgeworCQkJcmV0ID0g ZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfY29ubmVjdG9yKG5ld19jb25uX3N0YXRlLAorCQkJCQkJ CQlOVUxMKTsKKwkJCWlmIChyZXQpCisJCQkJcmV0dXJuIHJldDsKKworCQkJLyogTWFrZSBzdXJl IGxlZ2FjeSBzZXRDcnRjIGFsd2F5cyByZS10cmFpbnMgKi8KKwkJCW5ld19jb25uX3N0YXRlLT5s aW5rX3N0YXR1cyA9IERSTV9MSU5LX1NUQVRVU19HT09EOworCQl9CisJfQorCisJLyogVGhlbiBz ZXQgYWxsIGNvbm5lY3RvcnMgZnJvbSBzZXQtPmNvbm5lY3RvcnMgb24gdGhlIHRhcmdldCBjcnRj ICovCisJZm9yIChpID0gMDsgaSA8IHNldC0+bnVtX2Nvbm5lY3RvcnM7IGkrKykgeworCQluZXdf Y29ubl9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwKKwkJCQkJ CQkJc2V0LT5jb25uZWN0b3JzW2ldKTsKKwkJaWYgKElTX0VSUihuZXdfY29ubl9zdGF0ZSkpCisJ CQlyZXR1cm4gUFRSX0VSUihuZXdfY29ubl9zdGF0ZSk7CisKKwkJcmV0ID0gZHJtX2F0b21pY19z ZXRfY3J0Y19mb3JfY29ubmVjdG9yKG5ld19jb25uX3N0YXRlLAorCQkJCQkJCXNldC0+Y3J0Yyk7 CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KKworCWZvcl9lYWNoX25ld19jcnRjX2lu X3N0YXRlKHN0YXRlLCBjcnRjLCBuZXdfY3J0Y19zdGF0ZSwgaSkgeworCQkvKgorCQkgKiBEb24n dCB1cGRhdGUgLT5lbmFibGUgZm9yIHRoZSBDUlRDIGluIHRoZSBzZXRfY29uZmlnIHJlcXVlc3Qs CisJCSAqIHNpbmNlIGEgbWlzbWF0Y2ggd291bGQgaW5kaWNhdGUgYSBidWcgaW4gdGhlIHVwcGVy IGxheWVycy4KKwkJICogVGhlIGFjdHVhbCBtb2Rlc2V0IGNvZGUgbGF0ZXIgb24gd2lsbCBjYXRj aCBhbnkKKwkJICogaW5jb25zaXN0ZW5jaWVzIGhlcmUuCisJCSAqLworCQlpZiAoY3J0YyA9PSBz ZXQtPmNydGMpCisJCQljb250aW51ZTsKKworCQlpZiAoIW5ld19jcnRjX3N0YXRlLT5jb25uZWN0 b3JfbWFzaykgeworCQkJcmV0ID0gZHJtX2F0b21pY19zZXRfbW9kZV9wcm9wX2Zvcl9jcnRjKG5l d19jcnRjX3N0YXRlLAorCQkJCQkJCQlOVUxMKTsKKwkJCWlmIChyZXQgPCAwKQorCQkJCXJldHVy biByZXQ7CisKKwkJCW5ld19jcnRjX3N0YXRlLT5hY3RpdmUgPSBmYWxzZTsKKwkJfQorCX0KKwor CXJldHVybiAwOworfQorCisvKiBqdXN0IHVzZWQgZnJvbSBkcm0tY2xpZW50IGFuZCBhdG9taWMt aGVscGVyOiAqLworaW50IF9fZHJtX2F0b21pY19oZWxwZXJfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJt X21vZGVfc2V0ICpzZXQsCisJCQkJICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQor eworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKKwlzdHJ1Y3QgZHJtX3BsYW5l X3N0YXRlICpwcmltYXJ5X3N0YXRlOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHNldC0+Y3J0 YzsKKwlpbnQgaGRpc3BsYXksIHZkaXNwbGF5OworCWludCByZXQ7CisKKwljcnRjX3N0YXRlID0g ZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7CisJaWYgKElTX0VSUihjcnRj X3N0YXRlKSkKKwkJcmV0dXJuIFBUUl9FUlIoY3J0Y19zdGF0ZSk7CisKKwlwcmltYXJ5X3N0YXRl ID0gZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUoc3RhdGUsIGNydGMtPnByaW1hcnkpOworCWlm IChJU19FUlIocHJpbWFyeV9zdGF0ZSkpCisJCXJldHVybiBQVFJfRVJSKHByaW1hcnlfc3RhdGUp OworCisJaWYgKCFzZXQtPm1vZGUpIHsKKwkJV0FSTl9PTihzZXQtPmZiKTsKKwkJV0FSTl9PTihz ZXQtPm51bV9jb25uZWN0b3JzKTsKKworCQlyZXQgPSBkcm1fYXRvbWljX3NldF9tb2RlX2Zvcl9j cnRjKGNydGNfc3RhdGUsIE5VTEwpOworCQlpZiAocmV0ICE9IDApCisJCQlyZXR1cm4gcmV0Owor CisJCWNydGNfc3RhdGUtPmFjdGl2ZSA9IGZhbHNlOworCisJCXJldCA9IGRybV9hdG9taWNfc2V0 X2NydGNfZm9yX3BsYW5lKHByaW1hcnlfc3RhdGUsIE5VTEwpOworCQlpZiAocmV0ICE9IDApCisJ CQlyZXR1cm4gcmV0OworCisJCWRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFuZShwcmltYXJ5X3N0 YXRlLCBOVUxMKTsKKworCQlnb3RvIGNvbW1pdDsKKwl9CisKKwlXQVJOX09OKCFzZXQtPmZiKTsK KwlXQVJOX09OKCFzZXQtPm51bV9jb25uZWN0b3JzKTsKKworCXJldCA9IGRybV9hdG9taWNfc2V0 X21vZGVfZm9yX2NydGMoY3J0Y19zdGF0ZSwgc2V0LT5tb2RlKTsKKwlpZiAocmV0ICE9IDApCisJ CXJldHVybiByZXQ7CisKKwljcnRjX3N0YXRlLT5hY3RpdmUgPSB0cnVlOworCisJcmV0ID0gZHJt X2F0b21pY19zZXRfY3J0Y19mb3JfcGxhbmUocHJpbWFyeV9zdGF0ZSwgY3J0Yyk7CisJaWYgKHJl dCAhPSAwKQorCQlyZXR1cm4gcmV0OworCisJZHJtX21vZGVfZ2V0X2h2X3RpbWluZyhzZXQtPm1v ZGUsICZoZGlzcGxheSwgJnZkaXNwbGF5KTsKKworCWRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFu ZShwcmltYXJ5X3N0YXRlLCBzZXQtPmZiKTsKKwlwcmltYXJ5X3N0YXRlLT5jcnRjX3ggPSAwOwor CXByaW1hcnlfc3RhdGUtPmNydGNfeSA9IDA7CisJcHJpbWFyeV9zdGF0ZS0+Y3J0Y193ID0gaGRp c3BsYXk7CisJcHJpbWFyeV9zdGF0ZS0+Y3J0Y19oID0gdmRpc3BsYXk7CisJcHJpbWFyeV9zdGF0 ZS0+c3JjX3ggPSBzZXQtPnggPDwgMTY7CisJcHJpbWFyeV9zdGF0ZS0+c3JjX3kgPSBzZXQtPnkg PDwgMTY7CisJaWYgKGRybV9yb3RhdGlvbl85MF9vcl8yNzAocHJpbWFyeV9zdGF0ZS0+cm90YXRp b24pKSB7CisJCXByaW1hcnlfc3RhdGUtPnNyY193ID0gdmRpc3BsYXkgPDwgMTY7CisJCXByaW1h cnlfc3RhdGUtPnNyY19oID0gaGRpc3BsYXkgPDwgMTY7CisJfSBlbHNlIHsKKwkJcHJpbWFyeV9z dGF0ZS0+c3JjX3cgPSBoZGlzcGxheSA8PCAxNjsKKwkJcHJpbWFyeV9zdGF0ZS0+c3JjX2ggPSB2 ZGlzcGxheSA8PCAxNjsKKwl9CisKK2NvbW1pdDoKKwlyZXQgPSB1cGRhdGVfb3V0cHV0X3N0YXRl KHN0YXRlLCBzZXQpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXR1cm4gMDsKK30K K0VYUE9SVF9TWU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9zZXRfY29uZmlnKTsKKwogdm9pZCBk cm1fYXRvbWljX3ByaW50X3N0YXRlKGNvbnN0IHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0 ZSkKIHsKIAlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9pbmZvX3ByaW50ZXIoc3RhdGUtPmRl di0+ZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5j IGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKaW5kZXggNTUzNDE1ZmU4ZWRl Li44YmU0NDM2Y2ZjZjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hl bHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCkBAIC0yODQy LDk1ICsyODQyLDYgQEAgaW50IGRybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfcGxhbmUoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCiB9CiBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2Rp c2FibGVfcGxhbmUpOwogCi0vKiBqdXN0IHVzZWQgZnJvbSBmYi1oZWxwZXIgYW5kIGF0b21pYy1o ZWxwZXI6ICovCi1pbnQgX19kcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3BsYW5lKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAotCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkK LXsKLQlpbnQgcmV0OwotCi0JcmV0ID0gZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfcGxhbmUocGxh bmVfc3RhdGUsIE5VTEwpOwotCWlmIChyZXQgIT0gMCkKLQkJcmV0dXJuIHJldDsKLQotCWRybV9h dG9taWNfc2V0X2ZiX2Zvcl9wbGFuZShwbGFuZV9zdGF0ZSwgTlVMTCk7Ci0JcGxhbmVfc3RhdGUt PmNydGNfeCA9IDA7Ci0JcGxhbmVfc3RhdGUtPmNydGNfeSA9IDA7Ci0JcGxhbmVfc3RhdGUtPmNy dGNfdyA9IDA7Ci0JcGxhbmVfc3RhdGUtPmNydGNfaCA9IDA7Ci0JcGxhbmVfc3RhdGUtPnNyY194 ID0gMDsKLQlwbGFuZV9zdGF0ZS0+c3JjX3kgPSAwOwotCXBsYW5lX3N0YXRlLT5zcmNfdyA9IDA7 Ci0JcGxhbmVfc3RhdGUtPnNyY19oID0gMDsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50 IHVwZGF0ZV9vdXRwdXRfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAotCQkJ ICAgICAgIHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCkKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gc2V0LT5jcnRjLT5kZXY7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjOwotCXN0cnVjdCBk cm1fY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvcjsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X2Nvbm5fc3RhdGU7Ci0J aW50IHJldCwgaTsKLQotCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmRldi0+bW9kZV9jb25maWcu Y29ubmVjdGlvbl9tdXRleCwKLQkJCSAgICAgICBzdGF0ZS0+YWNxdWlyZV9jdHgpOwotCWlmIChy ZXQpCi0JCXJldHVybiByZXQ7Ci0KLQkvKiBGaXJzdCBkaXNhYmxlIGFsbCBjb25uZWN0b3JzIG9u IHRoZSB0YXJnZXQgY3J0Yy4gKi8KLQlyZXQgPSBkcm1fYXRvbWljX2FkZF9hZmZlY3RlZF9jb25u ZWN0b3JzKHN0YXRlLCBzZXQtPmNydGMpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlm b3JfZWFjaF9uZXdfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IsIG5ld19jb25u X3N0YXRlLCBpKSB7Ci0JCWlmIChuZXdfY29ubl9zdGF0ZS0+Y3J0YyA9PSBzZXQtPmNydGMpIHsK LQkJCXJldCA9IGRybV9hdG9taWNfc2V0X2NydGNfZm9yX2Nvbm5lY3RvcihuZXdfY29ubl9zdGF0 ZSwKLQkJCQkJCQkJTlVMTCk7Ci0JCQlpZiAocmV0KQotCQkJCXJldHVybiByZXQ7Ci0KLQkJCS8q IE1ha2Ugc3VyZSBsZWdhY3kgc2V0Q3J0YyBhbHdheXMgcmUtdHJhaW5zICovCi0JCQluZXdfY29u bl9zdGF0ZS0+bGlua19zdGF0dXMgPSBEUk1fTElOS19TVEFUVVNfR09PRDsKLQkJfQotCX0KLQot CS8qIFRoZW4gc2V0IGFsbCBjb25uZWN0b3JzIGZyb20gc2V0LT5jb25uZWN0b3JzIG9uIHRoZSB0 YXJnZXQgY3J0YyAqLwotCWZvciAoaSA9IDA7IGkgPCBzZXQtPm51bV9jb25uZWN0b3JzOyBpKysp IHsKLQkJbmV3X2Nvbm5fc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jb25uZWN0b3Jfc3RhdGUoc3Rh dGUsCi0JCQkJCQkJICAgIHNldC0+Y29ubmVjdG9yc1tpXSk7Ci0JCWlmIChJU19FUlIobmV3X2Nv bm5fc3RhdGUpKQotCQkJcmV0dXJuIFBUUl9FUlIobmV3X2Nvbm5fc3RhdGUpOwotCi0JCXJldCA9 IGRybV9hdG9taWNfc2V0X2NydGNfZm9yX2Nvbm5lY3RvcihuZXdfY29ubl9zdGF0ZSwKLQkJCQkJ CQlzZXQtPmNydGMpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlmb3JfZWFj aF9uZXdfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgbmV3X2NydGNfc3RhdGUsIGkpIHsKLQkJ LyogRG9uJ3QgdXBkYXRlIC0+ZW5hYmxlIGZvciB0aGUgQ1JUQyBpbiB0aGUgc2V0X2NvbmZpZyBy ZXF1ZXN0LAotCQkgKiBzaW5jZSBhIG1pc21hdGNoIHdvdWxkIGluZGljYXRlIGEgYnVnIGluIHRo ZSB1cHBlciBsYXllcnMuCi0JCSAqIFRoZSBhY3R1YWwgbW9kZXNldCBjb2RlIGxhdGVyIG9uIHdp bGwgY2F0Y2ggYW55Ci0JCSAqIGluY29uc2lzdGVuY2llcyBoZXJlLiAqLwotCQlpZiAoY3J0YyA9 PSBzZXQtPmNydGMpCi0JCQljb250aW51ZTsKLQotCQlpZiAoIW5ld19jcnRjX3N0YXRlLT5jb25u ZWN0b3JfbWFzaykgewotCQkJcmV0ID0gZHJtX2F0b21pY19zZXRfbW9kZV9wcm9wX2Zvcl9jcnRj KG5ld19jcnRjX3N0YXRlLAotCQkJCQkJCQlOVUxMKTsKLQkJCWlmIChyZXQgPCAwKQotCQkJCXJl dHVybiByZXQ7Ci0KLQkJCW5ld19jcnRjX3N0YXRlLT5hY3RpdmUgPSBmYWxzZTsKLQkJfQotCX0K LQotCXJldHVybiAwOwotfQotCiAvKioKICAqIGRybV9hdG9taWNfaGVscGVyX3NldF9jb25maWcg LSBzZXQgYSBuZXcgY29uZmlnIGZyb20gdXNlcnNwYWNlCiAgKiBAc2V0OiBtb2RlIHNldCBjb25m aWd1cmF0aW9uCkBAIC0yOTc1LDgxICsyODg2LDYgQEAgaW50IGRybV9hdG9taWNfaGVscGVyX3Nl dF9jb25maWcoc3RydWN0IGRybV9tb2RlX3NldCAqc2V0LAogfQogRVhQT1JUX1NZTUJPTChkcm1f YXRvbWljX2hlbHBlcl9zZXRfY29uZmlnKTsKIAotLyoganVzdCB1c2VkIGZyb20gZmItaGVscGVy IGFuZCBhdG9taWMtaGVscGVyOiAqLwotaW50IF9fZHJtX2F0b21pY19oZWxwZXJfc2V0X2NvbmZp ZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQsCi0JCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSkKLXsKLQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Ci0Jc3RydWN0IGRy bV9wbGFuZV9zdGF0ZSAqcHJpbWFyeV9zdGF0ZTsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBz ZXQtPmNydGM7Ci0JaW50IGhkaXNwbGF5LCB2ZGlzcGxheTsKLQlpbnQgcmV0OwotCi0JY3J0Y19z dGF0ZSA9IGRybV9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwotCWlmIChJU19F UlIoY3J0Y19zdGF0ZSkpCi0JCXJldHVybiBQVFJfRVJSKGNydGNfc3RhdGUpOwotCi0JcHJpbWFy eV9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKHN0YXRlLCBjcnRjLT5wcmltYXJ5 KTsKLQlpZiAoSVNfRVJSKHByaW1hcnlfc3RhdGUpKQotCQlyZXR1cm4gUFRSX0VSUihwcmltYXJ5 X3N0YXRlKTsKLQotCWlmICghc2V0LT5tb2RlKSB7Ci0JCVdBUk5fT04oc2V0LT5mYik7Ci0JCVdB Uk5fT04oc2V0LT5udW1fY29ubmVjdG9ycyk7Ci0KLQkJcmV0ID0gZHJtX2F0b21pY19zZXRfbW9k ZV9mb3JfY3J0YyhjcnRjX3N0YXRlLCBOVUxMKTsKLQkJaWYgKHJldCAhPSAwKQotCQkJcmV0dXJu IHJldDsKLQotCQljcnRjX3N0YXRlLT5hY3RpdmUgPSBmYWxzZTsKLQotCQlyZXQgPSBkcm1fYXRv bWljX3NldF9jcnRjX2Zvcl9wbGFuZShwcmltYXJ5X3N0YXRlLCBOVUxMKTsKLQkJaWYgKHJldCAh PSAwKQotCQkJcmV0dXJuIHJldDsKLQotCQlkcm1fYXRvbWljX3NldF9mYl9mb3JfcGxhbmUocHJp bWFyeV9zdGF0ZSwgTlVMTCk7Ci0KLQkJZ290byBjb21taXQ7Ci0JfQotCi0JV0FSTl9PTighc2V0 LT5mYik7Ci0JV0FSTl9PTighc2V0LT5udW1fY29ubmVjdG9ycyk7Ci0KLQlyZXQgPSBkcm1fYXRv bWljX3NldF9tb2RlX2Zvcl9jcnRjKGNydGNfc3RhdGUsIHNldC0+bW9kZSk7Ci0JaWYgKHJldCAh PSAwKQotCQlyZXR1cm4gcmV0OwotCi0JY3J0Y19zdGF0ZS0+YWN0aXZlID0gdHJ1ZTsKLQotCXJl dCA9IGRybV9hdG9taWNfc2V0X2NydGNfZm9yX3BsYW5lKHByaW1hcnlfc3RhdGUsIGNydGMpOwot CWlmIChyZXQgIT0gMCkKLQkJcmV0dXJuIHJldDsKLQotCWRybV9tb2RlX2dldF9odl90aW1pbmco c2V0LT5tb2RlLCAmaGRpc3BsYXksICZ2ZGlzcGxheSk7Ci0KLQlkcm1fYXRvbWljX3NldF9mYl9m b3JfcGxhbmUocHJpbWFyeV9zdGF0ZSwgc2V0LT5mYik7Ci0JcHJpbWFyeV9zdGF0ZS0+Y3J0Y194 ID0gMDsKLQlwcmltYXJ5X3N0YXRlLT5jcnRjX3kgPSAwOwotCXByaW1hcnlfc3RhdGUtPmNydGNf dyA9IGhkaXNwbGF5OwotCXByaW1hcnlfc3RhdGUtPmNydGNfaCA9IHZkaXNwbGF5OwotCXByaW1h cnlfc3RhdGUtPnNyY194ID0gc2V0LT54IDw8IDE2OwotCXByaW1hcnlfc3RhdGUtPnNyY195ID0g c2V0LT55IDw8IDE2OwotCWlmIChkcm1fcm90YXRpb25fOTBfb3JfMjcwKHByaW1hcnlfc3RhdGUt PnJvdGF0aW9uKSkgewotCQlwcmltYXJ5X3N0YXRlLT5zcmNfdyA9IHZkaXNwbGF5IDw8IDE2Owot CQlwcmltYXJ5X3N0YXRlLT5zcmNfaCA9IGhkaXNwbGF5IDw8IDE2OwotCX0gZWxzZSB7Ci0JCXBy aW1hcnlfc3RhdGUtPnNyY193ID0gaGRpc3BsYXkgPDwgMTY7Ci0JCXByaW1hcnlfc3RhdGUtPnNy Y19oID0gdmRpc3BsYXkgPDwgMTY7Ci0JfQotCi1jb21taXQ6Ci0JcmV0ID0gdXBkYXRlX291dHB1 dF9zdGF0ZShzdGF0ZSwgc2V0KTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JcmV0dXJu IDA7Ci19Ci0KIC8qKgogICogZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9hbGwgLSBkaXNhYmxl IGFsbCBjdXJyZW50bHkgYWN0aXZlIG91dHB1dHMKICAqIEBkZXY6IERSTSBkZXZpY2UKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19pbnRlcm5hbC5oIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9jcnRjX2ludGVybmFsLmgKaW5kZXggMjE2ZjJhOWVlM2Q0Li4yMmE2M2E1NDRlYzcg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19pbnRlcm5hbC5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19pbnRlcm5hbC5oCkBAIC0yMDcsNiArMjA3LDExIEBAIHN0 cnVjdCBkcm1fbWlub3I7CiBpbnQgZHJtX2F0b21pY19kZWJ1Z2ZzX2luaXQoc3RydWN0IGRybV9t aW5vciAqbWlub3IpOwogI2VuZGlmCiAKK2ludCBfX2RybV9hdG9taWNfaGVscGVyX2Rpc2FibGVf cGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCQkJICAgICAgc3RydWN0IGRybV9wbGFu ZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOworaW50IF9fZHJtX2F0b21pY19oZWxwZXJfc2V0X2NvbmZp ZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQsCisJCQkJICAgc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlKTsKKwogdm9pZCBkcm1fYXRvbWljX3ByaW50X3N0YXRlKGNvbnN0IHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7CiAKIC8qIGRybV9hdG9taWNfdWFwaS5jICovCmRpZmYg LS1naXQgYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJt X2F0b21pY19oZWxwZXIuaAppbmRleCA1ODIxNGJlM2JmM2QuLmJmNGUwNzE0MWQ4MSAxMDA2NDQK LS0tIGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaAorKysgYi9pbmNsdWRlL2RybS9k cm1fYXRvbWljX2hlbHBlci5oCkBAIC0xMTcsMTIgKzExNyw4IEBAIGludCBkcm1fYXRvbWljX2hl bHBlcl91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkJICAgc3RydWN0 IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpOwogaW50IGRybV9hdG9taWNfaGVscGVyX2Rp c2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkJICAgIHN0cnVjdCBkcm1f bW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KTsKLWludCBfX2RybV9hdG9taWNfaGVscGVyX2Rpc2Fi bGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCi0JCXN0cnVjdCBkcm1fcGxhbmVfc3Rh dGUgKnBsYW5lX3N0YXRlKTsKIGludCBkcm1fYXRvbWljX2hlbHBlcl9zZXRfY29uZmlnKHN0cnVj dCBkcm1fbW9kZV9zZXQgKnNldCwKIAkJCQkgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4 ICpjdHgpOwotaW50IF9fZHJtX2F0b21pY19oZWxwZXJfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21v ZGVfc2V0ICpzZXQsCi0JCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7CiAKIGludCBk cm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX2FsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJ CSAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpOwotLSAKMi4yMC4xCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=