From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: [PATCH 6/9] drm/i915: add frontbuffer tracking to FBC Date: Mon, 9 Feb 2015 14:46:32 -0200 Message-ID: <1423500395-1787-7-git-send-email-przanoni@gmail.com> References: <1423500395-1787-1-git-send-email-przanoni@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qg0-f54.google.com (mail-qg0-f54.google.com [209.85.192.54]) by gabe.freedesktop.org (Postfix) with ESMTP id 6EC896E54F for ; Mon, 9 Feb 2015 08:47:37 -0800 (PST) Received: by mail-qg0-f54.google.com with SMTP id z60so21740736qgd.13 for ; Mon, 09 Feb 2015 08:47:37 -0800 (PST) In-Reply-To: <1423500395-1787-1-git-send-email-przanoni@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Paulo Zanoni , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org RnJvbTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+CgpLaWxsIHRoZSBi bHQvcmVuZGVyIHRyYWNraW5nIHdlIGN1cnJlbnRseSBoYXZlIGFuZCB1c2UgdGhlIGZyb250YnVm ZmVyCnRyYWNraW5nIGluZnJhc3RydWN0dXJlLgoKRG9uJ3QgZW5hYmxlIHRoaW5ncyBieSBkZWZh dWx0IHlldC4KCnYyOiAoUm9kcmlnbykgRml4IHNtYWxsIGNvbmZsaWN0IG9uIHJlYmFzZSBhbmQg dHlwbyBhdCBzdWJqZWN0Lgp2MzogKFBhdWxvKSBSZWJhc2Ugb24gUkVOREVSX0NTIGNoYW5nZS4K djQ6IChQYXVsbykgUmViYXNlLgoKUmV2aWV3ZWQtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52 aXZpQGludGVsLmNvbT4gKHYyKQpTaWduZWQtb2ZmLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28u dml2aUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5v bmlAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAg ICAgfCAgIDkgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgIHwg ICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYyAgICAgICAgIHwgMTA3ICsr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Zyb250YnVmZmVyLmMgfCAgMTQgKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5jICB8ICA0MSArLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuaCAgfCAgIDEgLQogNiBmaWxlcyBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCsp LCA5OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCBkNTc4MjExLi5k YzAwMmRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTc4Miw2ICs3ODIsNyBAQCBzdHJ1 Y3QgaTkxNV9mYmMgewogCXVuc2lnbmVkIGxvbmcgdW5jb21wcmVzc2VkX3NpemU7CiAJdW5zaWdu ZWQgdGhyZXNob2xkOwogCXVuc2lnbmVkIGludCBmYl9pZDsKKwl1bnNpZ25lZCBpbnQgcG9zc2li bGVfZnJhbWVidWZmZXJfYml0czsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKIAlpbnQgeTsK IApAQCAtNzk0LDE0ICs3OTUsNiBAQCBzdHJ1Y3QgaTkxNV9mYmMgewogCSAqIHBvc3NpYmxlLiAq LwogCWJvb2wgZW5hYmxlZDsKIAotCS8qIE9uIGdlbjggc29tZSByaW5ncyBjYW5ub250IHBlcmZv cm0gZmJjIGNsZWFuIG9wZXJhdGlvbiBzbyBmb3Igbm93Ci0JICogd2UgYXJlIGRvaW5nIHRoaXMg b24gU1cgd2l0aCBtbWlvLgotCSAqIFRoaXMgdmFyaWFibGUgd29ya3MgaW4gdGhlIG9wcG9zaXRl IGluZm9ybWF0aW9uIGRpcmVjdGlvbgotCSAqIG9mIHJpbmctPmZiY19kaXJ0eSB0ZWxsaW5nIHNv ZnR3YXJlIG9uIGZyb250YnVmZmVyIHRyYWNraW5nCi0JICogdG8gcGVyZm9ybSB0aGUgY2FjaGUg Y2xlYW4gb24gc3cgc2lkZS4KLQkgKi8KLQlib29sIG5lZWRfc3dfY2FjaGVfY2xlYW47Ci0KIAlz dHJ1Y3QgaW50ZWxfZmJjX3dvcmsgewogCQlzdHJ1Y3QgZGVsYXllZF93b3JrIHdvcms7CiAJCXN0 cnVjdCBkcm1fY3J0YyAqY3J0YzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggYTczZDA5 MS4uZWQ4NWRmOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTExMDEsNyArMTEwMSwx MSBAQCBib29sIGludGVsX2ZiY19lbmFibGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogdm9p ZCBpbnRlbF9mYmNfdXBkYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogdm9pZCBpbnRlbF9m YmNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBpbnRlbF9m YmNfZGlzYWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLXZvaWQgYmR3X2ZiY19zd19mbHVz aChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgdmFsdWUpOwordm9pZCBpbnRlbF9mYmNfaW52 YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkgIHVuc2lnbmVk IGludCBmcm9udGJ1ZmZlcl9iaXRzLAorCQkJICBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4pOwor dm9pZCBpbnRlbF9mYmNfZmx1c2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAor CQkgICAgIHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzLCBlbnVtIGZiX29wX29yaWdpbiBv cmlnaW4pOwogCiAvKiBpbnRlbF9oZG1pLmMgKi8KIHZvaWQgaW50ZWxfaGRtaV9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIGludCBoZG1pX3JlZywgZW51bSBwb3J0IHBvcnQpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9mYmMuYwppbmRleCA3MzQxZTg3Li4yNmM0ZjljIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9mYmMuYwpAQCAtMTc0LDI5ICsxNzQsMTAgQEAgc3RhdGljIGJvb2wgZzR4X2ZiY19lbmFi bGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJcmV0dXJuIEk5MTVfUkVBRChEUEZDX0NPTlRS T0wpICYgRFBGQ19DVExfRU47CiB9CiAKLXN0YXRpYyB2b2lkIHNuYl9mYmNfYmxpdF91cGRhdGUo c3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRpYyB2b2lkIGludGVsX2ZiY19udWtlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXUzMiBibHRfZWNvc2twZDsKLQotCS8q IE1ha2Ugc3VyZSBibGl0dGVyIG5vdGlmaWVzIEZCQyBvZiB3cml0ZXMgKi8KLQotCS8qIEJsaXR0 ZXIgaXMgcGFydCBvZiBNZWRpYSBwb3dlcndlbGwgb24gVkxWLiBObyBpbXBhY3Qgb2YKLQkgKiBo aXMgcGFyYW0gaW4gb3RoZXIgcGxhdGZvcm1zIGZvciBub3cgKi8KLQlpbnRlbF91bmNvcmVfZm9y Y2V3YWtlX2dldChkZXZfcHJpdiwgRk9SQ0VXQUtFX01FRElBKTsKLQotCWJsdF9lY29za3BkID0g STkxNV9SRUFEKEdFTjZfQkxJVFRFUl9FQ09TS1BEKTsKLQlibHRfZWNvc2twZCB8PSBHRU42X0JM SVRURVJfRkJDX05PVElGWSA8PAotCQlHRU42X0JMSVRURVJfTE9DS19TSElGVDsKLQlJOTE1X1dS SVRFKEdFTjZfQkxJVFRFUl9FQ09TS1BELCBibHRfZWNvc2twZCk7Ci0JYmx0X2Vjb3NrcGQgfD0g R0VONl9CTElUVEVSX0ZCQ19OT1RJRlk7Ci0JSTkxNV9XUklURShHRU42X0JMSVRURVJfRUNPU0tQ RCwgYmx0X2Vjb3NrcGQpOwotCWJsdF9lY29za3BkICY9IH4oR0VONl9CTElUVEVSX0ZCQ19OT1RJ RlkgPDwKLQkJCSBHRU42X0JMSVRURVJfTE9DS19TSElGVCk7Ci0JSTkxNV9XUklURShHRU42X0JM SVRURVJfRUNPU0tQRCwgYmx0X2Vjb3NrcGQpOwotCVBPU1RJTkdfUkVBRChHRU42X0JMSVRURVJf RUNPU0tQRCk7Ci0KLQlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1dChkZXZfcHJpdiwgRk9SQ0VX QUtFX01FRElBKTsKKwlJOTE1X1dSSVRFKE1TR19GQkNfUkVORF9TVEFURSwgRkJDX1JFTkRfTlVL RSk7CisJUE9TVElOR19SRUFEKE1TR19GQkNfUkVORF9TVEFURSk7CiB9CiAKIHN0YXRpYyB2b2lk IGlsa19mYmNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKQEAgLTIzOSw5ICsyMjAsMTAg QEAgc3RhdGljIHZvaWQgaWxrX2ZiY19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCQlJ OTE1X1dSSVRFKFNOQl9EUEZDX0NUTF9TQSwKIAkJCSAgIFNOQl9DUFVfRkVOQ0VfRU5BQkxFIHwg b2JqLT5mZW5jZV9yZWcpOwogCQlJOTE1X1dSSVRFKERQRkNfQ1BVX0ZFTkNFX09GRlNFVCwgY3J0 Yy0+eSk7Ci0JCXNuYl9mYmNfYmxpdF91cGRhdGUoZGV2KTsKIAl9CiAKKwlpbnRlbF9mYmNfbnVr ZShkZXZfcHJpdik7CisKIAlEUk1fREVCVUdfS01TKCJlbmFibGVkIGZiYyBvbiBwbGFuZSAlY1xu IiwgcGxhbmVfbmFtZShpbnRlbF9jcnRjLT5wbGFuZSkpOwogfQogCkBAIC0zMjAsNyArMzAyLDcg QEAgc3RhdGljIHZvaWQgZ2VuN19mYmNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAkJ ICAgU05CX0NQVV9GRU5DRV9FTkFCTEUgfCBvYmotPmZlbmNlX3JlZyk7CiAJSTkxNV9XUklURShE UEZDX0NQVV9GRU5DRV9PRkZTRVQsIGNydGMtPnkpOwogCi0Jc25iX2ZiY19ibGl0X3VwZGF0ZShk ZXYpOworCWludGVsX2ZiY19udWtlKGRldl9wcml2KTsKIAogCURSTV9ERUJVR19LTVMoImVuYWJs ZWQgZmJjIG9uIHBsYW5lICVjXG4iLCBwbGFuZV9uYW1lKGludGVsX2NydGMtPnBsYW5lKSk7CiB9 CkBAIC0zNDAsMTkgKzMyMiw2IEBAIGJvb2wgaW50ZWxfZmJjX2VuYWJsZWQoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIAlyZXR1cm4gZGV2X3ByaXYtPmZiYy5lbmFibGVkOwogfQogCi12b2lkIGJk d19mYmNfc3dfZmx1c2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIHZhbHVlKQotewotCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0KLQlp ZiAoIUlTX0dFTjgoZGV2KSkKLQkJcmV0dXJuOwotCi0JaWYgKCFpbnRlbF9mYmNfZW5hYmxlZChk ZXYpKQotCQlyZXR1cm47Ci0KLQlJOTE1X1dSSVRFKE1TR19GQkNfUkVORF9TVEFURSwgdmFsdWUp OwotfQotCiBzdGF0aWMgdm9pZCBpbnRlbF9mYmNfd29ya19mbihzdHJ1Y3Qgd29ya19zdHJ1Y3Qg Kl9fd29yaykKIHsKIAlzdHJ1Y3QgaW50ZWxfZmJjX3dvcmsgKndvcmsgPQpAQCAtNjU4LDYgKzYy Nyw2MyBAQCBvdXRfZGlzYWJsZToKIAlpOTE1X2dlbV9zdG9sZW5fY2xlYW51cF9jb21wcmVzc2lv bihkZXYpOwogfQogCit2b2lkIGludGVsX2ZiY19pbnZhbGlkYXRlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKKwkJCSAgdW5zaWduZWQgaW50IGZyb250YnVmZmVyX2JpdHMsCisJ CQkgIGVudW0gZmJfb3Bfb3JpZ2luIG9yaWdpbikKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gZGV2X3ByaXYtPmRldjsKKwl1bnNpZ25lZCBpbnQgZmJjX2JpdHM7CisKKwlpZiAob3JpZ2lu ID09IE9SSUdJTl9HVFQpCisJCXJldHVybjsKKworCWlmIChkZXZfcHJpdi0+ZmJjLmVuYWJsZWQp CisJCWZiY19iaXRzID0gSU5URUxfRlJPTlRCVUZGRVJfUFJJTUFSWShkZXZfcHJpdi0+ZmJjLmNy dGMtPnBpcGUpOworCWVsc2UgaWYgKGRldl9wcml2LT5mYmMuZmJjX3dvcmspCisJCWZiY19iaXRz ID0gSU5URUxfRlJPTlRCVUZGRVJfUFJJTUFSWSgKKwkJCXRvX2ludGVsX2NydGMoZGV2X3ByaXYt PmZiYy5mYmNfd29yay0+Y3J0YyktPnBpcGUpOworCWVsc2UKKwkJZmJjX2JpdHMgPSBkZXZfcHJp di0+ZmJjLnBvc3NpYmxlX2ZyYW1lYnVmZmVyX2JpdHM7CisKKwlpZiAoKGZiY19iaXRzICYgZnJv bnRidWZmZXJfYml0cykgPT0gMCkKKwkJcmV0dXJuOworCisJaW50ZWxfZmJjX2Rpc2FibGUoZGV2 KTsKK30KKwordm9pZCBpbnRlbF9mYmNfZmx1c2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAorCQkgICAgIHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzLAorCQkgICAgIGVu dW0gZmJfb3Bfb3JpZ2luIG9yaWdpbikKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2 X3ByaXYtPmRldjsKKwl1bnNpZ25lZCBpbnQgZmJjX2JpdHMgPSAwOworCWJvb2wgZmJjX2VuYWJs ZWQ7CisKKwlpZiAoZGV2X3ByaXYtPmZiYy5lbmFibGVkKQorCQlmYmNfYml0cyA9IElOVEVMX0ZS T05UQlVGRkVSX1BSSU1BUlkoZGV2X3ByaXYtPmZiYy5jcnRjLT5waXBlKTsKKwllbHNlCisJCWZi Y19iaXRzID0gZGV2X3ByaXYtPmZiYy5wb3NzaWJsZV9mcmFtZWJ1ZmZlcl9iaXRzOworCisJLyog VGhlc2UgYXJlIG5vdCB0aGUgcGxhbmVzIHlvdSBhcmUgbG9va2luZyBmb3IuICovCisJaWYgKChm cm9udGJ1ZmZlcl9iaXRzICYgZmJjX2JpdHMpID09IDApCisJCXJldHVybjsKKworCWZiY19lbmFi bGVkID0gaW50ZWxfZmJjX2VuYWJsZWQoZGV2KTsKKworCWlmICgoZGV2X3ByaXYtPmZiX3RyYWNr aW5nLmJ1c3lfYml0cyAmIGZyb250YnVmZmVyX2JpdHMgJgorCSAgICAgZmJjX2JpdHMpID09IDAp IHsKKwkJaWYgKGZiY19lbmFibGVkKSB7CisJCQlpZiAob3JpZ2luID09IE9SSUdJTl9DUyB8fCBv cmlnaW4gPT0gT1JJR0lOX0NQVSkKKwkJCQlpbnRlbF9mYmNfbnVrZShkZXZfcHJpdik7CisJCX0g ZWxzZSB7CisJCQlpbnRlbF9mYmNfdXBkYXRlKGRldik7CisJCX0KKwl9IGVsc2UgeworCQlpZiAo ZmJjX2VuYWJsZWQpCisJCQlpbnRlbF9mYmNfZGlzYWJsZShkZXYpOworCX0KK30KKwogLyoqCiAg KiBpbnRlbF9mYmNfaW5pdCAtIEluaXRpYWxpemUgRkJDCiAgKiBAZGV2X3ByaXY6IHRoZSBpOTE1 IGRldmljZQpAQCAtNjY2LDEyICs2OTIsMTkgQEAgb3V0X2Rpc2FibGU6CiAgKi8KIHZvaWQgaW50 ZWxfZmJjX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogeworCWVudW0g cGlwZSBwaXBlOworCiAJaWYgKCFIQVNfRkJDKGRldl9wcml2KSkgewogCQlkZXZfcHJpdi0+ZmJj LmVuYWJsZWQgPSBmYWxzZTsKIAkJZGV2X3ByaXYtPmZiYy5ub19mYmNfcmVhc29uID0gRkJDX1VO U1VQUE9SVEVEOwogCQlyZXR1cm47CiAJfQogCisJLyogVE9ETzogc29tZSBwbGF0Zm9ybXMgaGF2 ZSBGQkMgdGllZCB0byBhIHNwZWNpZmljIHBsYW5lISAqLworCWZvcl9lYWNoX3BpcGUoZGV2X3By aXYsIHBpcGUpCisJCWRldl9wcml2LT5mYmMucG9zc2libGVfZnJhbWVidWZmZXJfYml0cyB8PQor CQkJCUlOVEVMX0ZST05UQlVGRkVSX1BSSU1BUlkocGlwZSk7CisKIAlpZiAoSU5URUxfSU5GTyhk ZXZfcHJpdiktPmdlbiA+PSA3KSB7CiAJCWRldl9wcml2LT5kaXNwbGF5LmZiY19lbmFibGVkID0g aWxrX2ZiY19lbmFibGVkOwogCQlkZXZfcHJpdi0+ZGlzcGxheS5lbmFibGVfZmJjID0gZ2VuN19m YmNfZW5hYmxlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZnJvbnRi dWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zyb250YnVmZmVyLmMKaW5kZXgg MGE3NzM5ODEuLjJmYzA1OWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Zyb250YnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZnJvbnRidWZm ZXIuYwpAQCAtMTE4LDggKzExOCw2IEBAIHN0YXRpYyB2b2lkIGludGVsX21hcmtfZmJfYnVzeShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJY29udGludWU7CiAKIAkJaW50ZWxfaW5jcmVhc2Vf cGxsY2xvY2soZGV2LCBwaXBlKTsKLQkJaWYgKHJpbmcgJiYgaW50ZWxfZmJjX2VuYWJsZWQoZGV2 KSkKLQkJCXJpbmctPmZiY19kaXJ0eSA9IHRydWU7CiAJfQogfQogCkBAIC0xNjAsNiArMTU4LDcg QEAgdm9pZCBpbnRlbF9mYl9vYmpfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqLAogCiAJaW50ZWxfcHNyX2ludmFsaWRhdGUoZGV2LCBvYmotPmZyb250YnVmZmVyX2Jp dHMpOwogCWludGVsX2VkcF9kcnJzX2ludmFsaWRhdGUoZGV2LCBvYmotPmZyb250YnVmZmVyX2Jp dHMpOworCWludGVsX2ZiY19pbnZhbGlkYXRlKGRldl9wcml2LCBvYmotPmZyb250YnVmZmVyX2Jp dHMsIG9yaWdpbik7CiB9CiAKIC8qKgpAQCAtMTg5LDE2ICsxODgsNyBAQCB2b2lkIGludGVsX2Zy b250YnVmZmVyX2ZsdXNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAlpbnRlbF9lZHBfZHJy c19mbHVzaChkZXYsIGZyb250YnVmZmVyX2JpdHMpOwogCWludGVsX3Bzcl9mbHVzaChkZXYsIGZy b250YnVmZmVyX2JpdHMpOwotCi0JLyoKLQkgKiBGSVhNRTogVW5jb25kaXRpb25hbCBmYmMgZmx1 c2hpbmcgaGVyZSBpcyBhIHJhdGhlciBncm9zcyBoYWNrIGFuZAotCSAqIG5lZWRzIHRvIGJlIHJl d29ya2VkIGludG8gYSBwcm9wZXIgZnJvbnRidWZmZXIgdHJhY2tpbmcgc2NoZW1lIGxpa2UKLQkg KiBwc3IgZW1wbG95cy4KLQkgKi8KLQlpZiAoZGV2X3ByaXYtPmZiYy5uZWVkX3N3X2NhY2hlX2Ns ZWFuKSB7Ci0JCWRldl9wcml2LT5mYmMubmVlZF9zd19jYWNoZV9jbGVhbiA9IGZhbHNlOwotCQli ZHdfZmJjX3N3X2ZsdXNoKGRldiwgRkJDX1JFTkRfQ0FDSEVfQ0xFQU4pOwotCX0KKwlpbnRlbF9m YmNfZmx1c2goZGV2X3ByaXYsIGZyb250YnVmZmVyX2JpdHMsIG9yaWdpbik7CiB9CiAKIC8qKgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCmluZGV4IDU3M2I4MGYuLjQ4ZGQ4 YTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKQEAgLTMxNywyOSAr MzE3LDYgQEAgZ2VuN19yZW5kZXJfcmluZ19jc19zdGFsbF93YShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGdlbjdfcmluZ19mYmNfZmx1 c2goc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgdTMyIHZhbHVlKQotewotCWludCByZXQ7 Ci0KLQlpZiAoIXJpbmctPmZiY19kaXJ0eSkKLQkJcmV0dXJuIDA7Ci0KLQlyZXQgPSBpbnRlbF9y aW5nX2JlZ2luKHJpbmcsIDYpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0JLyogV2FGYmNO dWtlT24zREJsdDppdmIvaHN3ICovCi0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX0xPQURfUkVH SVNURVJfSU1NKDEpKTsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgTVNHX0ZCQ19SRU5EX1NUQVRF KTsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgdmFsdWUpOwotCWludGVsX3JpbmdfZW1pdChyaW5n LCBNSV9TVE9SRV9SRUdJU1RFUl9NRU0oMSkgfCBNSV9TUk1fTFJNX0dMT0JBTF9HVFQpOwotCWlu dGVsX3JpbmdfZW1pdChyaW5nLCBNU0dfRkJDX1JFTkRfU1RBVEUpOwotCWludGVsX3JpbmdfZW1p dChyaW5nLCByaW5nLT5zY3JhdGNoLmd0dF9vZmZzZXQgKyAyNTYpOwotCWludGVsX3JpbmdfYWR2 YW5jZShyaW5nKTsKLQotCXJpbmctPmZiY19kaXJ0eSA9IGZhbHNlOwotCXJldHVybiAwOwotfQot CiBzdGF0aWMgaW50CiBnZW43X3JlbmRlcl9yaW5nX2ZsdXNoKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcsCiAJCSAgICAgICB1MzIgaW52YWxpZGF0ZV9kb21haW5zLCB1MzIgZmx1c2hfZG9t YWlucykKQEAgLTM5OCw5ICszNzUsNiBAQCBnZW43X3JlbmRlcl9yaW5nX2ZsdXNoKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIDApOwogCWludGVs X3JpbmdfYWR2YW5jZShyaW5nKTsKIAotCWlmICghaW52YWxpZGF0ZV9kb21haW5zICYmIGZsdXNo X2RvbWFpbnMpCi0JCXJldHVybiBnZW43X3JpbmdfZmJjX2ZsdXNoKHJpbmcsIEZCQ19SRU5EX05V S0UpOwotCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTQ2Miw5ICs0MzYsNiBAQCBnZW44X3JlbmRlcl9y aW5nX2ZsdXNoKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJaWYgKHJldCkKIAkJcmV0 dXJuIHJldDsKIAotCWlmICghaW52YWxpZGF0ZV9kb21haW5zICYmIGZsdXNoX2RvbWFpbnMpCi0J CXJldHVybiBnZW43X3JpbmdfZmJjX2ZsdXNoKHJpbmcsIEZCQ19SRU5EX05VS0UpOwotCiAJcmV0 dXJuIDA7CiB9CiAKQEAgLTIzODIsNyArMjM1Myw2IEBAIHN0YXRpYyBpbnQgZ2VuNl9yaW5nX2Zs dXNoKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJCQkgICB1MzIgaW52YWxpZGF0ZSwg dTMyIGZsdXNoKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSByaW5nLT5kZXY7Ci0Jc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAl1aW50 MzJfdCBjbWQ7CiAJaW50IHJldDsKIApAQCAtMjM5MSw3ICsyMzYxLDcgQEAgc3RhdGljIGludCBn ZW42X3JpbmdfZmx1c2goc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKIAkJcmV0dXJuIHJl dDsKIAogCWNtZCA9IE1JX0ZMVVNIX0RXOwotCWlmIChJTlRFTF9JTkZPKHJpbmctPmRldiktPmdl biA+PSA4KQorCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA4KQogCQljbWQgKz0gMTsKIAkv KgogCSAqIEJzcGVjIHZvbCAxYy4zIC0gYmxpdHRlciBlbmdpbmUgY29tbWFuZCBzdHJlYW1lcjoK QEAgLTI0MDQsNyArMjM3NCw3IEBAIHN0YXRpYyBpbnQgZ2VuNl9yaW5nX2ZsdXNoKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJCQlNSV9GTFVTSF9EV19PUF9TVE9SRURXOwogCWludGVs X3JpbmdfZW1pdChyaW5nLCBjbWQpOwogCWludGVsX3JpbmdfZW1pdChyaW5nLCBJOTE1X0dFTV9I V1NfU0NSQVRDSF9BRERSIHwgTUlfRkxVU0hfRFdfVVNFX0dUVCk7Ci0JaWYgKElOVEVMX0lORk8o cmluZy0+ZGV2KS0+Z2VuID49IDgpIHsKKwlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOCkg ewogCQlpbnRlbF9yaW5nX2VtaXQocmluZywgMCk7IC8qIHVwcGVyIGFkZHIgKi8KIAkJaW50ZWxf cmluZ19lbWl0KHJpbmcsIDApOyAvKiB2YWx1ZSAqLwogCX0gZWxzZSAgewpAQCAtMjQxMywxMyAr MjM4Myw2IEBAIHN0YXRpYyBpbnQgZ2VuNl9yaW5nX2ZsdXNoKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcsCiAJfQogCWludGVsX3JpbmdfYWR2YW5jZShyaW5nKTsKIAotCWlmICghaW52YWxp ZGF0ZSAmJiBmbHVzaCkgewotCQlpZiAoSVNfR0VONyhkZXYpKQotCQkJcmV0dXJuIGdlbjdfcmlu Z19mYmNfZmx1c2gocmluZywgRkJDX1JFTkRfQ0FDSEVfQ0xFQU4pOwotCQllbHNlIGlmIChJU19C Uk9BRFdFTEwoZGV2KSkKLQkJCWRldl9wcml2LT5mYmMubmVlZF9zd19jYWNoZV9jbGVhbiA9IHRy dWU7Ci0JfQotCiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuaAppbmRleCA3MTRmM2ZkLi5mOGRjMGM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5oCkBAIC0yNjcsNyArMjY3LDYgQEAgc3RydWN0ICBpbnRlbF9lbmdpbmVf Y3MgewogCSAqLwogCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqb3V0c3RhbmRpbmdfbGF6 eV9yZXF1ZXN0OwogCWJvb2wgZ3B1X2NhY2hlc19kaXJ0eTsKLQlib29sIGZiY19kaXJ0eTsKIAog CXdhaXRfcXVldWVfaGVhZF90IGlycV9xdWV1ZTsKIAotLSAKMi4xLjQKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==