From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michel Thierry Subject: [PATCH v6 03/19] drm/i915/gen8: Abstract PDP usage Date: Wed, 29 Jul 2015 17:23:47 +0100 Message-ID: <1438187043-34267-4-git-send-email-michel.thierry@intel.com> References: <1438187043-34267-1-git-send-email-michel.thierry@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id CC3DC6EC1F for ; Wed, 29 Jul 2015 09:24:08 -0700 (PDT) In-Reply-To: <1438187043-34267-1-git-send-email-michel.thierry@intel.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: akash.goel@intel.com List-Id: intel-gfx@lists.freedesktop.org VXAgdW50aWwgbm93LCBwcGd0dC0+cGRwIGhhcyBhbHdheXMgYmVlbiB0aGUgcm9vdCBvZiBvdXIg cGFnZSB0YWJsZXMuCkxlZ2FjeSAzMmIgYWRkcmVzc2VzIGFjdGVkIGxpa2UgaXQgaGFkIDEgUERQ IHdpdGggNCBQRFBFcy4KCkluIHByZXBhcmF0aW9uIGZvciA0IGxldmVsIHBhZ2UgdGFibGVzLCB3 ZSBuZWVkIHRvIHN0b3AgdXNlIHBwZ3R0LT5wZHAKZGlyZWN0bHkgdW5sZXNzIHdlIGtub3cgaXQn cyB3aGF0IHdlIHdhbnQuIFRoZSBmdXR1cmUgc3RydWN0dXJlIHdpbGwgdXNlCnBwZ3R0LT5wbWw0 IGZvciB0aGUgdG9wIGxldmVsLCBhbmQgdGhlIHBkcCBpcyBqdXN0IG9uZSBvZiB0aGUgZW50cmll cwpiZWluZyBwb2ludGVkIHRvIGJ5IGEgcG1sNGUuIFBsYWNlcyB3aGVyZSB0aGlzIGlzIG5vdCB5 ZXQgcG9zc2libGUgdXNlIGEKdGVtcG9yYWwgcGRwIGxvY2FsIHZhcmlhYmxlLgoKdjI6IFVwZGF0 ZWQgYWZ0ZXIgZHluYW1pYyBwYWdlIGFsbG9jYXRpb24gY2hhbmdlcy4KdjM6IFJlYmFzZSBhZnRl ciBzL3BhZ2VfdGFibGVzL3BhZ2VfdGFibGUvLgp2NDogUmViYXNlIGFmdGVyIGNoYW5nZXMgaW4g IkR5bmFtaWMgcGFnZSB0YWJsZSBhbGxvY2F0aW9ucyIgcGF0Y2guCnY1OiBSZWJhc2UgYWZ0ZXIg TWlrYSdzIHBwZ3R0IGNsZWFudXAgLyBzY3JhdGNoIG1lcmdlIHBhdGNoIHNlcmllcy4KdjY6IFJl YmFzZSBhZnRlciBmaW5hbCBtZXJnZWQgdmVyc2lvbiBvZiBNaWthJ3MgcHBndHQvc2NyYXRjaCBw YXRjaGVzLgp2NzogS2VlcCBwYWdldGFibGUgbWFwIGluLWxpbmUgKGFuZCBhdm9pZCB1bm5lY2Vz c2FyeSBmb3JfZWFjaF9wZGUKbG9vcHMpLCByZW1vdmUgcmVkdW5kYW50IHBwZ3R0IHBvaW50ZXIg aW4gX2FsbG9jX3BhZ2V0YWJzIChBa2FzaCkKdjg6IEZpeCB0ZXh0IGluZGVudGF0aW9uIGluIF9h bGxvY19wYWdldGFicy9wYWdlX2RpcmVjdG9yaWVzIChDaHJpcykKdjk6IERlZmVyIGdlbjhfYWxs b2NfdmFfcmFuZ2VfNGx2bCBkZWZpbml0aW9uIHVudGlsIDRsdmwgaXMgaW1wbGVtZW50ZWQsCmNs ZWFuLXVwIGdlbjhfcHBndHRfY2xlYW51cCBbcHVuIGludGVuZGVkXSAoQWthc2gpLgoKQ2M6IEFr YXNoIEdvZWwgPGFrYXNoLmdvZWxAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBCZW4gV2lkYXdz a3kgPGJlbkBid2lkYXdzay5uZXQ+ClNpZ25lZC1vZmYtYnk6IE1pY2hlbCBUaGllcnJ5IDxtaWNo ZWwudGhpZXJyeUBpbnRlbC5jb20+ICh2MispCi0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZ3R0LmMgfCA4NCArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCiAx IGZpbGUgY2hhbmdlZCwgNDQgaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ndHQuYwppbmRleCAyOGYzMjI3Li5iZDU2OTc5IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpAQCAtNjA3LDYgKzYwNyw3IEBAIHN0YXRpYyB2b2lkIGdl bjhfcHBndHRfY2xlYXJfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiB7CiAJ c3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0ID0KIAkJY29udGFpbmVyX29mKHZtLCBzdHJ1Y3Qg aTkxNV9od19wcGd0dCwgYmFzZSk7CisJc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnlfcG9pbnRl ciAqcGRwID0gJnBwZ3R0LT5wZHA7IC8qIEZJWE1FOiA0OGIgKi8KIAlnZW44X3B0ZV90ICpwdF92 YWRkciwgc2NyYXRjaF9wdGU7CiAJdW5zaWduZWQgcGRwZSA9IHN0YXJ0ID4+IEdFTjhfUERQRV9T SElGVCAmIEdFTjhfUERQRV9NQVNLOwogCXVuc2lnbmVkIHBkZSA9IHN0YXJ0ID4+IEdFTjhfUERF X1NISUZUICYgR0VOOF9QREVfTUFTSzsKQEAgLTYyMSwxMCArNjIyLDEwIEBAIHN0YXRpYyB2b2lk IGdlbjhfcHBndHRfY2xlYXJfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJ CXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZDsKIAkJc3RydWN0IGk5MTVfcGFnZV90YWJs ZSAqcHQ7CiAKLQkJaWYgKFdBUk5fT04oIXBwZ3R0LT5wZHAucGFnZV9kaXJlY3RvcnlbcGRwZV0p KQorCQlpZiAoV0FSTl9PTighcGRwLT5wYWdlX2RpcmVjdG9yeVtwZHBlXSkpCiAJCQlicmVhazsK IAotCQlwZCA9IHBwZ3R0LT5wZHAucGFnZV9kaXJlY3RvcnlbcGRwZV07CisJCXBkID0gcGRwLT5w YWdlX2RpcmVjdG9yeVtwZHBlXTsKIAogCQlpZiAoV0FSTl9PTighcGQtPnBhZ2VfdGFibGVbcGRl XSkpCiAJCQlicmVhazsKQEAgLTY2Miw2ICs2NjMsNyBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0 X2luc2VydF9lbnRyaWVzKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogewogCXN0cnVj dCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCA9CiAJCWNvbnRhaW5lcl9vZih2bSwgc3RydWN0IGk5MTVf aHdfcHBndHQsIGJhc2UpOworCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5X3BvaW50ZXIgKnBk cCA9ICZwcGd0dC0+cGRwOyAvKiBGSVhNRTogNDhiICovCiAJZ2VuOF9wdGVfdCAqcHRfdmFkZHI7 CiAJdW5zaWduZWQgcGRwZSA9IHN0YXJ0ID4+IEdFTjhfUERQRV9TSElGVCAmIEdFTjhfUERQRV9N QVNLOwogCXVuc2lnbmVkIHBkZSA9IHN0YXJ0ID4+IEdFTjhfUERFX1NISUZUICYgR0VOOF9QREVf TUFTSzsKQEAgLTY3NSw3ICs2NzcsNyBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2luc2VydF9l bnRyaWVzKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCQkJYnJlYWs7CiAKIAkJaWYg KHB0X3ZhZGRyID09IE5VTEwpIHsKLQkJCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZCA9 IHBwZ3R0LT5wZHAucGFnZV9kaXJlY3RvcnlbcGRwZV07CisJCQlzdHJ1Y3QgaTkxNV9wYWdlX2Rp cmVjdG9yeSAqcGQgPSBwZHAtPnBhZ2VfZGlyZWN0b3J5W3BkcGVdOwogCQkJc3RydWN0IGk5MTVf cGFnZV90YWJsZSAqcHQgPSBwZC0+cGFnZV90YWJsZVtwZGVdOwogCQkJcHRfdmFkZHIgPSBrbWFw X3B4KHB0KTsKIAkJfQpAQCAtNzU1LDI4ICs3NTcsMjkgQEAgc3RhdGljIHZvaWQgZ2VuOF9wcGd0 dF9jbGVhbnVwKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQogewogCXN0cnVjdCBpOTE1 X2h3X3BwZ3R0ICpwcGd0dCA9CiAJCWNvbnRhaW5lcl9vZih2bSwgc3RydWN0IGk5MTVfaHdfcHBn dHQsIGJhc2UpOworCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5X3BvaW50ZXIgKnBkcCA9ICZw cGd0dC0+cGRwOyAvKiBGSVhNRTogNDhiICovCisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBw Z3R0LT5iYXNlLmRldjsKIAlpbnQgaTsKIAotCWZvcl9lYWNoX3NldF9iaXQoaSwgcHBndHQtPnBk cC51c2VkX3BkcGVzLAotCQkJIEk5MTVfUERQRVNfUEVSX1BEUChwcGd0dC0+YmFzZS5kZXYpKSB7 Ci0JCWlmIChXQVJOX09OKCFwcGd0dC0+cGRwLnBhZ2VfZGlyZWN0b3J5W2ldKSkKKwlmb3JfZWFj aF9zZXRfYml0KGksIHBkcC0+dXNlZF9wZHBlcywgSTkxNV9QRFBFU19QRVJfUERQKGRldikpIHsK KwkJaWYgKFdBUk5fT04oIXBkcC0+cGFnZV9kaXJlY3RvcnlbaV0pKQogCQkJY29udGludWU7CiAK LQkJZ2VuOF9mcmVlX3BhZ2VfdGFibGVzKHBwZ3R0LT5iYXNlLmRldiwKLQkJCQkgICAgICBwcGd0 dC0+cGRwLnBhZ2VfZGlyZWN0b3J5W2ldKTsKLQkJZnJlZV9wZChwcGd0dC0+YmFzZS5kZXYsIHBw Z3R0LT5wZHAucGFnZV9kaXJlY3RvcnlbaV0pOworCQlnZW44X2ZyZWVfcGFnZV90YWJsZXMoZGV2 LCBwZHAtPnBhZ2VfZGlyZWN0b3J5W2ldKTsKKwkJZnJlZV9wZChkZXYsIHBkcC0+cGFnZV9kaXJl Y3RvcnlbaV0pOwogCX0KIAotCWZyZWVfcGRwKHBwZ3R0LT5iYXNlLmRldiwgJnBwZ3R0LT5wZHAp OworCWZyZWVfcGRwKGRldiwgcGRwKTsKKwogCWdlbjhfZnJlZV9zY3JhdGNoKHZtKTsKIH0KIAog LyoqCiAgKiBnZW44X3BwZ3R0X2FsbG9jX3BhZ2V0YWJzKCkgLSBBbGxvY2F0ZSBwYWdlIHRhYmxl cyBmb3IgVkEgcmFuZ2UuCi0gKiBAcHBndHQ6CU1hc3RlciBwcGd0dCBzdHJ1Y3R1cmUuCi0gKiBA cGQ6CQlQYWdlIGRpcmVjdG9yeSBmb3IgdGhpcyBhZGRyZXNzIHJhbmdlLgorICogQHZtOglNYXN0 ZXIgdm0gc3RydWN0dXJlLgorICogQHBkOglQYWdlIGRpcmVjdG9yeSBmb3IgdGhpcyBhZGRyZXNz IHJhbmdlLgogICogQHN0YXJ0OglTdGFydGluZyB2aXJ0dWFsIGFkZHJlc3MgdG8gYmVnaW4gYWxs b2NhdGlvbnMuCi0gKiBAbGVuZ3RoCVNpemUgb2YgdGhlIGFsbG9jYXRpb25zLgorICogQGxlbmd0 aDoJU2l6ZSBvZiB0aGUgYWxsb2NhdGlvbnMuCiAgKiBAbmV3X3B0czoJQml0bWFwIHNldCBieSBm dW5jdGlvbiB3aXRoIG5ldyBhbGxvY2F0aW9ucy4gTGlrZWx5IHVzZWQgYnkgdGhlCiAgKgkJY2Fs bGVyIHRvIGZyZWUgb24gZXJyb3IuCiAgKgpAQCAtNzg5LDEzICs3OTIsMTMgQEAgc3RhdGljIHZv aWQgZ2VuOF9wcGd0dF9jbGVhbnVwKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQogICoK ICAqIFJldHVybjogMCBpZiBzdWNjZXNzOyBuZWdhdGl2ZSBlcnJvciBjb2RlIG90aGVyd2lzZS4K ICAqLwotc3RhdGljIGludCBnZW44X3BwZ3R0X2FsbG9jX3BhZ2V0YWJzKHN0cnVjdCBpOTE1X2h3 X3BwZ3R0ICpwcGd0dCwKK3N0YXRpYyBpbnQgZ2VuOF9wcGd0dF9hbGxvY19wYWdldGFicyhzdHJ1 Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAkJCQkgICAgIHN0cnVjdCBpOTE1X3BhZ2VfZGly ZWN0b3J5ICpwZCwKIAkJCQkgICAgIHVpbnQ2NF90IHN0YXJ0LAogCQkJCSAgICAgdWludDY0X3Qg bGVuZ3RoLAogCQkJCSAgICAgdW5zaWduZWQgbG9uZyAqbmV3X3B0cykKIHsKLQlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gcHBndHQtPmJhc2UuZGV2OworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSB2bS0+ZGV2OwogCXN0cnVjdCBpOTE1X3BhZ2VfdGFibGUgKnB0OwogCXVpbnQ2NF90IHRlbXA7 CiAJdWludDMyX3QgcGRlOwpAQCAtODA0LDcgKzgwNyw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9wcGd0 dF9hbGxvY19wYWdldGFicyhzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsCiAJCS8qIERvbid0 IHJlYWxsb2NhdGUgcGFnZSB0YWJsZXMgKi8KIAkJaWYgKHRlc3RfYml0KHBkZSwgcGQtPnVzZWRf cGRlcykpIHsKIAkJCS8qIFNjcmF0Y2ggaXMgbmV2ZXIgYWxsb2NhdGVkIHRoaXMgd2F5ICovCi0J CQlXQVJOX09OKHB0ID09IHBwZ3R0LT5iYXNlLnNjcmF0Y2hfcHQpOworCQkJV0FSTl9PTihwdCA9 PSB2bS0+c2NyYXRjaF9wdCk7CiAJCQljb250aW51ZTsKIAkJfQogCkBAIC04MTIsNyArODE1LDcg QEAgc3RhdGljIGludCBnZW44X3BwZ3R0X2FsbG9jX3BhZ2V0YWJzKHN0cnVjdCBpOTE1X2h3X3Bw Z3R0ICpwcGd0dCwKIAkJaWYgKElTX0VSUihwdCkpCiAJCQlnb3RvIHVud2luZF9vdXQ7CiAKLQkJ Z2VuOF9pbml0aWFsaXplX3B0KCZwcGd0dC0+YmFzZSwgcHQpOworCQlnZW44X2luaXRpYWxpemVf cHQodm0sIHB0KTsKIAkJcGQtPnBhZ2VfdGFibGVbcGRlXSA9IHB0OwogCQlfX3NldF9iaXQocGRl LCBuZXdfcHRzKTsKIAl9CkBAIC04MjgsMTEgKzgzMSwxMSBAQCB1bndpbmRfb3V0OgogCiAvKioK ICAqIGdlbjhfcHBndHRfYWxsb2NfcGFnZV9kaXJlY3RvcmllcygpIC0gQWxsb2NhdGUgcGFnZSBk aXJlY3RvcmllcyBmb3IgVkEgcmFuZ2UuCi0gKiBAcHBndHQ6CU1hc3RlciBwcGd0dCBzdHJ1Y3R1 cmUuCisgKiBAdm06CU1hc3RlciB2bSBzdHJ1Y3R1cmUuCiAgKiBAcGRwOglQYWdlIGRpcmVjdG9y eSBwb2ludGVyIGZvciB0aGlzIGFkZHJlc3MgcmFuZ2UuCiAgKiBAc3RhcnQ6CVN0YXJ0aW5nIHZp cnR1YWwgYWRkcmVzcyB0byBiZWdpbiBhbGxvY2F0aW9ucy4KLSAqIEBsZW5ndGgJU2l6ZSBvZiB0 aGUgYWxsb2NhdGlvbnMuCi0gKiBAbmV3X3BkcwlCaXRtYXAgc2V0IGJ5IGZ1bmN0aW9uIHdpdGgg bmV3IGFsbG9jYXRpb25zLiBMaWtlbHkgdXNlZCBieSB0aGUKKyAqIEBsZW5ndGg6CVNpemUgb2Yg dGhlIGFsbG9jYXRpb25zLgorICogQG5ld19wZHM6CUJpdG1hcCBzZXQgYnkgZnVuY3Rpb24gd2l0 aCBuZXcgYWxsb2NhdGlvbnMuIExpa2VseSB1c2VkIGJ5IHRoZQogICoJCWNhbGxlciB0byBmcmVl IG9uIGVycm9yLgogICoKICAqIEFsbG9jYXRlIHRoZSByZXF1aXJlZCBudW1iZXIgb2YgcGFnZSBk aXJlY3RvcmllcyBzdGFydGluZyBhdCB0aGUgcGRlIGluZGV4IG9mCkBAIC04NDksMTMgKzg1Miwx NCBAQCB1bndpbmRfb3V0OgogICoKICAqIFJldHVybjogMCBpZiBzdWNjZXNzOyBuZWdhdGl2ZSBl cnJvciBjb2RlIG90aGVyd2lzZS4KICAqLwotc3RhdGljIGludCBnZW44X3BwZ3R0X2FsbG9jX3Bh Z2VfZGlyZWN0b3JpZXMoc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LAotCQkJCSAgICAgc3Ry dWN0IGk5MTVfcGFnZV9kaXJlY3RvcnlfcG9pbnRlciAqcGRwLAotCQkJCSAgICAgdWludDY0X3Qg c3RhcnQsCi0JCQkJICAgICB1aW50NjRfdCBsZW5ndGgsCi0JCQkJICAgICB1bnNpZ25lZCBsb25n ICpuZXdfcGRzKQorc3RhdGljIGludAorZ2VuOF9wcGd0dF9hbGxvY19wYWdlX2RpcmVjdG9yaWVz KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAorCQkJCSAgc3RydWN0IGk5MTVfcGFnZV9k aXJlY3RvcnlfcG9pbnRlciAqcGRwLAorCQkJCSAgdWludDY0X3Qgc3RhcnQsCisJCQkJICB1aW50 NjRfdCBsZW5ndGgsCisJCQkJICB1bnNpZ25lZCBsb25nICpuZXdfcGRzKQogewotCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBwcGd0dC0+YmFzZS5kZXY7CisJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IHZtLT5kZXY7CiAJc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkOwogCXVpbnQ2NF90 IHRlbXA7CiAJdWludDMyX3QgcGRwZTsKQEAgLTg3MSw3ICs4NzUsNyBAQCBzdGF0aWMgaW50IGdl bjhfcHBndHRfYWxsb2NfcGFnZV9kaXJlY3RvcmllcyhzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBn dHQsCiAJCWlmIChJU19FUlIocGQpKQogCQkJZ290byB1bndpbmRfb3V0OwogCi0JCWdlbjhfaW5p dGlhbGl6ZV9wZCgmcHBndHQtPmJhc2UsIHBkKTsKKwkJZ2VuOF9pbml0aWFsaXplX3BkKHZtLCBw ZCk7CiAJCXBkcC0+cGFnZV9kaXJlY3RvcnlbcGRwZV0gPSBwZDsKIAkJX19zZXRfYml0KHBkcGUs IG5ld19wZHMpOwogCX0KQEAgLTk0NywxOCArOTUxLDE5IEBAIHN0YXRpYyB2b2lkIG1hcmtfdGxi c19kaXJ0eShzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQpCiB9CiAKIHN0YXRpYyBpbnQgZ2Vu OF9hbGxvY192YV9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKLQkJCSAgICAg ICB1aW50NjRfdCBzdGFydCwKLQkJCSAgICAgICB1aW50NjRfdCBsZW5ndGgpCisJCQkgICAgICAg dWludDY0X3Qgc3RhcnQsIHVpbnQ2NF90IGxlbmd0aCkKIHsKIAlzdHJ1Y3QgaTkxNV9od19wcGd0 dCAqcHBndHQgPQogCQljb250YWluZXJfb2Yodm0sIHN0cnVjdCBpOTE1X2h3X3BwZ3R0LCBiYXNl KTsKIAl1bnNpZ25lZCBsb25nICpuZXdfcGFnZV9kaXJzLCAqKm5ld19wYWdlX3RhYmxlczsKKwlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gdm0tPmRldjsKKwlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVj dG9yeV9wb2ludGVyICpwZHAgPSAmcHBndHQtPnBkcDsgLyogRklYTUU6IDQ4YiAqLwogCXN0cnVj dCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZDsKIAljb25zdCB1aW50NjRfdCBvcmlnX3N0YXJ0ID0g c3RhcnQ7CiAJY29uc3QgdWludDY0X3Qgb3JpZ19sZW5ndGggPSBsZW5ndGg7CiAJdWludDY0X3Qg dGVtcDsKIAl1aW50MzJfdCBwZHBlOwotCXVpbnQzMl90IHBkcGVzID0gSTkxNV9QRFBFU19QRVJf UERQKHBwZ3R0LT5iYXNlLmRldik7CisJdWludDMyX3QgcGRwZXMgPSBJOTE1X1BEUEVTX1BFUl9Q RFAoZGV2KTsKIAlpbnQgcmV0OwogCiAJLyogV3JhcCBpcyBuZXZlciBva2F5IHNpbmNlIHdlIGNh biBvbmx5IHJlcHJlc2VudCA0OGIsIGFuZCB3ZSBkb24ndApAQCAtOTY3LDcgKzk3Miw3IEBAIHN0 YXRpYyBpbnQgZ2VuOF9hbGxvY192YV9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2 bSwKIAlpZiAoV0FSTl9PTihzdGFydCArIGxlbmd0aCA8IHN0YXJ0KSkKIAkJcmV0dXJuIC1FTk9E RVY7CiAKLQlpZiAoV0FSTl9PTihzdGFydCArIGxlbmd0aCA+IHBwZ3R0LT5iYXNlLnRvdGFsKSkK KwlpZiAoV0FSTl9PTihzdGFydCArIGxlbmd0aCA+IHZtLT50b3RhbCkpCiAJCXJldHVybiAtRU5P REVWOwogCiAJcmV0ID0gYWxsb2NfZ2VuOF90ZW1wX2JpdG1hcHMoJm5ld19wYWdlX2RpcnMsICZu ZXdfcGFnZV90YWJsZXMsIHBkcGVzKTsKQEAgLTk3NSwxNiArOTgwLDE2IEBAIHN0YXRpYyBpbnQg Z2VuOF9hbGxvY192YV9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAkJcmV0 dXJuIHJldDsKIAogCS8qIERvIHRoZSBhbGxvY2F0aW9ucyBmaXJzdCBzbyB3ZSBjYW4gZWFzaWx5 IGJhaWwgb3V0ICovCi0JcmV0ID0gZ2VuOF9wcGd0dF9hbGxvY19wYWdlX2RpcmVjdG9yaWVzKHBw Z3R0LCAmcHBndHQtPnBkcCwgc3RhcnQsIGxlbmd0aCwKLQkJCQkJbmV3X3BhZ2VfZGlycyk7CisJ cmV0ID0gZ2VuOF9wcGd0dF9hbGxvY19wYWdlX2RpcmVjdG9yaWVzKHZtLCBwZHAsIHN0YXJ0LCBs ZW5ndGgsCisJCQkJCQluZXdfcGFnZV9kaXJzKTsKIAlpZiAocmV0KSB7CiAJCWZyZWVfZ2VuOF90 ZW1wX2JpdG1hcHMobmV3X3BhZ2VfZGlycywgbmV3X3BhZ2VfdGFibGVzLCBwZHBlcyk7CiAJCXJl dHVybiByZXQ7CiAJfQogCiAJLyogRm9yIGV2ZXJ5IHBhZ2UgZGlyZWN0b3J5IHJlZmVyZW5jZWQs IGFsbG9jYXRlIHBhZ2UgdGFibGVzICovCi0JZ2VuOF9mb3JfZWFjaF9wZHBlKHBkLCAmcHBndHQt PnBkcCwgc3RhcnQsIGxlbmd0aCwgdGVtcCwgcGRwZSkgewotCQlyZXQgPSBnZW44X3BwZ3R0X2Fs bG9jX3BhZ2V0YWJzKHBwZ3R0LCBwZCwgc3RhcnQsIGxlbmd0aCwKKwlnZW44X2Zvcl9lYWNoX3Bk cGUocGQsIHBkcCwgc3RhcnQsIGxlbmd0aCwgdGVtcCwgcGRwZSkgeworCQlyZXQgPSBnZW44X3Bw Z3R0X2FsbG9jX3BhZ2V0YWJzKHZtLCBwZCwgc3RhcnQsIGxlbmd0aCwKIAkJCQkJCW5ld19wYWdl X3RhYmxlc1twZHBlXSk7CiAJCWlmIChyZXQpCiAJCQlnb3RvIGVycl9vdXQ7CkBAIC05OTUsNyAr MTAwMCw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9hbGxvY192YV9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRy ZXNzX3NwYWNlICp2bSwKIAogCS8qIEFsbG9jYXRpb25zIGhhdmUgY29tcGxldGVkIHN1Y2Nlc3Nm dWxseSwgc28gc2V0IHRoZSBiaXRtYXBzLCBhbmQgZG8KIAkgKiB0aGUgbWFwcGluZ3MuICovCi0J Z2VuOF9mb3JfZWFjaF9wZHBlKHBkLCAmcHBndHQtPnBkcCwgc3RhcnQsIGxlbmd0aCwgdGVtcCwg cGRwZSkgeworCWdlbjhfZm9yX2VhY2hfcGRwZShwZCwgcGRwLCBzdGFydCwgbGVuZ3RoLCB0ZW1w LCBwZHBlKSB7CiAJCWdlbjhfcGRlX3QgKmNvbnN0IHBhZ2VfZGlyZWN0b3J5ID0ga21hcF9weChw ZCk7CiAJCXN0cnVjdCBpOTE1X3BhZ2VfdGFibGUgKnB0OwogCQl1aW50NjRfdCBwZF9sZW4gPSBs ZW5ndGg7CkBAIC0xMDI4LDggKzEwMzMsNyBAQCBzdGF0aWMgaW50IGdlbjhfYWxsb2NfdmFfcmFu Z2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJCX0KIAogCQlrdW5tYXBfcHgocHBn dHQsIHBhZ2VfZGlyZWN0b3J5KTsKLQotCQlfX3NldF9iaXQocGRwZSwgcHBndHQtPnBkcC51c2Vk X3BkcGVzKTsKKwkJX19zZXRfYml0KHBkcGUsIHBkcC0+dXNlZF9wZHBlcyk7CiAJfQogCiAJZnJl ZV9nZW44X3RlbXBfYml0bWFwcyhuZXdfcGFnZV9kaXJzLCBuZXdfcGFnZV90YWJsZXMsIHBkcGVz KTsKQEAgLTEwMzksMTEgKzEwNDMsMTEgQEAgc3RhdGljIGludCBnZW44X2FsbG9jX3ZhX3Jhbmdl KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogZXJyX291dDoKIAl3aGlsZSAocGRwZS0t KSB7CiAJCWZvcl9lYWNoX3NldF9iaXQodGVtcCwgbmV3X3BhZ2VfdGFibGVzW3BkcGVdLCBJOTE1 X1BERVMpCi0JCQlmcmVlX3B0KHZtLT5kZXYsIHBwZ3R0LT5wZHAucGFnZV9kaXJlY3RvcnlbcGRw ZV0tPnBhZ2VfdGFibGVbdGVtcF0pOworCQkJZnJlZV9wdChkZXYsIHBkcC0+cGFnZV9kaXJlY3Rv cnlbcGRwZV0tPnBhZ2VfdGFibGVbdGVtcF0pOwogCX0KIAogCWZvcl9lYWNoX3NldF9iaXQocGRw ZSwgbmV3X3BhZ2VfZGlycywgcGRwZXMpCi0JCWZyZWVfcGQodm0tPmRldiwgcHBndHQtPnBkcC5w YWdlX2RpcmVjdG9yeVtwZHBlXSk7CisJCWZyZWVfcGQoZGV2LCBwZHAtPnBhZ2VfZGlyZWN0b3J5 W3BkcGVdKTsKIAogCWZyZWVfZ2VuOF90ZW1wX2JpdG1hcHMobmV3X3BhZ2VfZGlycywgbmV3X3Bh Z2VfdGFibGVzLCBwZHBlcyk7CiAJbWFya190bGJzX2RpcnR5KHBwZ3R0KTsKLS0gCjIuNC41Cgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=