From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH 15/25] drm/i915: Move fbc state into dev_priv.fbc Date: Wed, 18 Jun 2014 20:58:48 +0300 Message-ID: <1403114338-30513-16-git-send-email-ville.syrjala@linux.intel.com> References: <1403114338-30513-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 67A356E74D for ; Wed, 18 Jun 2014 10:59:51 -0700 (PDT) In-Reply-To: <1403114338-30513-1-git-send-email-ville.syrjala@linux.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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClNp Z25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5j b20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgIDEwICstLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgICAzICstCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcG0uYyAgICAgIHwgMTMwICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgfCAgIDIgKy0KIDUgZmlsZXMg Y2hhbmdlZCwgODEgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKaW5kZXggYzkyMjkyYS4uZTg4YmFlZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o CkBAIC00MTAsNyArNDEwLDcgQEAgc3RydWN0IGRwbGw7CiAKIHN0cnVjdCBkcm1faTkxNV9kaXNw bGF5X2Z1bmNzIHsKIAlib29sICgqZmJjX2VuYWJsZWQpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp OwotCXZvaWQgKCplbmFibGVfZmJjKShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOworCXZvaWQgKCpl bmFibGVfZmJjKShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIAl2b2lkICgqZGlzYWJsZV9mYmMp KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogCWludCAoKmdldF9kaXNwbGF5X2Nsb2NrX3NwZWVk KShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIAlpbnQgKCpnZXRfZmlmb19zaXplKShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBpbnQgcGxhbmUpOwpAQCAtNjAwLDE0ICs2MDAsMTYgQEAgc3RydWN0 IGludGVsX2NvbnRleHQgewogfTsKIAogc3RydWN0IGk5MTVfZmJjIHsKKwlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YzsKIAl1bnNpZ25lZCBsb25nIHNpemU7Ci0JdW5zaWduZWQgaW50IGZiX2lkOwot CWVudW0gcGxhbmUgcGxhbmU7Ci0JaW50IHk7CisJdWludDMyX3QgcGl4ZWxfZm9ybWF0OworCWlu dCBmZW5jZV9yZWcsIHBpdGNoLCB5OwogCiAJc3RydWN0IGRybV9tbV9ub2RlICpjb21wcmVzc2Vk X2ZiOwogCXN0cnVjdCBkcm1fbW1fbm9kZSAqY29tcHJlc3NlZF9sbGI7CiAKKwlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqOworCiAJc3RydWN0IGludGVsX2ZiY193b3JrIHsKIAkJc3Ry dWN0IGRlbGF5ZWRfd29yayB3b3JrOwogCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggNTNlZDRhOS4uYmVlYWQyNCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtNDAxMCw3ICs0MDEwLDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfY3J0Y19kaXNhYmxlX3BsYW5lcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAKIAlp bnRlbF9jcnRjX3dhaXRfZm9yX3BlbmRpbmdfZmxpcHMoY3J0Yyk7CiAKLQlpZiAoZGV2X3ByaXYt PmZiYy5wbGFuZSA9PSBwbGFuZSkKKwlpZiAoZGV2X3ByaXYtPmZiYy5jcnRjID09IGludGVsX2Ny dGMpCiAJCWludGVsX2Rpc2FibGVfZmJjKGRldik7CiAKIAloc3dfZGlzYWJsZV9pcHMoaW50ZWxf Y3J0Yyk7CkBAIC0xMjMyMCw2ICsxMjMyMCw3IEBAIHZvaWQgaW50ZWxfbW9kZXNldF9pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCSAgICAgIElOVEVMX0lORk8oZGV2KS0+bnVtX3BpcGVz ID4gMSA/ICJzIiA6ICIiKTsKIAogCWludGVsX2lwc19pbml0KGRldik7CisJaW50ZWxfZmJjX2lu aXQoZGV2KTsKIAogCWZvcl9lYWNoX3BpcGUocGlwZSkgewogCQlpbnRlbF9jcnRjX2luaXQoZGV2 LCBwaXBlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggN2E0OGVkYS4uMWRhMWY3YiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTk2MSw2ICs5NjEsNyBAQCB2b2lkIGludGVs X3BtX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogYm9vbCBpbnRlbF9mYmNfZW5hYmxl ZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIHZvaWQgaW50ZWxfZGlzYWJsZV9mYmMoc3RydWN0 IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIGludGVsX3VwZGF0ZV9mYmMoc3RydWN0IGRybV9kZXZp Y2UgKmRldik7Cit2b2lkIGludGVsX2ZiY19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwog dm9pZCBpbnRlbF9ncHVfaXBzX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KTsKIHZvaWQgaW50ZWxfZ3B1X2lwc190ZWFyZG93bih2b2lkKTsKIGludCBpbnRlbF9wb3dlcl9k b21haW5zX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKik7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYwppbmRleCA3NzcxNjdlLi42YjIyZTQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKQEAg LTg4LDIxICs4OCwxNyBAQCBzdGF0aWMgdm9pZCBpOHh4X2Rpc2FibGVfZmJjKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCiAJRFJNX0RFQlVHX0tNUygiZGlzYWJsZWQgRkJDXG4iKTsKIH0KIAotc3Rh dGljIHZvaWQgaTh4eF9lbmFibGVfZmJjKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKK3N0YXRpYyB2 b2lkIGk4eHhfZW5hYmxlX2ZiYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewotCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9 IGNydGMtPnByaW1hcnktPmZiOwotCXN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciAqaW50ZWxfZmIg PSB0b19pbnRlbF9mcmFtZWJ1ZmZlcihmYik7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaiA9IGludGVsX2ZiLT5vYmo7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0 b19pbnRlbF9jcnRjKGNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gZGV2X3ByaXYt PmZiYy5jcnRjOwogCWludCBjZmJfcGl0Y2g7CiAJaW50IGk7CiAJdTMyIGZiY19jdGw7CiAKIAlj ZmJfcGl0Y2ggPSBkZXZfcHJpdi0+ZmJjLnNpemUgLyBGQkNfTExfU0laRTsKLQlpZiAoZmItPnBp dGNoZXNbMF0gPCBjZmJfcGl0Y2gpCi0JCWNmYl9waXRjaCA9IGZiLT5waXRjaGVzWzBdOworCWlm IChkZXZfcHJpdi0+ZmJjLnBpdGNoIDwgY2ZiX3BpdGNoKQorCQljZmJfcGl0Y2ggPSBkZXZfcHJp di0+ZmJjLnBpdGNoOwogCiAJLyogRkJDX0NUTCB3YW50cyAzMkIgb3IgNjRCIHVuaXRzICovCiAJ aWYgKElTX0dFTjIoZGV2KSkKQEAgLTExOSw5ICsxMTUsOSBAQCBzdGF0aWMgdm9pZCBpOHh4X2Vu YWJsZV9mYmMoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCiAJCS8qIFNldCBpdCB1cC4uLiAqLwog CQlmYmNfY3RsMiA9IEZCQ19DVExfRkVOQ0VfREJMIHwgRkJDX0NUTF9JRExFX0lNTSB8IEZCQ19D VExfQ1BVX0ZFTkNFOwotCQlmYmNfY3RsMiB8PSBGQkNfQ1RMX1BMQU5FKGludGVsX2NydGMtPnBs YW5lKTsKKwkJZmJjX2N0bDIgfD0gRkJDX0NUTF9QTEFORShjcnRjLT5wbGFuZSk7CiAJCUk5MTVf V1JJVEUoRkJDX0NPTlRST0wyLCBmYmNfY3RsMik7Ci0JCUk5MTVfV1JJVEUoRkJDX0ZFTkNFX09G RiwgY3J0Yy0+eSk7CisJCUk5MTVfV1JJVEUoRkJDX0ZFTkNFX09GRiwgZGV2X3ByaXYtPmZiYy55 KTsKIAl9CiAKIAkvKiBlbmFibGUgaXQuLi4gKi8KQEAgLTEzMSwxMSArMTI3LDExIEBAIHN0YXRp YyB2b2lkIGk4eHhfZW5hYmxlX2ZiYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJaWYgKElTX0k5 NDVHTShkZXYpKQogCQlmYmNfY3RsIHw9IEZCQ19DVExfQzNfSURMRTsgLyogOTQ1IG5lZWRzIHNw ZWNpYWwgU1IgaGFuZGxpbmcgKi8KIAlmYmNfY3RsIHw9IChjZmJfcGl0Y2ggJiAweGZmKSA8PCBG QkNfQ1RMX1NUUklERV9TSElGVDsKLQlmYmNfY3RsIHw9IG9iai0+ZmVuY2VfcmVnOworCWZiY19j dGwgfD0gZGV2X3ByaXYtPmZiYy5mZW5jZV9yZWc7CiAJSTkxNV9XUklURShGQkNfQ09OVFJPTCwg ZmJjX2N0bCk7CiAKIAlEUk1fREVCVUdfS01TKCJlbmFibGVkIEZCQywgcGl0Y2ggJWQsIHlvZmYg JWQsIHBsYW5lICVjXG4iLAotCQkgICAgICBjZmJfcGl0Y2gsIGNydGMtPnksIHBsYW5lX25hbWUo aW50ZWxfY3J0Yy0+cGxhbmUpKTsKKwkJICAgICAgY2ZiX3BpdGNoLCBkZXZfcHJpdi0+ZmJjLnks IHBsYW5lX25hbWUoY3J0Yy0+cGxhbmUpKTsKIH0KIAogc3RhdGljIGJvb2wgaTh4eF9mYmNfZW5h YmxlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQpAQCAtMTQ1LDI5ICsxNDEsMjUgQEAgc3RhdGlj IGJvb2wgaTh4eF9mYmNfZW5hYmxlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXJldHVybiBJ OTE1X1JFQUQoRkJDX0NPTlRST0wpICYgRkJDX0NUTF9FTjsKIH0KIAotc3RhdGljIHZvaWQgZzR4 X2VuYWJsZV9mYmMoc3RydWN0IGRybV9jcnRjICpjcnRjKQorc3RhdGljIHZvaWQgZzR4X2VuYWJs ZV9mYmMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBjcnRjLT5wcmltYXJ5 LT5mYjsKLQlzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmludGVsX2ZiID0gdG9faW50ZWxfZnJh bWVidWZmZXIoZmIpOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9m Yi0+b2JqOwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IGRldl9wcml2LT5mYmMuY3J0YzsKIAl1 MzIgZHBmY19jdGw7CiAKLQlkcGZjX2N0bCA9IERQRkNfQ1RMX1BMQU5FKGludGVsX2NydGMtPnBs YW5lKSB8IERQRkNfU1JfRU47Ci0JaWYgKGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhlbF9m b3JtYXQsIDApID09IDIpCisJZHBmY19jdGwgPSBEUEZDX0NUTF9QTEFORShjcnRjLT5wbGFuZSkg fCBEUEZDX1NSX0VOOworCWlmIChkcm1fZm9ybWF0X3BsYW5lX2NwcChkZXZfcHJpdi0+ZmJjLnBp eGVsX2Zvcm1hdCwgMCkgPT0gMikKIAkJZHBmY19jdGwgfD0gRFBGQ19DVExfTElNSVRfMlg7CiAJ ZWxzZQogCQlkcGZjX2N0bCB8PSBEUEZDX0NUTF9MSU1JVF8xWDsKLQlkcGZjX2N0bCB8PSBEUEZD X0NUTF9GRU5DRV9FTiB8IG9iai0+ZmVuY2VfcmVnOworCWRwZmNfY3RsIHw9IERQRkNfQ1RMX0ZF TkNFX0VOIHwgZGV2X3ByaXYtPmZiYy5mZW5jZV9yZWc7CiAKLQlJOTE1X1dSSVRFKERQRkNfRkVO Q0VfWU9GRiwgY3J0Yy0+eSk7CisJSTkxNV9XUklURShEUEZDX0ZFTkNFX1lPRkYsIGRldl9wcml2 LT5mYmMueSk7CiAKIAkvKiBlbmFibGUgaXQuLi4gKi8KIAlJOTE1X1dSSVRFKERQRkNfQ09OVFJP TCwgZHBmY19jdGwgfCBEUEZDX0NUTF9FTik7CiAKLQlEUk1fREVCVUdfS01TKCJlbmFibGVkIGZi YyBvbiBwbGFuZSAlY1xuIiwgcGxhbmVfbmFtZShpbnRlbF9jcnRjLT5wbGFuZSkpOworCURSTV9E RUJVR19LTVMoImVuYWJsZWQgZmJjIG9uIHBsYW5lICVjXG4iLCBwbGFuZV9uYW1lKGNydGMtPnBs YW5lKSk7CiB9CiAKIHN0YXRpYyB2b2lkIGc0eF9kaXNhYmxlX2ZiYyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQpAQCAtMjE3LDM4ICsyMDksMzUgQEAgc3RhdGljIHZvaWQgc2FuZHlicmlkZ2VfYmxp dF9mYmNfdXBkYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJZ2VuNl9ndF9mb3JjZV93YWtl X3B1dChkZXZfcHJpdiwgRk9SQ0VXQUtFX01FRElBKTsKIH0KIAotc3RhdGljIHZvaWQgaXJvbmxh a2VfZW5hYmxlX2ZiYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCitzdGF0aWMgdm9pZCBpcm9ubGFr ZV9lbmFibGVfZmJjKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7Ci0Jc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGNydGMtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gY3J0Yy0+ cHJpbWFyeS0+ZmI7Ci0Jc3RydWN0IGludGVsX2ZyYW1lYnVmZmVyICppbnRlbF9mYiA9IHRvX2lu dGVsX2ZyYW1lYnVmZmVyKGZiKTsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0g aW50ZWxfZmItPm9iajsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSBkZXZfcHJpdi0+ZmJjLmNy dGM7CiAJdTMyIGRwZmNfY3RsOwogCi0JZHBmY19jdGwgPSBEUEZDX0NUTF9QTEFORShpbnRlbF9j cnRjLT5wbGFuZSk7Ci0JaWYgKGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQs IDApID09IDIpCisJZHBmY19jdGwgPSBEUEZDX0NUTF9QTEFORShjcnRjLT5wbGFuZSk7CisJaWYg KGRybV9mb3JtYXRfcGxhbmVfY3BwKGRldl9wcml2LT5mYmMucGl4ZWxfZm9ybWF0LCAwKSA9PSAy KQogCQlkcGZjX2N0bCB8PSBEUEZDX0NUTF9MSU1JVF8yWDsKIAllbHNlCiAJCWRwZmNfY3RsIHw9 IERQRkNfQ1RMX0xJTUlUXzFYOwogCWRwZmNfY3RsIHw9IERQRkNfQ1RMX0ZFTkNFX0VOOwogCWlm IChJU19HRU41KGRldikpCi0JCWRwZmNfY3RsIHw9IG9iai0+ZmVuY2VfcmVnOworCQlkcGZjX2N0 bCB8PSBkZXZfcHJpdi0+ZmJjLmZlbmNlX3JlZzsKIAotCUk5MTVfV1JJVEUoSUxLX0RQRkNfRkVO Q0VfWU9GRiwgY3J0Yy0+eSk7Ci0JSTkxNV9XUklURShJTEtfRkJDX1JUX0JBU0UsIGk5MTVfZ2Vt X29ial9nZ3R0X29mZnNldChvYmopIHwgSUxLX0ZCQ19SVF9WQUxJRCk7CisJSTkxNV9XUklURShJ TEtfRFBGQ19GRU5DRV9ZT0ZGLCBkZXZfcHJpdi0+ZmJjLnkpOworCUk5MTVfV1JJVEUoSUxLX0ZC Q19SVF9CQVNFLCBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoZGV2X3ByaXYtPmZiYy5vYmopIHwK KwkJICAgSUxLX0ZCQ19SVF9WQUxJRCk7CiAJLyogZW5hYmxlIGl0Li4uICovCiAJSTkxNV9XUklU RShJTEtfRFBGQ19DT05UUk9MLCBkcGZjX2N0bCB8IERQRkNfQ1RMX0VOKTsKIAogCWlmIChJU19H RU42KGRldikpIHsKIAkJSTkxNV9XUklURShTTkJfRFBGQ19DVExfU0EsCi0JCQkgICBTTkJfQ1BV X0ZFTkNFX0VOQUJMRSB8IG9iai0+ZmVuY2VfcmVnKTsKLQkJSTkxNV9XUklURShEUEZDX0NQVV9G RU5DRV9PRkZTRVQsIGNydGMtPnkpOworCQkJICAgU05CX0NQVV9GRU5DRV9FTkFCTEUgfCBkZXZf cHJpdi0+ZmJjLmZlbmNlX3JlZyk7CisJCUk5MTVfV1JJVEUoRFBGQ19DUFVfRkVOQ0VfT0ZGU0VU LCBkZXZfcHJpdi0+ZmJjLnkpOwogCQlzYW5keWJyaWRnZV9ibGl0X2ZiY191cGRhdGUoZGV2KTsK IAl9CiAKLQlEUk1fREVCVUdfS01TKCJlbmFibGVkIGZiYyBvbiBwbGFuZSAlY1xuIiwgcGxhbmVf bmFtZShpbnRlbF9jcnRjLT5wbGFuZSkpOworCURSTV9ERUJVR19LTVMoImVuYWJsZWQgZmJjIG9u IHBsYW5lICVjXG4iLCBwbGFuZV9uYW1lKGNydGMtPnBsYW5lKSk7CiB9CiAKIHN0YXRpYyB2b2lk IGlyb25sYWtlX2Rpc2FibGVfZmJjKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCkBAIC0yNzMsMTgg KzI2MiwxNCBAQCBzdGF0aWMgYm9vbCBpcm9ubGFrZV9mYmNfZW5hYmxlZChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogCXJldHVybiBJOTE1X1JFQUQoSUxLX0RQRkNfQ09OVFJPTCkgJiBEUEZDX0NU TF9FTjsKIH0KIAotc3RhdGljIHZvaWQgZ2VuN19lbmFibGVfZmJjKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YykKK3N0YXRpYyB2b2lkIGdlbjdfZW5hYmxlX2ZiYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYiA9IGNydGMtPnByaW1hcnktPmZiOwotCXN0cnVjdCBpbnRlbF9mcmFtZWJ1 ZmZlciAqaW50ZWxfZmIgPSB0b19pbnRlbF9mcmFtZWJ1ZmZlcihmYik7Ci0Jc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiLT5vYmo7Ci0Jc3RydWN0IGludGVsX2NydGMg KmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gZGV2X3ByaXYtPmZiYy5jcnRjOwogCXUzMiBkcGZjX2N0bDsKIAotCWRwZmNfY3RsID0g SVZCX0RQRkNfQ1RMX1BMQU5FKGludGVsX2NydGMtPnBsYW5lKTsKLQlpZiAoZHJtX2Zvcm1hdF9w bGFuZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwgMCkgPT0gMikKKwlkcGZjX2N0bCA9IElWQl9EUEZD X0NUTF9QTEFORShjcnRjLT5wbGFuZSk7CisJaWYgKGRybV9mb3JtYXRfcGxhbmVfY3BwKGRldl9w cml2LT5mYmMucGl4ZWxfZm9ybWF0LCAwKSA9PSAyKQogCQlkcGZjX2N0bCB8PSBEUEZDX0NUTF9M SU1JVF8yWDsKIAllbHNlCiAJCWRwZmNfY3RsIHw9IERQRkNfQ1RMX0xJTUlUXzFYOwpAQCAtMjk5 LDE4ICsyODQsMTggQEAgc3RhdGljIHZvaWQgZ2VuN19lbmFibGVfZmJjKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YykKIAkJCSAgIElMS19GQkNRX0RJUyk7CiAJfSBlbHNlIHsKIAkJLyogV2FGYmNBc3lu Y2hGbGlwRGlzYWJsZUZiY1F1ZXVlOmhzdyxiZHcgKi8KLQkJSTkxNV9XUklURShDSElDS0VOX1BJ UEVTTF8xKGludGVsX2NydGMtPnBpcGUpLAotCQkJICAgSTkxNV9SRUFEKENISUNLRU5fUElQRVNM XzEoaW50ZWxfY3J0Yy0+cGlwZSkpIHwKKwkJSTkxNV9XUklURShDSElDS0VOX1BJUEVTTF8xKGNy dGMtPnBpcGUpLAorCQkJICAgSTkxNV9SRUFEKENISUNLRU5fUElQRVNMXzEoY3J0Yy0+cGlwZSkp IHwKIAkJCSAgIEhTV19GQkNRX0RJUyk7CiAJfQogCiAJSTkxNV9XUklURShTTkJfRFBGQ19DVExf U0EsCi0JCSAgIFNOQl9DUFVfRkVOQ0VfRU5BQkxFIHwgb2JqLT5mZW5jZV9yZWcpOwotCUk5MTVf V1JJVEUoRFBGQ19DUFVfRkVOQ0VfT0ZGU0VULCBjcnRjLT55KTsKKwkJICAgU05CX0NQVV9GRU5D RV9FTkFCTEUgfCBkZXZfcHJpdi0+ZmJjLmZlbmNlX3JlZyk7CisJSTkxNV9XUklURShEUEZDX0NQ VV9GRU5DRV9PRkZTRVQsIGRldl9wcml2LT5mYmMueSk7CiAKIAlzYW5keWJyaWRnZV9ibGl0X2Zi Y191cGRhdGUoZGV2KTsKIAotCURSTV9ERUJVR19LTVMoImVuYWJsZWQgZmJjIG9uIHBsYW5lICVj XG4iLCBwbGFuZV9uYW1lKGludGVsX2NydGMtPnBsYW5lKSk7CisJRFJNX0RFQlVHX0tNUygiZW5h YmxlZCBmYmMgb24gcGxhbmUgJWNcbiIsIHBsYW5lX25hbWUoY3J0Yy0+cGxhbmUpKTsKIH0KIAog Ym9vbCBpbnRlbF9mYmNfZW5hYmxlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQpAQCAtMzIzLDYg KzMwOCwyMSBAQCBib29sIGludGVsX2ZiY19lbmFibGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiAJcmV0dXJuIGRldl9wcml2LT5kaXNwbGF5LmZiY19lbmFibGVkKGRldik7CiB9CiAKK3N0YXRp YyB2b2lkIGludGVsX2ZiY191cGRhdGVfcGFyYW1zKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQor eworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiID0gY3J0Yy0+YmFzZS5wcmltYXJ5LT5mYjsKKwlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqID0gdG9faW50ZWxfZnJhbWVidWZmZXIoZmIpLT5vYmo7CisKKwlk ZXZfcHJpdi0+ZmJjLmNydGMgPSBjcnRjOworCWRldl9wcml2LT5mYmMucGl4ZWxfZm9ybWF0ID0g ZmItPnBpeGVsX2Zvcm1hdDsKKwlkZXZfcHJpdi0+ZmJjLnBpdGNoID0gZmItPnBpdGNoZXNbMF07 CisJZGV2X3ByaXYtPmZiYy5vYmogPSBvYmo7CisJZGV2X3ByaXYtPmZiYy5mZW5jZV9yZWcgPSBv YmotPmZlbmNlX3JlZzsKKwlkZXZfcHJpdi0+ZmJjLnkgPSBjcnRjLT5iYXNlLnk7Cit9CisKIHN0 YXRpYyB2b2lkIGludGVsX2ZiY193b3JrX2ZuKHN0cnVjdCB3b3JrX3N0cnVjdCAqX193b3JrKQog ewogCXN0cnVjdCBpbnRlbF9mYmNfd29yayAqd29yayA9CkBAIC0zMzcsMTEgKzMzNyw4IEBAIHN0 YXRpYyB2b2lkIGludGVsX2ZiY193b3JrX2ZuKHN0cnVjdCB3b3JrX3N0cnVjdCAqX193b3JrKQog CQkgKiB0aGUgcHJpb3Igd29yay4KIAkJICovCiAJCWlmICh3b3JrLT5jcnRjLT5wcmltYXJ5LT5m YiA9PSB3b3JrLT5mYikgewotCQkJZGV2X3ByaXYtPmRpc3BsYXkuZW5hYmxlX2ZiYyh3b3JrLT5j cnRjKTsKLQotCQkJZGV2X3ByaXYtPmZiYy5wbGFuZSA9IHRvX2ludGVsX2NydGMod29yay0+Y3J0 YyktPnBsYW5lOwotCQkJZGV2X3ByaXYtPmZiYy5mYl9pZCA9IHdvcmstPmNydGMtPnByaW1hcnkt PmZiLT5iYXNlLmlkOwotCQkJZGV2X3ByaXYtPmZiYy55ID0gd29yay0+Y3J0Yy0+eTsKKwkJCWlu dGVsX2ZiY191cGRhdGVfcGFyYW1zKHRvX2ludGVsX2NydGMod29yay0+Y3J0YykpOworCQkJZGV2 X3ByaXYtPmRpc3BsYXkuZW5hYmxlX2ZiYyhkZXYpOwogCQl9CiAKIAkJZGV2X3ByaXYtPmZiYy5m YmNfd29yayA9IE5VTEw7CkBAIC0zODgsNyArMzg1LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5h YmxlX2ZiYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJd29yayA9IGt6YWxsb2Moc2l6ZW9mKCp3 b3JrKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKHdvcmsgPT0gTlVMTCkgewogCQlEUk1fRVJST1IoIkZh aWxlZCB0byBhbGxvY2F0ZSBGQkMgd29yayBzdHJ1Y3R1cmVcbiIpOwotCQlkZXZfcHJpdi0+ZGlz cGxheS5lbmFibGVfZmJjKGNydGMpOworCQlpbnRlbF9mYmNfdXBkYXRlX3BhcmFtcyh0b19pbnRl bF9jcnRjKGNydGMpKTsKKwkJZGV2X3ByaXYtPmRpc3BsYXkuZW5hYmxlX2ZiYyhkZXYpOwogCQly ZXR1cm47CiAJfQogCkBAIC00MjQsNyArNDIyLDExIEBAIHZvaWQgaW50ZWxfZGlzYWJsZV9mYmMo c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJcmV0dXJuOwogCiAJZGV2X3ByaXYtPmRpc3BsYXku ZGlzYWJsZV9mYmMoZGV2KTsKLQlkZXZfcHJpdi0+ZmJjLnBsYW5lID0gLTE7CisJZGV2X3ByaXYt PmZiYy5jcnRjID0gTlVMTDsKKwlkZXZfcHJpdi0+ZmJjLnBpeGVsX2Zvcm1hdCA9IDA7CisJZGV2 X3ByaXYtPmZiYy5waXRjaCA9IDA7CisJZGV2X3ByaXYtPmZiYy5mZW5jZV9yZWcgPSBJOTE1X0ZF TkNFX1JFR19OT05FOworCWRldl9wcml2LT5mYmMueSA9IDA7CiB9CiAKIHN0YXRpYyBib29sIHNl dF9ub19mYmNfcmVhc29uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTgx Miw4ICs4MTQsMTEgQEAgdm9pZCBpbnRlbF91cGRhdGVfZmJjKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAJICogY2Fubm90IGJlIHVucGlubmVkIChhbmQgaGF2ZSBpdHMgR1RUIG9mZnNldCBhbmQg ZmVuY2UgcmV2b2tlZCkKIAkgKiB3aXRob3V0IGZpcnN0IGJlaW5nIGRlY291cGxlZCBmcm9tIHRo ZSBzY2Fub3V0IGFuZCBGQkMgZGlzYWJsZWQuCiAJICovCi0JaWYgKGRldl9wcml2LT5mYmMucGxh bmUgPT0gY3J0Yy0+cGxhbmUgJiYKLQkgICAgZGV2X3ByaXYtPmZiYy5mYl9pZCA9PSBmYi0+YmFz ZS5pZCAmJgorCWlmIChkZXZfcHJpdi0+ZmJjLmNydGMgPT0gY3J0YyAmJgorCSAgICBkZXZfcHJp di0+ZmJjLm9iaiA9PSBvYmogJiYKKwkgICAgZGV2X3ByaXYtPmZiYy5waXhlbF9mb3JtYXQgPT0g ZmItPnBpeGVsX2Zvcm1hdCAmJgorCSAgICBkZXZfcHJpdi0+ZmJjLnBpdGNoID09IGZiLT5waXRj aGVzWzBdICYmCisJICAgIGRldl9wcml2LT5mYmMuZmVuY2VfcmVnID09IG9iai0+ZmVuY2VfcmVn ICYmCiAJICAgIGRldl9wcml2LT5mYmMueSA9PSBjcnRjLT5iYXNlLnkpCiAJCXJldHVybjsKIApA QCAtODU4LDYgKzg2MywxMyBAQCBvdXRfZGlzYWJsZToKIAlpOTE1X2dlbV9zdG9sZW5fY2xlYW51 cF9jb21wcmVzc2lvbihkZXYpOwogfQogCit2b2lkIGludGVsX2ZiY19pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKKworCWRldl9wcml2LT5mYmMuZmVuY2VfcmVnID0gSTkxNV9GRU5DRV9S RUdfTk9ORTsKK30KKwogc3RhdGljIHZvaWQgaTkxNV9waW5ldmlld19nZXRfbWVtX2ZyZXEoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwppbmRl eCA0MDQzMzVkLi5lMDRjYTVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9zcHJpdGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwpAQCAt NzExLDcgKzcxMSw3IEBAIGludGVsX3ByZV9kaXNhYmxlX3ByaW1hcnkoc3RydWN0IGRybV9jcnRj ICpjcnRjKQogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjKTsKIAogCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQlpZiAoZGV2X3ByaXYt PmZiYy5wbGFuZSA9PSBpbnRlbF9jcnRjLT5wbGFuZSkKKwlpZiAoZGV2X3ByaXYtPmZiYy5jcnRj ID09IGludGVsX2NydGMpCiAJCWludGVsX2Rpc2FibGVfZmJjKGRldik7CiAJbXV0ZXhfdW5sb2Nr KCZkZXYtPnN0cnVjdF9tdXRleCk7CiAKLS0gCjEuOC41LjUKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==