From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v3.1 08/16] drm/i915/gen9: Compute DDB allocation at atomic check time (v3) Date: Mon, 2 May 2016 14:42:51 +0200 Message-ID: <1d012cee-b3ec-e262-79bd-9c3845e6c303@linux.intel.com> References: <1461280630-7477-1-git-send-email-matthew.d.roper@intel.com> <1461280630-7477-9-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id AB6586E59E for ; Mon, 2 May 2016 12:42:53 +0000 (UTC) In-Reply-To: <1461280630-7477-9-git-send-email-matthew.d.roper@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q2FsY3VsYXRlIHRoZSBEREIgYmxvY2tzIG5lZWRlZCB0byBzYXRpc2Z5IHRoZSBjdXJyZW50IGF0 b21pYwp0cmFuc2FjdGlvbiBhdCBhdG9taWMgY2hlY2sgdGltZS4gIFRoaXMgaXMgYSBwcmVyZXF1 aXNpdGUgdG8gY2FsY3VsYXRpbmcKU0tMIHdhdGVybWFya3MgZHVyaW5nIHRoZSAnY2hlY2snIHBo YXNlIGFuZCByZWplY3RpbmcgYW55IGNvbmZpZ3VyYXRpb25zCnRoYXQgd2UgY2FuJ3QgZmluZCB2 YWxpZCB3YXRlcm1hcmtzIGZvci4KCkR1ZSB0byB0aGUgbmF0dXJlIG9mIEREQiBhbGxvY2F0aW9u LCBpdCdzIHBvc3NpYmxlIGZvciB0aGUgYWRkaXRpb24gb2YgYQpuZXcgQ1JUQyB0byBtYWtlIHRo ZSB3YXRlcm1hcmsgY29uZmlndXJhdGlvbiBhbHJlYWR5IGluIHVzZSBvbiBhbm90aGVyLAp1bmNo YW5nZWQgQ1JUQyBiZWNvbWUgaW52YWxpZC4gIEEgY2hhbmdlIGluIHdoaWNoIENSVEMncyBhcmUg YWN0aXZlCnRyaWdnZXJzIGEgcmVjb21wdXRlIG9mIHRoZSBlbnRpcmUgRERCLCB3aGljaCB1bmZv cnR1bmF0ZWx5IG1lYW5zIHdlCm5lZWQgdG8gZGlzYWxsb3cgYW55IG90aGVyIGF0b21pYyBjb21t aXRzIGZyb20gcmFjaW5nIHdpdGggc3VjaCBhbgp1cGRhdGUuICBJZiB0aGUgYWN0aXZlIENSVEMn cyBjaGFuZ2UsIHdlIG5lZWQgdG8gZ3JhYiB0aGUgbG9jayBvbiBhbGwKQ1JUQydzIGFuZCBydW4g YWxsIENSVEMncyB0aHJvdWdoIHRoZWlyICdjaGVjaycgaGFuZGxlciB0byByZWNvbXB1dGUgYW5k CnJlLWNoZWNrIHRoZWlyIHBlci1DUlRDIEREQiBhbGxvY2F0aW9ucy4KCk5vdGUgdGhhdCB3aXRo IHRoaXMgcGF0Y2ggd2Ugb25seSBjb21wdXRlIHRoZSBEREIgYWxsb2NhdGlvbiBidXQgd2UKZG9u J3QgYWN0dWFsbHkgdXNlIHRoZSBjb21wdXRlZCB2YWx1ZXMgZHVyaW5nIHdhdGVybWFyayBwcm9n cmFtbWluZyB5ZXQuCkZvciBlYXNlIG9mIHJldmlldy90ZXN0aW5nL2Jpc2VjdGluZywgd2Ugc3Rp bGwgcmVjb21wdXRlIHRoZSBEREIgYXQKd2F0ZXJtYXJrIHByb2dyYW1taW5nIHRpbWUgYW5kIGp1 c3QgV0FSTigpIGlmIGl0IGRvZXNuJ3QgbWF0Y2ggdGhlCnByZWNvbXB1dGVkIHZhbHVlcy4gIEEg ZnV0dXJlIHBhdGNoIHdpbGwgc3dpdGNoIG92ZXIgdG8gdXNpbmcgdGhlCnByZWNvbXB1dGVkIHZh bHVlcyBvbmNlIHdlJ3JlIHN1cmUgdGhleSdyZSBiZWluZyBwcm9wZXJseSBjb21wdXRlZC4KCkFu b3RoZXIgY2xhcmlmeWluZyBub3RlOiAgRERCIGFsbG9jYXRpb24gaXRzZWxmIHNob3VsZG4ndCBl dmVyIGZhaWwgd2l0aAp0aGUgYWxnb3JpdGhtIHdlIHVzZSB0b2RheSAoaS5lLiwgd2UgaGF2ZSBl bm91Z2ggRERCIGJsb2NrcyBvbiBCWFQgdG8Kc3VwcG9ydCB0aGUgbWluaW11bSBuZWVkcyBvZiB0 aGUgd29yc3QtY2FzZSBzY2VuYXJpbyBvZiBldmVyeSBwaXBlL3BsYW5lCmVuYWJsZWQgYXQgZnVs bCBzaXplKS4gIEhvd2V2ZXIgdGhlIHdhdGVybWFya3MgY2FsY3VsYXRpb25zIGJhc2VkIG9uIHRo ZQpEREIgbWF5IGZhaWwgYW5kIHdlJ2xsIGJlIG1vdmluZyB0aG9zZSB0byB0aGUgYXRvbWljIGNo ZWNrIGFzIHdlbGwgaW4KZnV0dXJlIHBhdGNoZXMuCgp2MjoKIC0gU2tpcCBEREIgY2FsY3VsYXRp b25zIGluIHRoZSByYXJlIGNhc2Ugd2hlcmUgb3VyIHRyYW5zYWN0aW9uIGRvZXNuJ3QKICAgYWN0 dWFsbHkgdG91Y2ggYW55IENSVEMncyBhdCBhbGwuICBBc3N1bWluZyBhdCBsZWFzdCBvbmUgQ1JU QyBzdGF0ZQogICBpcyBwcmVzZW50IGluIG91ciB0cmFuc2FjdGlvbiwgdGhlbiBpdCBtZWFucyB3 ZSBjYW4ndCByYWNlIHdpdGggYW55CiAgIHRyYW5zYWN0aW9ucyB0aGF0IHdvdWxkIHVwZGF0ZSBk ZXZfcHJpdi0+YWN0aXZlX2NydGNzICh3aGljaCByZXF1aXJlcwogICBfYWxsXyBDUlRDIGxvY2tz KS4KdjM6CiAtIEFsc28gY2FsY3VsYXRlIEREQiBkdXJpbmcgaW5pdGlhbCBodyByZWFkb3V0LCB0 byBwcmV2ZW50IHVzaW5nCiAgIGluY29ycmVjdCBiaW9zIHZhbHVlcy4gKE1hYXJ0ZW4pCgpTaWdu ZWQtb2ZmLWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICB8ICA1ICsrKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTggKysrKysrKysrCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMyArKwogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uYyAgICAgIHwgNzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDk3IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAppbmRleCA5N2ZkYWFmMDllNDQuLmQwNGZkZjRjZjYzMiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCkBAIC0zMzksNiArMzM5LDEwIEBAIHN0cnVjdCBpOTE1X2hvdHBsdWcgewogI2Rl ZmluZSBmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwgaW50ZWxfY3J0YykgXAogCWxpc3RfZm9yX2Vh Y2hfZW50cnkoaW50ZWxfY3J0YywgJmRldi0+bW9kZV9jb25maWcuY3J0Y19saXN0LCBiYXNlLmhl YWQpCiAKKyNkZWZpbmUgZm9yX2VhY2hfaW50ZWxfY3J0Y19tYXNrKGRldiwgaW50ZWxfY3J0Yywg Y3J0Y19tYXNrKSBcCisJbGlzdF9mb3JfZWFjaF9lbnRyeShpbnRlbF9jcnRjLCAmZGV2LT5tb2Rl X2NvbmZpZy5jcnRjX2xpc3QsIGJhc2UuaGVhZCkgXAorCQlmb3JfZWFjaF9pZiAoKGNydGNfbWFz aykgJiAoMSA8PCBkcm1fY3J0Y19pbmRleCgmaW50ZWxfY3J0Yy0+YmFzZSkpKQorCiAjZGVmaW5l IGZvcl9lYWNoX2ludGVsX2VuY29kZXIoZGV2LCBpbnRlbF9lbmNvZGVyKQkJXAogCWxpc3RfZm9y X2VhY2hfZW50cnkoaW50ZWxfZW5jb2RlciwJCQlcCiAJCQkgICAgJihkZXYpLT5tb2RlX2NvbmZp Zy5lbmNvZGVyX2xpc3QsCVwKQEAgLTU5NCw2ICs1OTgsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfZGlz cGxheV9mdW5jcyB7CiAJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdzdGF0 ZSk7CiAJdm9pZCAoKmluaXRpYWxfd2F0ZXJtYXJrcykoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNzdGF0ZSk7CiAJdm9pZCAoKm9wdGltaXplX3dhdGVybWFya3MpKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjc3RhdGUpOworCWludCAoKmNvbXB1dGVfZ2xvYmFsX3dhdGVybWFya3MpKHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7CiAJdm9pZCAoKnVwZGF0ZV93bSkoc3RydWN0IGRy bV9jcnRjICpjcnRjKTsKIAlpbnQgKCptb2Rlc2V0X2NhbGNfY2RjbGspKHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpzdGF0ZSk7CiAJdm9pZCAoKm1vZGVzZXRfY29tbWl0X2NkY2xrKShzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j CmluZGV4IDVjMmNmMjczODc5OC4uMjZiYThjN2QxYzc1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCkBAIC0xMzMxMCw2ICsxMzMxMCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfbW9k ZXNldF9jaGVja3Moc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogc3RhdGljIHZvaWQg Y2FsY193YXRlcm1hcmtfZGF0YShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CiAJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5kZXY7CisJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKTsKIAlzdHJ1Y3Qg ZHJtX2NydGMgKmNydGM7CiAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjc3RhdGU7CkBAIC0xMzMz OSw2ICsxMzM0MCwxMCBAQCBzdGF0aWMgdm9pZCBjYWxjX3dhdGVybWFya19kYXRhKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJICAgIHBzdGF0ZS0+Y3J0Y19oICE9IHBzdGF0ZS0+ c3JjX2ggPj4gMTYpCiAJCQlpbnRlbF9zdGF0ZS0+d21fY29uZmlnLnNwcml0ZXNfc2NhbGVkID0g dHJ1ZTsKIAl9CisKKwkvKiBJcyB0aGVyZSBwbGF0Zm9ybS1zcGVjaWZpYyB3YXRlcm1hcmsgaW5m b3JtYXRpb24gdG8gY2FsY3VsYXRlPyAqLworCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5jb21wdXRl X2dsb2JhbF93YXRlcm1hcmtzKQorCQlkZXZfcHJpdi0+ZGlzcGxheS5jb21wdXRlX2dsb2JhbF93 YXRlcm1hcmtzKHN0YXRlKTsKIH0KIAogLyoqCkBAIC0xMzcwNiw2ICsxMzcxMSwxOSBAQCBzdGF0 aWMgaW50IGludGVsX2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJaW50 ZWxfbW9kZXNldF92ZXJpZnlfY3J0YyhjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgY3J0Yy0+c3RhdGUp OwogCX0KIAorCS8qCisJICogVGVtcG9yYXJ5IHNhbml0eSBjaGVjazogbWFrZSBzdXJlIG91ciBw cmUtY29tcHV0ZWQgRERCIG1hdGNoZXMgdGhlCisJICogb25lIHdlIGFjdHVhbGx5IHdpbmQgdXAg cHJvZ3JhbW1pbmcuCisJICoKKwkgKiBOb3QgYSBncmVhdCBwbGFjZSB0byBwdXQgdGhpcywgYnV0 IHRoZSBlYXNpZXN0IHBsYWNlIHdlIGhhdmUgYWNjZXNzCisJICogdG8gYm90aCB0aGUgcHJlLWNv bXB1dGVkIGFuZCBmaW5hbCBEREInczsgd2UnbGwgYmUgcmVtb3ZpbmcgdGhpcworCSAqIGNoZWNr IGluIHRoZSBuZXh0IHBhdGNoIGFueXdheS4KKwkgKi8KKwlXQVJOKElTX0dFTjkoZGV2KSAmJgor CSAgICAgbWVtY21wKCZpbnRlbF9zdGF0ZS0+ZGRiLCAmZGV2X3ByaXYtPndtLnNrbF9yZXN1bHRz LmRkYiwKKwkJICAgIHNpemVvZihpbnRlbF9zdGF0ZS0+ZGRiKSksCisJICAgICAiUHJlLWNvbXB1 dGVkIEREQiBkb2VzIG5vdCBtYXRjaCBmaW5hbCBEREIhXG4iKTsKKwogCWlmIChpbnRlbF9zdGF0 ZS0+bW9kZXNldCkKIAkJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIFBPV0VSX0RP TUFJTl9NT0RFU0VUKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCBjMDFlZGYzOTA3 MjEuLmZhNTk3ODRiMzk5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTMxMSw2ICsz MTEsOSBAQCBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlIHsKIAkgKiBkb24ndCBib3RoZXIgY2Fs Y3VsYXRpbmcgaW50ZXJtZWRpYXRlIHdhdGVybWFya3MuCiAJICovCiAJYm9vbCBza2lwX2ludGVy bWVkaWF0ZV93bTsKKworCS8qIEdlbjkrIG9ubHkgKi8KKwlzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0 aW9uIGRkYjsKIH07CiAKIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSB7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYwppbmRleCA1NDBhYTdkM2EwZTIuLmFiOWMxOGRlZTU2NyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wbS5jCkBAIC0zODEyLDYgKzM4MTIsNzYgQEAgc3RhdGljIHZvaWQgc2tsX2NsZWFyX3dt KHN0cnVjdCBza2xfd21fdmFsdWVzICp3YXRlcm1hcmtzLCBlbnVtIHBpcGUgcGlwZSkKIAogfQog CitzdGF0aWMgaW50Citza2xfY29tcHV0ZV9kZGIoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2OworCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgaW50ZWxf YXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7 CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGM7CisJdW5zaWduZWQgcmVhbGxvY19waXBl cyA9IGRldl9wcml2LT5hY3RpdmVfY3J0Y3M7CisJaW50IHJldDsKKworCS8qCisJICogSWYgdGhl IG1vZGVzZXQgY2hhbmdlcyB3aGljaCBDUlRDJ3MgYXJlIGFjdGl2ZSwgd2UgbmVlZCB0bworCSAq IHJlY29tcHV0ZSB0aGUgRERCIGFsbG9jYXRpb24gZm9yICphbGwqIGFjdGl2ZSBwaXBlcywgZXZl bgorCSAqIHRob3NlIHRoYXQgd2VyZW4ndCBvdGhlcndpc2UgYmVpbmcgbW9kaWZpZWQgaW4gYW55 IHdheSBieSB0aGlzCisJICogYXRvbWljIGNvbW1pdC4gIER1ZSB0byB0aGUgc2hyaW5raW5nIG9m IHRoZSBwZXItcGlwZSBhbGxvY2F0aW9ucworCSAqIHdoZW4gbmV3IGFjdGl2ZSBDUlRDJ3MgYXJl IGFkZGVkLCBpdCdzIHBvc3NpYmxlIGZvciBhIHBpcGUgdGhhdAorCSAqIHdlIHdlcmUgYWxyZWFk eSB1c2luZyBhbmQgYXJlbid0IGNoYW5naW5nIGF0IGFsbCBoZXJlIHRvIHN1ZGRlbmx5CisJICog YmVjb21lIGludmFsaWQgaWYgaXRzIEREQiBuZWVkcyBleGNlZWRzIGl0cyBuZXcgYWxsb2NhdGlv bi4KKwkgKgorCSAqIE5vdGUgdGhhdCBpZiB3ZSB3aW5kIHVwIGRvaW5nIGEgZnVsbCBEREIgcmVj b21wdXRlLCB3ZSBjYW4ndCBsZXQKKwkgKiBhbnkgb3RoZXIgZGlzcGxheSB1cGRhdGVzIHJhY2Ug d2l0aCB0aGlzIHRyYW5zYWN0aW9uLCBzbyB3ZSBuZWVkCisJICogdG8gZ3JhYiB0aGUgbG9jayBv biAqYWxsKiBDUlRDJ3MuCisJICovCisJaWYgKGludGVsX3N0YXRlLT5hY3RpdmVfcGlwZV9jaGFu Z2VzIHx8CisJICAgIGludGVsX3N0YXRlLT5za2lwX2ludGVybWVkaWF0ZV93bSkKKwkJcmVhbGxv Y19waXBlcyA9IH4wOworCisJZm9yX2VhY2hfaW50ZWxfY3J0Y19tYXNrKGRldiwgaW50ZWxfY3J0 YywgcmVhbGxvY19waXBlcykgeworCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlOwor CisJCWNzdGF0ZSA9IGludGVsX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgaW50ZWxfY3J0 Yyk7CisJCWlmIChJU19FUlIoY3N0YXRlKSkKKwkJCXJldHVybiBQVFJfRVJSKGNzdGF0ZSk7CisK KwkJcmV0ID0gc2tsX2FsbG9jYXRlX3BpcGVfZGRiKGNzdGF0ZSwgJmludGVsX3N0YXRlLT5kZGIp OworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3Rh dGljIGludAorc2tsX2NvbXB1dGVfd20oc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQor eworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNzdGF0 ZTsKKwlpbnQgcmV0LCBpOworCWJvb2wgY2hhbmdlZCA9IGZhbHNlOworCisJLyoKKwkgKiBJZiB0 aGlzIHRyYW5zYWN0aW9uIGlzbid0IGFjdHVhbGx5IHRvdWNoaW5nIGFueSBDUlRDJ3MsIGRvbid0 CisJICogYm90aGVyIHdpdGggd2F0ZXJtYXJrIGNhbGN1bGF0aW9uLiAgTm90ZSB0aGF0IGlmIHdl IHBhc3MgdGhpcworCSAqIHRlc3QsIHdlJ3JlIGd1YXJhbnRlZWQgdG8gaG9sZCBhdCBsZWFzdCBv bmUgQ1JUQyBzdGF0ZSBtdXRleCwKKwkgKiB3aGljaCBtZWFucyB3ZSBjYW4gc2FmZWx5IHVzZSB2 YWx1ZXMgbGlrZSBkZXZfcHJpdi0+YWN0aXZlX2NydGNzCisJICogc2luY2UgYW55IHJhY2luZyBj b21taXRzIHRoYXQgd2FudCB0byB1cGRhdGUgdGhlbSB3b3VsZCBuZWVkIHRvCisJICogaG9sZCBf YWxsXyBDUlRDIHN0YXRlIG11dGV4ZXMuCisJICovCisJZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShz dGF0ZSwgY3J0YywgY3N0YXRlLCBpKQorCQljaGFuZ2VkID0gdHJ1ZTsKKwlpZiAoIWNoYW5nZWQp CisJCXJldHVybiAwOworCisJcmV0ID0gc2tsX2NvbXB1dGVfZGRiKHN0YXRlKTsKKwlpZiAocmV0 KQorCQlyZXR1cm4gcmV0OworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyB2b2lkIHNrbF91cGRh dGVfd20oc3RydWN0IGRybV9jcnRjICpjcnRjKQogewogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRl bF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKQEAgLTczNjgsNiArNzQzOCw3IEBAIHZvaWQg aW50ZWxfaW5pdF9wbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWlmIChJTlRFTF9JTkZPKGRl diktPmdlbiA+PSA5KSB7CiAJCXNrbF9zZXR1cF93bV9sYXRlbmN5KGRldik7CiAJCWRldl9wcml2 LT5kaXNwbGF5LnVwZGF0ZV93bSA9IHNrbF91cGRhdGVfd207CisJCWRldl9wcml2LT5kaXNwbGF5 LmNvbXB1dGVfZ2xvYmFsX3dhdGVybWFya3MgPSBza2xfY29tcHV0ZV93bTsKIAl9IGVsc2UgaWYg KEhBU19QQ0hfU1BMSVQoZGV2KSkgewogCQlpbGtfc2V0dXBfd21fbGF0ZW5jeShkZXYpOwogCi0t IAoyLjUuNQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=