From: Paulo Zanoni Subject: [PATCH 08/11] drm/i915: add fronbuffer tracking to FBC Date: Mon, 8 Dec 2014 14:09:17 -0200 Message-ID: <1418054960-1403-9-git-send-email-przanoni@gmail.com> References: <1418054960-1403-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-qc0-f175.google.com (mail-qc0-f175.google.com [209.85.216.175]) by gabe.freedesktop.org (Postfix) with ESMTP id E47BE6E7AB for ; Mon, 8 Dec 2014 08:10:39 -0800 (PST) Received: by mail-qc0-f175.google.com with SMTP id b13so4156019qcw.34 for ; Mon, 08 Dec 2014 08:10:39 -0800 (PST) In-Reply-To: <1418054960-1403-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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+CgpLaWxsIHRoZSBi bHQvcmVuZGVyIHRyYWNraW5nIHdlIGN1cnJlbnRseSBoYXZlIGFuZCB1c2UgdGhlIGZyb250YnVm ZmVyCnRyYWNraW5nIGluZnJhc3RydWN0dXJlLgoKRG9uJ3QgZW5hYmxlIHRoaW5ncyBieSBkZWZh dWx0IHlldC4KClNpZ25lZC1vZmYtYnk6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50 ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgfCAg IDkgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgIHwgICA2ICst CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYyAgICAgICAgIHwgMTE5ICsrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zyb250 YnVmZmVyLmMgfCAgMTQgKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5jICB8ICA0MSArLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oICB8ICAgMSAtCiA2IGZpbGVzIGNoYW5nZWQsIDgwIGluc2VydGlvbnMoKyksIDExMCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCBlYTNjYzgxLi4yMjI4NWMy IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTY5Niw2ICs2OTYsNyBAQCBzdHJ1Y3QgaTkx NV9mYmMgewogCXVuc2lnbmVkIGxvbmcgc2l6ZTsKIAl1bnNpZ25lZCB0aHJlc2hvbGQ7CiAJdW5z aWduZWQgaW50IGZiX2lkOworCXVuc2lnbmVkIGludCBwb3NzaWJsZV9mcmFtZWJ1ZmZlcl9iaXRz OwogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwogCWludCB5OwogCkBAIC03MDgsMTQgKzcwOSw2 IEBAIHN0cnVjdCBpOTE1X2ZiYyB7CiAJICogcG9zc2libGUuICovCiAJYm9vbCBlbmFibGVkOwog Ci0JLyogT24gZ2VuOCBzb21lIHJpbmdzIGNhbm5vbnQgcGVyZm9ybSBmYmMgY2xlYW4gb3BlcmF0 aW9uIHNvIGZvciBub3cKLQkgKiB3ZSBhcmUgZG9pbmcgdGhpcyBvbiBTVyB3aXRoIG1taW8uCi0J ICogVGhpcyB2YXJpYWJsZSB3b3JrcyBpbiB0aGUgb3Bwb3NpdGUgaW5mb3JtYXRpb24gZGlyZWN0 aW9uCi0JICogb2YgcmluZy0+ZmJjX2RpcnR5IHRlbGxpbmcgc29mdHdhcmUgb24gZnJvbnRidWZm ZXIgdHJhY2tpbmcKLQkgKiB0byBwZXJmb3JtIHRoZSBjYWNoZSBjbGVhbiBvbiBzdyBzaWRlLgot CSAqLwotCWJvb2wgbmVlZF9zd19jYWNoZV9jbGVhbjsKLQogCXN0cnVjdCBpbnRlbF9mYmNfd29y ayB7CiAJCXN0cnVjdCBkZWxheWVkX3dvcmsgd29yazsKIAkJc3RydWN0IGRybV9jcnRjICpjcnRj OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCA2MzNmYjlhLi4zYTFjM2Q4MiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTEwNzEsNyArMTA3MSwxMSBAQCBib29sIGludGVsX2Zi Y19lbmFibGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogdm9pZCBpbnRlbF9mYmNfdXBkYXRl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogdm9pZCBpbnRlbF9mYmNfaW5pdChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBpbnRlbF9mYmNfZGlzYWJsZShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KTsKLXZvaWQgYmR3X2ZiY19zd19mbHVzaChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB1MzIgdmFsdWUpOwordm9pZCBpbnRlbF9mYmNfaW52YWxpZGF0ZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkgIHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9i aXRzLAorCQkJICBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4pOwordm9pZCBpbnRlbF9mYmNfZmx1 c2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkgICAgIHVuc2lnbmVkIGlu dCBmcm9udGJ1ZmZlcl9iaXRzLCBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4pOwogCiAvKiBpbnRl bF9oZG1pLmMgKi8KIHZvaWQgaW50ZWxfaGRtaV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IGludCBoZG1pX3JlZywgZW51bSBwb3J0IHBvcnQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZmJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwpp bmRleCA4OGQwMGQzLi4wM2JhNDNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9mYmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwpAQCAtMTc4 LDI5ICsxNzgsMTAgQEAgc3RhdGljIGJvb2wgZzR4X2ZiY19lbmFibGVkKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCiAJcmV0dXJuIEk5MTVfUkVBRChEUEZDX0NPTlRST0wpICYgRFBGQ19DVExfRU47 CiB9CiAKLXN0YXRpYyB2b2lkIHNuYl9mYmNfYmxpdF91cGRhdGUoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKK3N0YXRpYyB2b2lkIGludGVsX2ZiY19udWtlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwotCXUzMiBibHRfZWNvc2twZDsKLQotCS8qIE1ha2Ugc3VyZSBibGl0dGVy IG5vdGlmaWVzIEZCQyBvZiB3cml0ZXMgKi8KLQotCS8qIEJsaXR0ZXIgaXMgcGFydCBvZiBNZWRp YSBwb3dlcndlbGwgb24gVkxWLiBObyBpbXBhY3Qgb2YKLQkgKiBoaXMgcGFyYW0gaW4gb3RoZXIg cGxhdGZvcm1zIGZvciBub3cgKi8KLQlnZW42X2d0X2ZvcmNlX3dha2VfZ2V0KGRldl9wcml2LCBG T1JDRVdBS0VfTUVESUEpOwotCi0JYmx0X2Vjb3NrcGQgPSBJOTE1X1JFQUQoR0VONl9CTElUVEVS X0VDT1NLUEQpOwotCWJsdF9lY29za3BkIHw9IEdFTjZfQkxJVFRFUl9GQkNfTk9USUZZIDw8Ci0J CUdFTjZfQkxJVFRFUl9MT0NLX1NISUZUOwotCUk5MTVfV1JJVEUoR0VONl9CTElUVEVSX0VDT1NL UEQsIGJsdF9lY29za3BkKTsKLQlibHRfZWNvc2twZCB8PSBHRU42X0JMSVRURVJfRkJDX05PVElG WTsKLQlJOTE1X1dSSVRFKEdFTjZfQkxJVFRFUl9FQ09TS1BELCBibHRfZWNvc2twZCk7Ci0JYmx0 X2Vjb3NrcGQgJj0gfihHRU42X0JMSVRURVJfRkJDX05PVElGWSA8PAotCQkJIEdFTjZfQkxJVFRF Ul9MT0NLX1NISUZUKTsKLQlJOTE1X1dSSVRFKEdFTjZfQkxJVFRFUl9FQ09TS1BELCBibHRfZWNv c2twZCk7Ci0JUE9TVElOR19SRUFEKEdFTjZfQkxJVFRFUl9FQ09TS1BEKTsKLQotCWdlbjZfZ3Rf Zm9yY2Vfd2FrZV9wdXQoZGV2X3ByaXYsIEZPUkNFV0FLRV9NRURJQSk7CisJSTkxNV9XUklURShN U0dfRkJDX1JFTkRfU1RBVEUsIEZCQ19SRU5EX05VS0UpOworCVBPU1RJTkdfUkVBRChNU0dfRkJD X1JFTkRfU1RBVEUpOwogfQogCiBzdGF0aWMgdm9pZCBpbGtfZmJjX2VuYWJsZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMpCkBAIC0yNDMsOSArMjI0LDEwIEBAIHN0YXRpYyB2b2lkIGlsa19mYmNfZW5h YmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAkJSTkxNV9XUklURShTTkJfRFBGQ19DVExfU0Es CiAJCQkgICBTTkJfQ1BVX0ZFTkNFX0VOQUJMRSB8IG9iai0+ZmVuY2VfcmVnKTsKIAkJSTkxNV9X UklURShEUEZDX0NQVV9GRU5DRV9PRkZTRVQsIGNydGMtPnkpOwotCQlzbmJfZmJjX2JsaXRfdXBk YXRlKGRldik7CiAJfQogCisJaW50ZWxfZmJjX251a2UoZGV2X3ByaXYpOworCiAJRFJNX0RFQlVH X0tNUygiZW5hYmxlZCBmYmMgb24gcGxhbmUgJWNcbiIsIHBsYW5lX25hbWUoaW50ZWxfY3J0Yy0+ cGxhbmUpKTsKIH0KIApAQCAtMzI0LDcgKzMwNiw3IEBAIHN0YXRpYyB2b2lkIGdlbjdfZmJjX2Vu YWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJCSAgIFNOQl9DUFVfRkVOQ0VfRU5BQkxFIHwg b2JqLT5mZW5jZV9yZWcpOwogCUk5MTVfV1JJVEUoRFBGQ19DUFVfRkVOQ0VfT0ZGU0VULCBjcnRj LT55KTsKIAotCXNuYl9mYmNfYmxpdF91cGRhdGUoZGV2KTsKKwlpbnRlbF9mYmNfbnVrZShkZXZf cHJpdik7CiAKIAlEUk1fREVCVUdfS01TKCJlbmFibGVkIGZiYyBvbiBwbGFuZSAlY1xuIiwgcGxh bmVfbmFtZShpbnRlbF9jcnRjLT5wbGFuZSkpOwogfQpAQCAtMzQyLDMxICszMjQsNiBAQCBib29s IGludGVsX2ZiY19lbmFibGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJcmV0dXJuIGRldl9w cml2LT5mYmMuZW5hYmxlZDsKIH0KIAotLyoqCi0gKiBiZHdfZmJjX3N3X2ZsdXNoIC0gRkJDIFNv ZnR3YXJlIEZsdXNoIGZvciBCcm9hZHdlbGwuCi0gKiBAZGV2OiB0aGUgZHJtX2RldmljZQotICog QHZhbHVlOiBWYWx1ZSB0byBiZSBzZXQgb24gTVNHX0ZCQ19SRU5EX1NUQVRFLiBQb3NzaWJsZSB2 YWx1ZXMgYXJlCi0gKiAgICAgICAgIEZCQ19SRU5EX05VS0UgYW5kIEZCQ19SRU5EX0NBQ0hFX0NM RUFOLgotICoKLSAqIFRoaXMgZnVuY3Rpb24gaXMgbmVlZGVkIG9uIEJyb2Fkd2VsbCB0byBwZXJm b3JtIE51a2Ugb3IgQ2FjaGUgY2xlYW4gb24KLSAqIHNvZnR3YXJlIHNpZGUgb3ZlciBNTUlPLgot ICogT24gQnJvYWR3ZWxsLCBkdWUgYSBoYXJkd2FyZSBidWcsIE1TR19GQkNfUkVORF9TVEFURSBz dGF5IGluIGEgZm9yYmlkZGVuCi0gKiBhZGRyZXNzIHRoYXQgaGFzIGEgaHVnZSByaXNrIG9mIGNh dXNpbmcgR1BVIEhhbmdzIGlmIHNldCB3aXRoIExSSSBvbiBzb21lCi0gKiBjb21tYW5kIHN0cmVh bWVycy4KLSAqLwotdm9pZCBiZHdfZmJjX3N3X2ZsdXNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHUzMiB2YWx1ZSkKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwotCi0JaWYgKCFJU19HRU44KGRldikpCi0JCXJldHVybjsKLQotCWlmICgh aW50ZWxfZmJjX2VuYWJsZWQoZGV2KSkKLQkJcmV0dXJuOwotCi0JSTkxNV9XUklURShNU0dfRkJD X1JFTkRfU1RBVEUsIHZhbHVlKTsKLX0KLQogc3RhdGljIHZvaWQgaW50ZWxfZmJjX3dvcmtfZm4o c3RydWN0IHdvcmtfc3RydWN0ICpfX3dvcmspCiB7CiAJc3RydWN0IGludGVsX2ZiY193b3JrICp3 b3JrID0KQEAgLTY3Miw2ICs2MjksNjMgQEAgb3V0X2Rpc2FibGU6CiAJaTkxNV9nZW1fc3RvbGVu X2NsZWFudXBfY29tcHJlc3Npb24oZGV2KTsKIH0KIAordm9pZCBpbnRlbF9mYmNfaW52YWxpZGF0 ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkgIHVuc2lnbmVkIGludCBm cm9udGJ1ZmZlcl9iaXRzLAorCQkJICBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4pCit7CisJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7CisJdW5zaWduZWQgaW50IGZiY19i aXRzOworCisJaWYgKG9yaWdpbiA9PSBPUklHSU5fR1RUKQorCQlyZXR1cm47CisKKwlpZiAoZGV2 X3ByaXYtPmZiYy5lbmFibGVkKQorCQlmYmNfYml0cyA9IElOVEVMX0ZST05UQlVGRkVSX1BSSU1B UlkoZGV2X3ByaXYtPmZiYy5jcnRjLT5waXBlKTsKKwllbHNlIGlmIChkZXZfcHJpdi0+ZmJjLmZi Y193b3JrKQorCQlmYmNfYml0cyA9IElOVEVMX0ZST05UQlVGRkVSX1BSSU1BUlkoCisJCQl0b19p bnRlbF9jcnRjKGRldl9wcml2LT5mYmMuZmJjX3dvcmstPmNydGMpLT5waXBlKTsKKwllbHNlCisJ CWZiY19iaXRzID0gZGV2X3ByaXYtPmZiYy5wb3NzaWJsZV9mcmFtZWJ1ZmZlcl9iaXRzOworCisJ aWYgKChmYmNfYml0cyAmIGZyb250YnVmZmVyX2JpdHMpID09IDApCisJCXJldHVybjsKKworCWlu dGVsX2ZiY19kaXNhYmxlKGRldik7Cit9CisKK3ZvaWQgaW50ZWxfZmJjX2ZsdXNoKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJICAgICB1bnNpZ25lZCBpbnQgZnJvbnRidWZm ZXJfYml0cywKKwkJICAgICBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4pCit7CisJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7CisJdW5zaWduZWQgaW50IGZiY19iaXRzID0g MDsKKwlib29sIGZiY19lbmFibGVkOworCisJaWYgKGRldl9wcml2LT5mYmMuZW5hYmxlZCkKKwkJ ZmJjX2JpdHMgPSBJTlRFTF9GUk9OVEJVRkZFUl9QUklNQVJZKGRldl9wcml2LT5mYmMuY3J0Yy0+ cGlwZSk7CisJZWxzZQorCQlmYmNfYml0cyA9IGRldl9wcml2LT5mYmMucG9zc2libGVfZnJhbWVi dWZmZXJfYml0czsKKworCS8qIFRoZXNlIGFyZSBub3QgdGhlIHBsYW5lcyB5b3UgYXJlIGxvb2tp bmcgZm9yLiAqLworCWlmICgoZnJvbnRidWZmZXJfYml0cyAmIGZiY19iaXRzKSA9PSAwKQorCQly ZXR1cm47CisKKwlmYmNfZW5hYmxlZCA9IGludGVsX2ZiY19lbmFibGVkKGRldik7CisKKwlpZiAo KGRldl9wcml2LT5mYl90cmFja2luZy5idXN5X2JpdHMgJiBmcm9udGJ1ZmZlcl9iaXRzICYKKwkg ICAgIGZiY19iaXRzKSA9PSAwKSB7CisJCWlmIChmYmNfZW5hYmxlZCkgeworCQkJaWYgKG9yaWdp biA9PSBPUklHSU5fUkVOREVSIHx8IG9yaWdpbiA9PSBPUklHSU5fQ1BVKQorCQkJCWludGVsX2Zi Y19udWtlKGRldl9wcml2KTsKKwkJfSBlbHNlIHsKKwkJCWludGVsX2ZiY191cGRhdGUoZGV2KTsK KwkJfQorCX0gZWxzZSB7CisJCWlmIChmYmNfZW5hYmxlZCkKKwkJCWludGVsX2ZiY19kaXNhYmxl KGRldik7CisJfQorfQorCiAvKioKICAqIGludGVsX2ZiY19pbml0IC0gSW5pdGlhbGl6ZSBGQkMK ICAqIEBkZXZfcHJpdjogdGhlIGk5MTUgZGV2aWNlCkBAIC02ODAsMTIgKzY5NCwxOSBAQCBvdXRf ZGlzYWJsZToKICAqLwogdm9pZCBpbnRlbF9mYmNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiB7CisJZW51bSBwaXBlIHBpcGU7CisKIAlpZiAoIUhBU19GQkMoZGV2X3By aXYpKSB7CiAJCWRldl9wcml2LT5mYmMuZW5hYmxlZCA9IGZhbHNlOwogCQlkZXZfcHJpdi0+ZmJj Lm5vX2ZiY19yZWFzb24gPSBGQkNfVU5TVVBQT1JURUQ7CiAJCXJldHVybjsKIAl9CiAKKwkvKiBU T0RPOiBzb21lIHBsYXRmb3JtcyBoYXZlIEZCQyB0aWVkIHRvIGEgc3BlY2lmaWMgcGxhbmUhICov CisJZm9yX2VhY2hfcGlwZShkZXZfcHJpdiwgcGlwZSkKKwkJZGV2X3ByaXYtPmZiYy5wb3NzaWJs ZV9mcmFtZWJ1ZmZlcl9iaXRzIHw9CisJCQkJSU5URUxfRlJPTlRCVUZGRVJfUFJJTUFSWShwaXBl KTsKKwogCWlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuID49IDcpIHsKIAkJZGV2X3ByaXYt PmRpc3BsYXkuZmJjX2VuYWJsZWQgPSBpbGtfZmJjX2VuYWJsZWQ7CiAJCWRldl9wcml2LT5kaXNw bGF5LmVuYWJsZV9mYmMgPSBnZW43X2ZiY19lbmFibGU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9mcm9udGJ1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZnJvbnRidWZmZXIuYwppbmRleCA3YmRhYzY5Li40N2IzNDA5IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mcm9udGJ1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Zyb250YnVmZmVyLmMKQEAgLTExOCw4ICsxMTgsNiBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9tYXJrX2ZiX2J1c3koc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCWNvbnRpbnVl OwogCiAJCWludGVsX2luY3JlYXNlX3BsbGNsb2NrKGRldiwgcGlwZSk7Ci0JCWlmIChyaW5nICYm IGludGVsX2ZiY19lbmFibGVkKGRldikpCi0JCQlyaW5nLT5mYmNfZGlydHkgPSB0cnVlOwogCX0K IH0KIApAQCAtMTU5LDYgKzE1Nyw3IEBAIHZvaWQgaW50ZWxfZmJfb2JqX2ludmFsaWRhdGUoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAlpbnRlbF9tYXJrX2ZiX2J1c3koZGV2LCBv YmotPmZyb250YnVmZmVyX2JpdHMsIHJpbmcpOwogCiAJaW50ZWxfcHNyX2ludmFsaWRhdGUoZGV2 LCBvYmotPmZyb250YnVmZmVyX2JpdHMpOworCWludGVsX2ZiY19pbnZhbGlkYXRlKGRldl9wcml2 LCBvYmotPmZyb250YnVmZmVyX2JpdHMsIG9yaWdpbik7CiB9CiAKIC8qKgpAQCAtMTg3LDE2ICsx ODYsNyBAQCB2b2lkIGludGVsX2Zyb250YnVmZmVyX2ZsdXNoKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJaW50ZWxfbWFya19mYl9idXN5KGRldiwgZnJvbnRidWZmZXJfYml0cywgTlVMTCk7CiAK IAlpbnRlbF9wc3JfZmx1c2goZGV2LCBmcm9udGJ1ZmZlcl9iaXRzKTsKLQotCS8qCi0JICogRklY TUU6IFVuY29uZGl0aW9uYWwgZmJjIGZsdXNoaW5nIGhlcmUgaXMgYSByYXRoZXIgZ3Jvc3MgaGFj ayBhbmQKLQkgKiBuZWVkcyB0byBiZSByZXdvcmtlZCBpbnRvIGEgcHJvcGVyIGZyb250YnVmZmVy IHRyYWNraW5nIHNjaGVtZSBsaWtlCi0JICogcHNyIGVtcGxveXMuCi0JICovCi0JaWYgKGRldl9w cml2LT5mYmMubmVlZF9zd19jYWNoZV9jbGVhbikgewotCQlkZXZfcHJpdi0+ZmJjLm5lZWRfc3df Y2FjaGVfY2xlYW4gPSBmYWxzZTsKLQkJYmR3X2ZiY19zd19mbHVzaChkZXYsIEZCQ19SRU5EX0NB Q0hFX0NMRUFOKTsKLQl9CisJaW50ZWxfZmJjX2ZsdXNoKGRldl9wcml2LCBmcm9udGJ1ZmZlcl9i aXRzLCBvcmlnaW4pOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuYwppbmRleCA4M2FjY2I3Li41OTgyZGE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jCkBAIC0zMTcsMjkgKzMxNyw2IEBAIGdlbjdfcmVuZGVyX3JpbmdfY3Nfc3Rh bGxfd2Eoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKIAlyZXR1cm4gMDsKIH0KIAotc3Rh dGljIGludCBnZW43X3JpbmdfZmJjX2ZsdXNoKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcs IHUzMiB2YWx1ZSkKLXsKLQlpbnQgcmV0OwotCi0JaWYgKCFyaW5nLT5mYmNfZGlydHkpCi0JCXJl dHVybiAwOwotCi0JcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyaW5nLCA2KTsKLQlpZiAocmV0KQot CQlyZXR1cm4gcmV0OwotCS8qIFdhRmJjTnVrZU9uM0RCbHQ6aXZiL2hzdyAqLwotCWludGVsX3Jp bmdfZW1pdChyaW5nLCBNSV9MT0FEX1JFR0lTVEVSX0lNTSgxKSk7Ci0JaW50ZWxfcmluZ19lbWl0 KHJpbmcsIE1TR19GQkNfUkVORF9TVEFURSk7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIHZhbHVl KTsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfU1RPUkVfUkVHSVNURVJfTUVNKDEpIHwgTUlf U1JNX0xSTV9HTE9CQUxfR1RUKTsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgTVNHX0ZCQ19SRU5E X1NUQVRFKTsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgcmluZy0+c2NyYXRjaC5ndHRfb2Zmc2V0 ICsgMjU2KTsKLQlpbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7Ci0KLQlyaW5nLT5mYmNfZGlydHkg PSBmYWxzZTsKLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIGludAogZ2VuN19yZW5kZXJfcmluZ19m bHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQkgICAgICAgdTMyIGludmFsaWRh dGVfZG9tYWlucywgdTMyIGZsdXNoX2RvbWFpbnMpCkBAIC0zOTUsOSArMzcyLDYgQEAgZ2VuN19y ZW5kZXJfcmluZ19mbHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCWludGVsX3Jp bmdfZW1pdChyaW5nLCAwKTsKIAlpbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7CiAKLQlpZiAoIWlu dmFsaWRhdGVfZG9tYWlucyAmJiBmbHVzaF9kb21haW5zKQotCQlyZXR1cm4gZ2VuN19yaW5nX2Zi Y19mbHVzaChyaW5nLCBGQkNfUkVORF9OVUtFKTsKLQogCXJldHVybiAwOwogfQogCkBAIC00NTks OSArNDMzLDYgQEAgZ2VuOF9yZW5kZXJfcmluZ19mbHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nLAogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlpZiAoIWludmFsaWRhdGVfZG9t YWlucyAmJiBmbHVzaF9kb21haW5zKQotCQlyZXR1cm4gZ2VuN19yaW5nX2ZiY19mbHVzaChyaW5n LCBGQkNfUkVORF9OVUtFKTsKLQogCXJldHVybiAwOwogfQogCkBAIC0yMjc5LDcgKzIyNTAsNiBA QCBzdGF0aWMgaW50IGdlbjZfcmluZ19mbHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n LAogCQkJICAgdTMyIGludmFsaWRhdGUsIHUzMiBmbHVzaCkKIHsKIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gcmluZy0+ZGV2OwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7CiAJdWludDMyX3QgY21kOwogCWludCByZXQ7CiAKQEAgLTIyODgs NyArMjI1OCw3IEBAIHN0YXRpYyBpbnQgZ2VuNl9yaW5nX2ZsdXNoKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKnJpbmcsCiAJCXJldHVybiByZXQ7CiAKIAljbWQgPSBNSV9GTFVTSF9EVzsKLQlpZiAo SU5URUxfSU5GTyhyaW5nLT5kZXYpLT5nZW4gPj0gOCkKKwlpZiAoSU5URUxfSU5GTyhkZXYpLT5n ZW4gPj0gOCkKIAkJY21kICs9IDE7CiAJLyoKIAkgKiBCc3BlYyB2b2wgMWMuMyAtIGJsaXR0ZXIg ZW5naW5lIGNvbW1hbmQgc3RyZWFtZXI6CkBAIC0yMzAxLDcgKzIyNzEsNyBAQCBzdGF0aWMgaW50 IGdlbjZfcmluZ19mbHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQkJTUlfRkxV U0hfRFdfT1BfU1RPUkVEVzsKIAlpbnRlbF9yaW5nX2VtaXQocmluZywgY21kKTsKIAlpbnRlbF9y aW5nX2VtaXQocmluZywgSTkxNV9HRU1fSFdTX1NDUkFUQ0hfQUREUiB8IE1JX0ZMVVNIX0RXX1VT RV9HVFQpOwotCWlmIChJTlRFTF9JTkZPKHJpbmctPmRldiktPmdlbiA+PSA4KSB7CisJaWYgKElO VEVMX0lORk8oZGV2KS0+Z2VuID49IDgpIHsKIAkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIDApOyAv KiB1cHBlciBhZGRyICovCiAJCWludGVsX3JpbmdfZW1pdChyaW5nLCAwKTsgLyogdmFsdWUgKi8K IAl9IGVsc2UgIHsKQEAgLTIzMTAsMTMgKzIyODAsNiBAQCBzdGF0aWMgaW50IGdlbjZfcmluZ19m bHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCX0KIAlpbnRlbF9yaW5nX2FkdmFu Y2UocmluZyk7CiAKLQlpZiAoIWludmFsaWRhdGUgJiYgZmx1c2gpIHsKLQkJaWYgKElTX0dFTjco ZGV2KSkKLQkJCXJldHVybiBnZW43X3JpbmdfZmJjX2ZsdXNoKHJpbmcsIEZCQ19SRU5EX0NBQ0hF X0NMRUFOKTsKLQkJZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRldikpCi0JCQlkZXZfcHJpdi0+ZmJj Lm5lZWRfc3dfY2FjaGVfY2xlYW4gPSB0cnVlOwotCX0KLQogCXJldHVybiAwOwogfQogCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKaW5kZXggNmRiYjZmNC4uN2UzMWVjOCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaApAQCAtMjY5LDcgKzI2OSw2 IEBAIHN0cnVjdCAgaW50ZWxfZW5naW5lX2NzIHsKIAkgKi8KIAlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKm91dHN0YW5kaW5nX2xhenlfcmVxdWVzdDsKIAlib29sIGdwdV9jYWNoZXNfZGly dHk7Ci0JYm9vbCBmYmNfZGlydHk7CiAKIAl3YWl0X3F1ZXVlX2hlYWRfdCBpcnFfcXVldWU7CiAK LS0gCjIuMS4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=