From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: [PATCH 8/11] drm/i915: add frontbuffer tracking to FBC Date: Mon, 15 Dec 2014 12:00:16 -0200 Message-ID: <1418652016-1681-1-git-send-email-przanoni@gmail.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qg0-f51.google.com (mail-qg0-f51.google.com [209.85.192.51]) by gabe.freedesktop.org (Postfix) with ESMTP id 080DC6E4DA for ; Mon, 15 Dec 2014 06:01:03 -0800 (PST) Received: by mail-qg0-f51.google.com with SMTP id e89so8584772qgf.10 for ; Mon, 15 Dec 2014 06:01:02 -0800 (PST) In-Reply-To: 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 ClJldmlld2VkLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+ICh2MikK U2lnbmVkLW9mZi1ieTogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBQYXVsbyBaYW5vbmkgPHBhdWxvLnIuemFub25pQGludGVsLmNvbT4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgIHwgICA5ICstLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICAgICB8ICAgNiArLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZmJjLmMgICAgICAgICB8IDEwNyArKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mcm9udGJ1ZmZlci5jIHwgIDE0 ICstLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyAgfCAgNDEgKy0t LS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggIHwgICAx IC0KIDYgZmlsZXMgY2hhbmdlZCwgODAgaW5zZXJ0aW9ucygrKSwgOTggZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggNWRlNWM3Ny4uZDgxZWNkNyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCkBAIC03MDgsNiArNzA4LDcgQEAgc3RydWN0IGk5MTVfZmJjIHsKIAl1bnNp Z25lZCBsb25nIHNpemU7CiAJdW5zaWduZWQgdGhyZXNob2xkOwogCXVuc2lnbmVkIGludCBmYl9p ZDsKKwl1bnNpZ25lZCBpbnQgcG9zc2libGVfZnJhbWVidWZmZXJfYml0czsKIAlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YzsKIAlpbnQgeTsKIApAQCAtNzIwLDE0ICs3MjEsNiBAQCBzdHJ1Y3QgaTkx NV9mYmMgewogCSAqIHBvc3NpYmxlLiAqLwogCWJvb2wgZW5hYmxlZDsKIAotCS8qIE9uIGdlbjgg c29tZSByaW5ncyBjYW5ub250IHBlcmZvcm0gZmJjIGNsZWFuIG9wZXJhdGlvbiBzbyBmb3Igbm93 Ci0JICogd2UgYXJlIGRvaW5nIHRoaXMgb24gU1cgd2l0aCBtbWlvLgotCSAqIFRoaXMgdmFyaWFi bGUgd29ya3MgaW4gdGhlIG9wcG9zaXRlIGluZm9ybWF0aW9uIGRpcmVjdGlvbgotCSAqIG9mIHJp bmctPmZiY19kaXJ0eSB0ZWxsaW5nIHNvZnR3YXJlIG9uIGZyb250YnVmZmVyIHRyYWNraW5nCi0J ICogdG8gcGVyZm9ybSB0aGUgY2FjaGUgY2xlYW4gb24gc3cgc2lkZS4KLQkgKi8KLQlib29sIG5l ZWRfc3dfY2FjaGVfY2xlYW47Ci0KIAlzdHJ1Y3QgaW50ZWxfZmJjX3dvcmsgewogCQlzdHJ1Y3Qg ZGVsYXllZF93b3JrIHdvcms7CiAJCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKaW5kZXggNjMzZmI5YS4uM2ExYzNkODIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCkBAIC0xMDcxLDcgKzEwNzEsMTEgQEAgYm9vbCBpbnRlbF9mYmNfZW5hYmxlZChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KTsKIHZvaWQgaW50ZWxfZmJjX3VwZGF0ZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KTsKIHZvaWQgaW50ZWxfZmJjX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KTsKIHZvaWQgaW50ZWxfZmJjX2Rpc2FibGUoc3RydWN0IGRybV9kZXZpY2UgKmRl dik7Ci12b2lkIGJkd19mYmNfc3dfZmx1c2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIHZh bHVlKTsKK3ZvaWQgaW50ZWxfZmJjX2ludmFsaWRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAorCQkJICB1bnNpZ25lZCBpbnQgZnJvbnRidWZmZXJfYml0cywKKwkJCSAgZW51 bSBmYl9vcF9vcmlnaW4gb3JpZ2luKTsKK3ZvaWQgaW50ZWxfZmJjX2ZsdXNoKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJICAgICB1bnNpZ25lZCBpbnQgZnJvbnRidWZmZXJf Yml0cywgZW51bSBmYl9vcF9vcmlnaW4gb3JpZ2luKTsKIAogLyogaW50ZWxfaGRtaS5jICovCiB2 b2lkIGludGVsX2hkbWlfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgaGRtaV9yZWcs IGVudW0gcG9ydCBwb3J0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2ZiYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKaW5kZXggZjY1OGRjMC4u YzcxYjQzNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKQEAgLTE3MywyOSArMTczLDEwIEBA IHN0YXRpYyBib29sIGc0eF9mYmNfZW5hYmxlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXJl dHVybiBJOTE1X1JFQUQoRFBGQ19DT05UUk9MKSAmIERQRkNfQ1RMX0VOOwogfQogCi1zdGF0aWMg dm9pZCBzbmJfZmJjX2JsaXRfdXBkYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCitzdGF0aWMg dm9pZCBpbnRlbF9mYmNfbnVrZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7 Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK LQl1MzIgYmx0X2Vjb3NrcGQ7Ci0KLQkvKiBNYWtlIHN1cmUgYmxpdHRlciBub3RpZmllcyBGQkMg b2Ygd3JpdGVzICovCi0KLQkvKiBCbGl0dGVyIGlzIHBhcnQgb2YgTWVkaWEgcG93ZXJ3ZWxsIG9u IFZMVi4gTm8gaW1wYWN0IG9mCi0JICogaGlzIHBhcmFtIGluIG90aGVyIHBsYXRmb3JtcyBmb3Ig bm93ICovCi0JZ2VuNl9ndF9mb3JjZV93YWtlX2dldChkZXZfcHJpdiwgRk9SQ0VXQUtFX01FRElB KTsKLQotCWJsdF9lY29za3BkID0gSTkxNV9SRUFEKEdFTjZfQkxJVFRFUl9FQ09TS1BEKTsKLQli bHRfZWNvc2twZCB8PSBHRU42X0JMSVRURVJfRkJDX05PVElGWSA8PAotCQlHRU42X0JMSVRURVJf TE9DS19TSElGVDsKLQlJOTE1X1dSSVRFKEdFTjZfQkxJVFRFUl9FQ09TS1BELCBibHRfZWNvc2tw ZCk7Ci0JYmx0X2Vjb3NrcGQgfD0gR0VONl9CTElUVEVSX0ZCQ19OT1RJRlk7Ci0JSTkxNV9XUklU RShHRU42X0JMSVRURVJfRUNPU0tQRCwgYmx0X2Vjb3NrcGQpOwotCWJsdF9lY29za3BkICY9IH4o R0VONl9CTElUVEVSX0ZCQ19OT1RJRlkgPDwKLQkJCSBHRU42X0JMSVRURVJfTE9DS19TSElGVCk7 Ci0JSTkxNV9XUklURShHRU42X0JMSVRURVJfRUNPU0tQRCwgYmx0X2Vjb3NrcGQpOwotCVBPU1RJ TkdfUkVBRChHRU42X0JMSVRURVJfRUNPU0tQRCk7Ci0KLQlnZW42X2d0X2ZvcmNlX3dha2VfcHV0 KGRldl9wcml2LCBGT1JDRVdBS0VfTUVESUEpOworCUk5MTVfV1JJVEUoTVNHX0ZCQ19SRU5EX1NU QVRFLCBGQkNfUkVORF9OVUtFKTsKKwlQT1NUSU5HX1JFQUQoTVNHX0ZCQ19SRU5EX1NUQVRFKTsK IH0KIAogc3RhdGljIHZvaWQgaWxrX2ZiY19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQpA QCAtMjM4LDkgKzIxOSwxMCBAQCBzdGF0aWMgdm9pZCBpbGtfZmJjX2VuYWJsZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMpCiAJCUk5MTVfV1JJVEUoU05CX0RQRkNfQ1RMX1NBLAogCQkJICAgU05CX0NQ VV9GRU5DRV9FTkFCTEUgfCBvYmotPmZlbmNlX3JlZyk7CiAJCUk5MTVfV1JJVEUoRFBGQ19DUFVf RkVOQ0VfT0ZGU0VULCBjcnRjLT55KTsKLQkJc25iX2ZiY19ibGl0X3VwZGF0ZShkZXYpOwogCX0K IAorCWludGVsX2ZiY19udWtlKGRldl9wcml2KTsKKwogCURSTV9ERUJVR19LTVMoImVuYWJsZWQg ZmJjIG9uIHBsYW5lICVjXG4iLCBwbGFuZV9uYW1lKGludGVsX2NydGMtPnBsYW5lKSk7CiB9CiAK QEAgLTMxOSw3ICszMDEsNyBAQCBzdGF0aWMgdm9pZCBnZW43X2ZiY19lbmFibGUoc3RydWN0IGRy bV9jcnRjICpjcnRjKQogCQkgICBTTkJfQ1BVX0ZFTkNFX0VOQUJMRSB8IG9iai0+ZmVuY2VfcmVn KTsKIAlJOTE1X1dSSVRFKERQRkNfQ1BVX0ZFTkNFX09GRlNFVCwgY3J0Yy0+eSk7CiAKLQlzbmJf ZmJjX2JsaXRfdXBkYXRlKGRldik7CisJaW50ZWxfZmJjX251a2UoZGV2X3ByaXYpOwogCiAJRFJN X0RFQlVHX0tNUygiZW5hYmxlZCBmYmMgb24gcGxhbmUgJWNcbiIsIHBsYW5lX25hbWUoaW50ZWxf Y3J0Yy0+cGxhbmUpKTsKIH0KQEAgLTMzOSwxOSArMzIxLDYgQEAgYm9vbCBpbnRlbF9mYmNfZW5h YmxlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXJldHVybiBkZXZfcHJpdi0+ZmJjLmVuYWJs ZWQ7CiB9CiAKLXZvaWQgYmR3X2ZiY19zd19mbHVzaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1 MzIgdmFsdWUpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKLQotCWlmICghSVNfR0VOOChkZXYpKQotCQlyZXR1cm47Ci0KLQlpZiAoIWlu dGVsX2ZiY19lbmFibGVkKGRldikpCi0JCXJldHVybjsKLQotCUk5MTVfV1JJVEUoTVNHX0ZCQ19S RU5EX1NUQVRFLCB2YWx1ZSk7Ci19Ci0KIHN0YXRpYyB2b2lkIGludGVsX2ZiY193b3JrX2ZuKHN0 cnVjdCB3b3JrX3N0cnVjdCAqX193b3JrKQogewogCXN0cnVjdCBpbnRlbF9mYmNfd29yayAqd29y ayA9CkBAIC02NTcsNiArNjI2LDYzIEBAIG91dF9kaXNhYmxlOgogCWk5MTVfZ2VtX3N0b2xlbl9j bGVhbnVwX2NvbXByZXNzaW9uKGRldik7CiB9CiAKK3ZvaWQgaW50ZWxfZmJjX2ludmFsaWRhdGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJICB1bnNpZ25lZCBpbnQgZnJv bnRidWZmZXJfYml0cywKKwkJCSAgZW51bSBmYl9vcF9vcmlnaW4gb3JpZ2luKQoreworCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2OworCXVuc2lnbmVkIGludCBmYmNfYml0 czsKKworCWlmIChvcmlnaW4gPT0gT1JJR0lOX0dUVCkKKwkJcmV0dXJuOworCisJaWYgKGRldl9w cml2LT5mYmMuZW5hYmxlZCkKKwkJZmJjX2JpdHMgPSBJTlRFTF9GUk9OVEJVRkZFUl9QUklNQVJZ KGRldl9wcml2LT5mYmMuY3J0Yy0+cGlwZSk7CisJZWxzZSBpZiAoZGV2X3ByaXYtPmZiYy5mYmNf d29yaykKKwkJZmJjX2JpdHMgPSBJTlRFTF9GUk9OVEJVRkZFUl9QUklNQVJZKAorCQkJdG9faW50 ZWxfY3J0YyhkZXZfcHJpdi0+ZmJjLmZiY193b3JrLT5jcnRjKS0+cGlwZSk7CisJZWxzZQorCQlm YmNfYml0cyA9IGRldl9wcml2LT5mYmMucG9zc2libGVfZnJhbWVidWZmZXJfYml0czsKKworCWlm ICgoZmJjX2JpdHMgJiBmcm9udGJ1ZmZlcl9iaXRzKSA9PSAwKQorCQlyZXR1cm47CisKKwlpbnRl bF9mYmNfZGlzYWJsZShkZXYpOworfQorCit2b2lkIGludGVsX2ZiY19mbHVzaChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCSAgICAgdW5zaWduZWQgaW50IGZyb250YnVmZmVy X2JpdHMsCisJCSAgICAgZW51bSBmYl9vcF9vcmlnaW4gb3JpZ2luKQoreworCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2OworCXVuc2lnbmVkIGludCBmYmNfYml0cyA9IDA7 CisJYm9vbCBmYmNfZW5hYmxlZDsKKworCWlmIChkZXZfcHJpdi0+ZmJjLmVuYWJsZWQpCisJCWZi Y19iaXRzID0gSU5URUxfRlJPTlRCVUZGRVJfUFJJTUFSWShkZXZfcHJpdi0+ZmJjLmNydGMtPnBp cGUpOworCWVsc2UKKwkJZmJjX2JpdHMgPSBkZXZfcHJpdi0+ZmJjLnBvc3NpYmxlX2ZyYW1lYnVm ZmVyX2JpdHM7CisKKwkvKiBUaGVzZSBhcmUgbm90IHRoZSBwbGFuZXMgeW91IGFyZSBsb29raW5n IGZvci4gKi8KKwlpZiAoKGZyb250YnVmZmVyX2JpdHMgJiBmYmNfYml0cykgPT0gMCkKKwkJcmV0 dXJuOworCisJZmJjX2VuYWJsZWQgPSBpbnRlbF9mYmNfZW5hYmxlZChkZXYpOworCisJaWYgKChk ZXZfcHJpdi0+ZmJfdHJhY2tpbmcuYnVzeV9iaXRzICYgZnJvbnRidWZmZXJfYml0cyAmCisJICAg ICBmYmNfYml0cykgPT0gMCkgeworCQlpZiAoZmJjX2VuYWJsZWQpIHsKKwkJCWlmIChvcmlnaW4g PT0gT1JJR0lOX0NTIHx8IG9yaWdpbiA9PSBPUklHSU5fQ1BVKQorCQkJCWludGVsX2ZiY19udWtl KGRldl9wcml2KTsKKwkJfSBlbHNlIHsKKwkJCWludGVsX2ZiY191cGRhdGUoZGV2KTsKKwkJfQor CX0gZWxzZSB7CisJCWlmIChmYmNfZW5hYmxlZCkKKwkJCWludGVsX2ZiY19kaXNhYmxlKGRldik7 CisJfQorfQorCiAvKioKICAqIGludGVsX2ZiY19pbml0IC0gSW5pdGlhbGl6ZSBGQkMKICAqIEBk ZXZfcHJpdjogdGhlIGk5MTUgZGV2aWNlCkBAIC02NjUsMTIgKzY5MSwxOSBAQCBvdXRfZGlzYWJs ZToKICAqLwogdm9pZCBpbnRlbF9mYmNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiB7CisJZW51bSBwaXBlIHBpcGU7CisKIAlpZiAoIUhBU19GQkMoZGV2X3ByaXYpKSB7 CiAJCWRldl9wcml2LT5mYmMuZW5hYmxlZCA9IGZhbHNlOwogCQlkZXZfcHJpdi0+ZmJjLm5vX2Zi Y19yZWFzb24gPSBGQkNfVU5TVVBQT1JURUQ7CiAJCXJldHVybjsKIAl9CiAKKwkvKiBUT0RPOiBz b21lIHBsYXRmb3JtcyBoYXZlIEZCQyB0aWVkIHRvIGEgc3BlY2lmaWMgcGxhbmUhICovCisJZm9y X2VhY2hfcGlwZShkZXZfcHJpdiwgcGlwZSkKKwkJZGV2X3ByaXYtPmZiYy5wb3NzaWJsZV9mcmFt ZWJ1ZmZlcl9iaXRzIHw9CisJCQkJSU5URUxfRlJPTlRCVUZGRVJfUFJJTUFSWShwaXBlKTsKKwog CWlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuID49IDcpIHsKIAkJZGV2X3ByaXYtPmRpc3Bs YXkuZmJjX2VuYWJsZWQgPSBpbGtfZmJjX2VuYWJsZWQ7CiAJCWRldl9wcml2LT5kaXNwbGF5LmVu YWJsZV9mYmMgPSBnZW43X2ZiY19lbmFibGU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9mcm9udGJ1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZnJv bnRidWZmZXIuYwppbmRleCAzZDM1ZjMxLi4wZjVlOTI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9mcm9udGJ1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Zyb250YnVmZmVyLmMKQEAgLTExOCw4ICsxMTgsNiBAQCBzdGF0aWMgdm9pZCBpbnRl bF9tYXJrX2ZiX2J1c3koc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCWNvbnRpbnVlOwogCiAJ CWludGVsX2luY3JlYXNlX3BsbGNsb2NrKGRldiwgcGlwZSk7Ci0JCWlmIChyaW5nICYmIGludGVs X2ZiY19lbmFibGVkKGRldikpCi0JCQlyaW5nLT5mYmNfZGlydHkgPSB0cnVlOwogCX0KIH0KIApA QCAtMTU5LDYgKzE1Nyw3IEBAIHZvaWQgaW50ZWxfZmJfb2JqX2ludmFsaWRhdGUoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAlpbnRlbF9tYXJrX2ZiX2J1c3koZGV2LCBvYmotPmZy b250YnVmZmVyX2JpdHMsIHJpbmcpOwogCiAJaW50ZWxfcHNyX2ludmFsaWRhdGUoZGV2LCBvYmot PmZyb250YnVmZmVyX2JpdHMpOworCWludGVsX2ZiY19pbnZhbGlkYXRlKGRldl9wcml2LCBvYmot PmZyb250YnVmZmVyX2JpdHMsIG9yaWdpbik7CiB9CiAKIC8qKgpAQCAtMTg3LDE2ICsxODYsNyBA QCB2b2lkIGludGVsX2Zyb250YnVmZmVyX2ZsdXNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ aW50ZWxfbWFya19mYl9idXN5KGRldiwgZnJvbnRidWZmZXJfYml0cywgTlVMTCk7CiAKIAlpbnRl bF9wc3JfZmx1c2goZGV2LCBmcm9udGJ1ZmZlcl9iaXRzKTsKLQotCS8qCi0JICogRklYTUU6IFVu Y29uZGl0aW9uYWwgZmJjIGZsdXNoaW5nIGhlcmUgaXMgYSByYXRoZXIgZ3Jvc3MgaGFjayBhbmQK LQkgKiBuZWVkcyB0byBiZSByZXdvcmtlZCBpbnRvIGEgcHJvcGVyIGZyb250YnVmZmVyIHRyYWNr aW5nIHNjaGVtZSBsaWtlCi0JICogcHNyIGVtcGxveXMuCi0JICovCi0JaWYgKGRldl9wcml2LT5m YmMubmVlZF9zd19jYWNoZV9jbGVhbikgewotCQlkZXZfcHJpdi0+ZmJjLm5lZWRfc3dfY2FjaGVf Y2xlYW4gPSBmYWxzZTsKLQkJYmR3X2ZiY19zd19mbHVzaChkZXYsIEZCQ19SRU5EX0NBQ0hFX0NM RUFOKTsKLQl9CisJaW50ZWxfZmJjX2ZsdXNoKGRldl9wcml2LCBmcm9udGJ1ZmZlcl9iaXRzLCBv cmlnaW4pOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwpp bmRleCA0NzAyZTdiLi4wZDY0ZDcyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5jCkBAIC0zMTcsMjkgKzMxNyw2IEBAIGdlbjdfcmVuZGVyX3JpbmdfY3Nfc3RhbGxfd2Eo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGlu dCBnZW43X3JpbmdfZmJjX2ZsdXNoKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIHUzMiB2 YWx1ZSkKLXsKLQlpbnQgcmV0OwotCi0JaWYgKCFyaW5nLT5mYmNfZGlydHkpCi0JCXJldHVybiAw OwotCi0JcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyaW5nLCA2KTsKLQlpZiAocmV0KQotCQlyZXR1 cm4gcmV0OwotCS8qIFdhRmJjTnVrZU9uM0RCbHQ6aXZiL2hzdyAqLwotCWludGVsX3JpbmdfZW1p dChyaW5nLCBNSV9MT0FEX1JFR0lTVEVSX0lNTSgxKSk7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcs IE1TR19GQkNfUkVORF9TVEFURSk7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIHZhbHVlKTsKLQlp bnRlbF9yaW5nX2VtaXQocmluZywgTUlfU1RPUkVfUkVHSVNURVJfTUVNKDEpIHwgTUlfU1JNX0xS TV9HTE9CQUxfR1RUKTsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgTVNHX0ZCQ19SRU5EX1NUQVRF KTsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgcmluZy0+c2NyYXRjaC5ndHRfb2Zmc2V0ICsgMjU2 KTsKLQlpbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7Ci0KLQlyaW5nLT5mYmNfZGlydHkgPSBmYWxz ZTsKLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIGludAogZ2VuN19yZW5kZXJfcmluZ19mbHVzaChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQkgICAgICAgdTMyIGludmFsaWRhdGVfZG9t YWlucywgdTMyIGZsdXNoX2RvbWFpbnMpCkBAIC0zOTUsOSArMzcyLDYgQEAgZ2VuN19yZW5kZXJf cmluZ19mbHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCWludGVsX3JpbmdfZW1p dChyaW5nLCAwKTsKIAlpbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7CiAKLQlpZiAoIWludmFsaWRh dGVfZG9tYWlucyAmJiBmbHVzaF9kb21haW5zKQotCQlyZXR1cm4gZ2VuN19yaW5nX2ZiY19mbHVz aChyaW5nLCBGQkNfUkVORF9OVUtFKTsKLQogCXJldHVybiAwOwogfQogCkBAIC00NTksOSArNDMz LDYgQEAgZ2VuOF9yZW5kZXJfcmluZ19mbHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n LAogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlpZiAoIWludmFsaWRhdGVfZG9tYWlucyAm JiBmbHVzaF9kb21haW5zKQotCQlyZXR1cm4gZ2VuN19yaW5nX2ZiY19mbHVzaChyaW5nLCBGQkNf UkVORF9OVUtFKTsKLQogCXJldHVybiAwOwogfQogCkBAIC0yMjk2LDcgKzIyNjcsNiBAQCBzdGF0 aWMgaW50IGdlbjZfcmluZ19mbHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQkJ ICAgdTMyIGludmFsaWRhdGUsIHUzMiBmbHVzaCkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gcmluZy0+ZGV2OwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7CiAJdWludDMyX3QgY21kOwogCWludCByZXQ7CiAKQEAgLTIzMDUsNyArMjI3 NSw3IEBAIHN0YXRpYyBpbnQgZ2VuNl9yaW5nX2ZsdXNoKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcsCiAJCXJldHVybiByZXQ7CiAKIAljbWQgPSBNSV9GTFVTSF9EVzsKLQlpZiAoSU5URUxf SU5GTyhyaW5nLT5kZXYpLT5nZW4gPj0gOCkKKwlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0g OCkKIAkJY21kICs9IDE7CiAJLyoKIAkgKiBCc3BlYyB2b2wgMWMuMyAtIGJsaXR0ZXIgZW5naW5l IGNvbW1hbmQgc3RyZWFtZXI6CkBAIC0yMzE4LDcgKzIyODgsNyBAQCBzdGF0aWMgaW50IGdlbjZf cmluZ19mbHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQkJTUlfRkxVU0hfRFdf T1BfU1RPUkVEVzsKIAlpbnRlbF9yaW5nX2VtaXQocmluZywgY21kKTsKIAlpbnRlbF9yaW5nX2Vt aXQocmluZywgSTkxNV9HRU1fSFdTX1NDUkFUQ0hfQUREUiB8IE1JX0ZMVVNIX0RXX1VTRV9HVFQp OwotCWlmIChJTlRFTF9JTkZPKHJpbmctPmRldiktPmdlbiA+PSA4KSB7CisJaWYgKElOVEVMX0lO Rk8oZGV2KS0+Z2VuID49IDgpIHsKIAkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIDApOyAvKiB1cHBl ciBhZGRyICovCiAJCWludGVsX3JpbmdfZW1pdChyaW5nLCAwKTsgLyogdmFsdWUgKi8KIAl9IGVs c2UgIHsKQEAgLTIzMjcsMTMgKzIyOTcsNiBAQCBzdGF0aWMgaW50IGdlbjZfcmluZ19mbHVzaChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCX0KIAlpbnRlbF9yaW5nX2FkdmFuY2Uocmlu Zyk7CiAKLQlpZiAoIWludmFsaWRhdGUgJiYgZmx1c2gpIHsKLQkJaWYgKElTX0dFTjcoZGV2KSkK LQkJCXJldHVybiBnZW43X3JpbmdfZmJjX2ZsdXNoKHJpbmcsIEZCQ19SRU5EX0NBQ0hFX0NMRUFO KTsKLQkJZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRldikpCi0JCQlkZXZfcHJpdi0+ZmJjLm5lZWRf c3dfY2FjaGVfY2xlYW4gPSB0cnVlOwotCX0KLQogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKaW5kZXggNmRiYjZmNC4uN2UzMWVjOCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaApAQCAtMjY5LDcgKzI2OSw2IEBAIHN0 cnVjdCAgaW50ZWxfZW5naW5lX2NzIHsKIAkgKi8KIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKm91dHN0YW5kaW5nX2xhenlfcmVxdWVzdDsKIAlib29sIGdwdV9jYWNoZXNfZGlydHk7Ci0J Ym9vbCBmYmNfZGlydHk7CiAKIAl3YWl0X3F1ZXVlX2hlYWRfdCBpcnFfcXVldWU7CiAKLS0gCjIu MS4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=