From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: [PATCH 05/18] drm/i915/gtt: Introduce struct i915_page_dma Date: Thu, 25 Jun 2015 18:35:07 +0300 Message-ID: <1435246520-14745-6-git-send-email-mika.kuoppala@intel.com> References: <1435246520-14745-1-git-send-email-mika.kuoppala@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 56DFC6EC5C for ; Thu, 25 Jun 2015 08:35:33 -0700 (PDT) In-Reply-To: <1435246520-14745-1-git-send-email-mika.kuoppala@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: miku@iki.fi List-Id: intel-gfx@lists.freedesktop.org QWxsIG91ciBwYWdpbmcgc3RydWN0dXJlcyBoYXZlIHN0cnVjdCBwYWdlIGFuZCBkbWEgYWRkcmVz cwpmb3IgdGhhdCBwYWdlLgoKQWRkIHN0cnVjdCBmb3IgcGFnZS9kbWEgYWRkcmVzcyBwYWlycyBh bmQgdXNlIGl0IHRvIG1ha2UKdGhlIHNldHVwIGFuZCB0ZWFyZG93biBmb3IgZGlmZmVyZW50IHBh Z2luZyBzdHJ1Y3R1cmVzCmlkZW50aWNhbC4KCkluY2x1ZGUgdGhlIHBhZ2UgZGlyZWN0b3J5IG9m ZnNldCBhbHNvIGluIHRoZSBzdHJ1Y3QgZm9yIGxlZ2FjeQpnZW5zLiBSZW5hbWUgaXQgdG8gY2xl YXJseSBwb2ludCBvdXQgdGhhdCBpdCBpcyBvZmZzZXQgaW50byB0aGUKZ2d0dC4KCnYyOiBBZGQg Y29tbWVudCBhYm91dCBnZ3R0X29mZnNldCAoTWljaGVsKQoKU2lnbmVkLW9mZi1ieTogTWlrYSBL dW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBNaWNoZWwgVGhp ZXJyeSA8bWljaGVsLnRoaWVycnlAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9n dHQuYyB8IDEyMCArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oIHwgIDI1ICsrKysrLS0tCiAzIGZpbGVzIGNoYW5n ZWQsIDY0IGluc2VydGlvbnMoKyksIDgzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kZWJ1Z2ZzLmMKaW5kZXggYzY1NGI3ZC4uZTQwZTQ3OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kZWJ1Z2ZzLmMKQEAgLTIyMzAsNyArMjIzMCw3IEBAIHN0YXRpYyB2b2lkIGdlbjZfcHBndHRf aW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCXN0cnVj dCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCA9IGRldl9wcml2LT5tbS5hbGlhc2luZ19wcGd0dDsKIAog CQlzZXFfcHV0cyhtLCAiYWxpYXNpbmcgUFBHVFQ6XG4iKTsKLQkJc2VxX3ByaW50ZihtLCAicGQg Z3R0IG9mZnNldDogMHglMDh4XG4iLCBwcGd0dC0+cGQucGRfb2Zmc2V0KTsKKwkJc2VxX3ByaW50 ZihtLCAicGQgZ3R0IG9mZnNldDogMHglMDh4XG4iLCBwcGd0dC0+cGQuYmFzZS5nZ3R0X29mZnNl dCk7CiAKIAkJcHBndHQtPmRlYnVnX2R1bXAocHBndHQsIG0pOwogCX0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMKaW5kZXggNDdlOGUyZS4uYTdiZGJlYiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMKQEAgLTMwMSw1MiArMzAxLDM5IEBAIHN0YXRpYyBnZW42X3B0ZV90IGly aXNfcHRlX2VuY29kZShkbWFfYWRkcl90IGFkZHIsCiAJcmV0dXJuIHB0ZTsKIH0KIAotI2RlZmlu ZSBpOTE1X2RtYV91bm1hcF9zaW5nbGUocHgsIGRldikgXAotCV9faTkxNV9kbWFfdW5tYXBfc2lu Z2xlKChweCktPmRhZGRyLCBkZXYpCi0KLXN0YXRpYyB2b2lkIF9faTkxNV9kbWFfdW5tYXBfc2lu Z2xlKGRtYV9hZGRyX3QgZGFkZHIsCi0JCQkJICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCitz dGF0aWMgaW50IHNldHVwX3BhZ2VfZG1hKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBp OTE1X3BhZ2VfZG1hICpwKQogewogCXN0cnVjdCBkZXZpY2UgKmRldmljZSA9ICZkZXYtPnBkZXYt PmRldjsKIAotCWRtYV91bm1hcF9wYWdlKGRldmljZSwgZGFkZHIsIDQwOTYsIFBDSV9ETUFfQklE SVJFQ1RJT05BTCk7Ci19Ci0KLS8qKgotICogaTkxNV9kbWFfbWFwX3NpbmdsZSgpIC0gQ3JlYXRl IGEgZG1hIG1hcHBpbmcgZm9yIGEgcGFnZSB0YWJsZS9kaXIvZXRjLgotICogQHB4OglQYWdlIHRh YmxlL2Rpci9ldGMgdG8gZ2V0IGEgRE1BIG1hcCBmb3IKLSAqIEBkZXY6CWRybSBkZXZpY2UKLSAq Ci0gKiBQYWdlIHRhYmxlIGFsbG9jYXRpb25zIGFyZSB1bmlmaWVkIGFjcm9zcyBhbGwgZ2Vucy4g VGhleSBhbHdheXMgcmVxdWlyZSBhCi0gKiBzaW5nbGUgNGsgYWxsb2NhdGlvbiwgYXMgd2VsbCBh cyBhIERNQSBtYXBwaW5nLiBJZiB3ZSBrZWVwIHRoZSBzdHJ1Y3RzCi0gKiBzeW1tZXRyaWMgaGVy ZSwgdGhlIHNpbXBsZSBtYWNybyBjb3ZlcnMgdXMgZm9yIGV2ZXJ5IHBhZ2UgdGFibGUgdHlwZS4K LSAqCi0gKiBSZXR1cm46IDAgaWYgc3VjY2Vzcy4KLSAqLwotI2RlZmluZSBpOTE1X2RtYV9tYXBf c2luZ2xlKHB4LCBkZXYpIFwKLQlpOTE1X2RtYV9tYXBfcGFnZV9zaW5nbGUoKHB4KS0+cGFnZSwg KGRldiksICYocHgpLT5kYWRkcikKKwlwLT5wYWdlID0gYWxsb2NfcGFnZShHRlBfS0VSTkVMKTsK KwlpZiAoIXAtPnBhZ2UpCisJCXJldHVybiAtRU5PTUVNOwogCi1zdGF0aWMgaW50IGk5MTVfZG1h X21hcF9wYWdlX3NpbmdsZShzdHJ1Y3QgcGFnZSAqcGFnZSwKLQkJCQkgICAgc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKLQkJCQkgICAgZG1hX2FkZHJfdCAqZGFkZHIpCi17Ci0Jc3RydWN0IGRldmlj ZSAqZGV2aWNlID0gJmRldi0+cGRldi0+ZGV2OworCXAtPmRhZGRyID0gZG1hX21hcF9wYWdlKGRl dmljZSwKKwkJCQlwLT5wYWdlLCAwLCA0MDk2LCBQQ0lfRE1BX0JJRElSRUNUSU9OQUwpOwogCi0J KmRhZGRyID0gZG1hX21hcF9wYWdlKGRldmljZSwgcGFnZSwgMCwgNDA5NiwgUENJX0RNQV9CSURJ UkVDVElPTkFMKTsKLQlpZiAoZG1hX21hcHBpbmdfZXJyb3IoZGV2aWNlLCAqZGFkZHIpKQotCQly ZXR1cm4gLUVOT01FTTsKKwlpZiAoZG1hX21hcHBpbmdfZXJyb3IoZGV2aWNlLCBwLT5kYWRkcikp IHsKKwkJX19mcmVlX3BhZ2UocC0+cGFnZSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KIAogCXJl dHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCB1bm1hcF9hbmRfZnJlZV9wdChzdHJ1Y3QgaTkxNV9w YWdlX3RhYmxlICpwdCwKLQkJCSAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQorc3RhdGlj IHZvaWQgY2xlYW51cF9wYWdlX2RtYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaTkx NV9wYWdlX2RtYSAqcCkKIHsKLQlpZiAoV0FSTl9PTighcHQtPnBhZ2UpKQorCWlmIChXQVJOX09O KCFwLT5wYWdlKSkKIAkJcmV0dXJuOwogCi0JaTkxNV9kbWFfdW5tYXBfc2luZ2xlKHB0LCBkZXYp OwotCV9fZnJlZV9wYWdlKHB0LT5wYWdlKTsKKwlkbWFfdW5tYXBfcGFnZSgmZGV2LT5wZGV2LT5k ZXYsIHAtPmRhZGRyLCA0MDk2LCBQQ0lfRE1BX0JJRElSRUNUSU9OQUwpOworCV9fZnJlZV9wYWdl KHAtPnBhZ2UpOworCW1lbXNldChwLCAwLCBzaXplb2YoKnApKTsKK30KKworc3RhdGljIHZvaWQg dW5tYXBfYW5kX2ZyZWVfcHQoc3RydWN0IGk5MTVfcGFnZV90YWJsZSAqcHQsCisJCQkgICAgICAg c3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwljbGVhbnVwX3BhZ2VfZG1hKGRldiwgJnB0LT5i YXNlKTsKIAlrZnJlZShwdC0+dXNlZF9wdGVzKTsKIAlrZnJlZShwdCk7CiB9CkBAIC0zNTcsNyAr MzQ0LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9pbml0aWFsaXplX3B0KHN0cnVjdCBpOTE1X2FkZHJl c3Nfc3BhY2UgKnZtLAogCWdlbjhfcHRlX3QgKnB0X3ZhZGRyLCBzY3JhdGNoX3B0ZTsKIAlpbnQg aTsKIAotCXB0X3ZhZGRyID0ga21hcF9hdG9taWMocHQtPnBhZ2UpOworCXB0X3ZhZGRyID0ga21h cF9hdG9taWMocHQtPmJhc2UucGFnZSk7CiAJc2NyYXRjaF9wdGUgPSBnZW44X3B0ZV9lbmNvZGUo dm0tPnNjcmF0Y2guYWRkciwKIAkJCQkgICAgICBJOTE1X0NBQ0hFX0xMQywgdHJ1ZSk7CiAKQEAg LTM4NiwxOSArMzczLDEzIEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICphbGxvY19w dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWlmICghcHQtPnVzZWRfcHRlcykKIAkJZ290byBm YWlsX2JpdG1hcDsKIAotCXB0LT5wYWdlID0gYWxsb2NfcGFnZShHRlBfS0VSTkVMKTsKLQlpZiAo IXB0LT5wYWdlKQotCQlnb3RvIGZhaWxfcGFnZTsKLQotCXJldCA9IGk5MTVfZG1hX21hcF9zaW5n bGUocHQsIGRldik7CisJcmV0ID0gc2V0dXBfcGFnZV9kbWEoZGV2LCAmcHQtPmJhc2UpOwogCWlm IChyZXQpCi0JCWdvdG8gZmFpbF9kbWE7CisJCWdvdG8gZmFpbF9wYWdlX207CiAKIAlyZXR1cm4g cHQ7CiAKLWZhaWxfZG1hOgotCV9fZnJlZV9wYWdlKHB0LT5wYWdlKTsKLWZhaWxfcGFnZToKK2Zh aWxfcGFnZV9tOgogCWtmcmVlKHB0LT51c2VkX3B0ZXMpOwogZmFpbF9iaXRtYXA6CiAJa2ZyZWUo cHQpOwpAQCAtNDA5LDkgKzM5MCw4IEBAIGZhaWxfYml0bWFwOgogc3RhdGljIHZvaWQgdW5tYXBf YW5kX2ZyZWVfcGQoc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkLAogCQkJICAgICAgc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIHsKLQlpZiAocGQtPnBhZ2UpIHsKLQkJaTkxNV9kbWFfdW5t YXBfc2luZ2xlKHBkLCBkZXYpOwotCQlfX2ZyZWVfcGFnZShwZC0+cGFnZSk7CisJaWYgKHBkLT5i YXNlLnBhZ2UpIHsKKwkJY2xlYW51cF9wYWdlX2RtYShkZXYsICZwZC0+YmFzZSk7CiAJCWtmcmVl KHBkLT51c2VkX3BkZXMpOwogCQlrZnJlZShwZCk7CiAJfQpAQCAtNDMxLDE4ICs0MTEsMTIgQEAg c3RhdGljIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICphbGxvY19wZChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogCWlmICghcGQtPnVzZWRfcGRlcykKIAkJZ290byBmcmVlX3BkOwogCi0JcGQt PnBhZ2UgPSBhbGxvY19wYWdlKEdGUF9LRVJORUwpOwotCWlmICghcGQtPnBhZ2UpCi0JCWdvdG8g ZnJlZV9iaXRtYXA7Ci0KLQlyZXQgPSBpOTE1X2RtYV9tYXBfc2luZ2xlKHBkLCBkZXYpOworCXJl dCA9IHNldHVwX3BhZ2VfZG1hKGRldiwgJnBkLT5iYXNlKTsKIAlpZiAocmV0KQotCQlnb3RvIGZy ZWVfcGFnZTsKKwkJZ290byBmcmVlX2JpdG1hcDsKIAogCXJldHVybiBwZDsKIAotZnJlZV9wYWdl OgotCV9fZnJlZV9wYWdlKHBkLT5wYWdlKTsKIGZyZWVfYml0bWFwOgogCWtmcmVlKHBkLT51c2Vk X3BkZXMpOwogZnJlZV9wZDoKQEAgLTUyNCwxMCArNDk4LDEwIEBAIHN0YXRpYyB2b2lkIGdlbjhf cHBndHRfY2xlYXJfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAKIAkJcHQg PSBwZC0+cGFnZV90YWJsZVtwZGVdOwogCi0JCWlmIChXQVJOX09OKCFwdC0+cGFnZSkpCisJCWlm IChXQVJOX09OKCFwdC0+YmFzZS5wYWdlKSkKIAkJCWNvbnRpbnVlOwogCi0JCXBhZ2VfdGFibGUg PSBwdC0+cGFnZTsKKwkJcGFnZV90YWJsZSA9IHB0LT5iYXNlLnBhZ2U7CiAKIAkJbGFzdF9wdGUg PSBwdGUgKyBudW1fZW50cmllczsKIAkJaWYgKGxhc3RfcHRlID4gR0VOOF9QVEVTKQpAQCAtNTc0 LDcgKzU0OCw3IEBAIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfaW5zZXJ0X2VudHJpZXMoc3RydWN0 IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJCWlmIChwdF92YWRkciA9PSBOVUxMKSB7CiAJCQlz dHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGQgPSBwcGd0dC0+cGRwLnBhZ2VfZGlyZWN0b3J5 W3BkcGVdOwogCQkJc3RydWN0IGk5MTVfcGFnZV90YWJsZSAqcHQgPSBwZC0+cGFnZV90YWJsZVtw ZGVdOwotCQkJc3RydWN0IHBhZ2UgKnBhZ2VfdGFibGUgPSBwdC0+cGFnZTsKKwkJCXN0cnVjdCBw YWdlICpwYWdlX3RhYmxlID0gcHQtPmJhc2UucGFnZTsKIAogCQkJcHRfdmFkZHIgPSBrbWFwX2F0 b21pYyhwYWdlX3RhYmxlKTsKIAkJfQpAQCAtNjA2LDcgKzU4MCw3IEBAIHN0YXRpYyB2b2lkIF9f Z2VuOF9kb19tYXBfcHQoZ2VuOF9wZGVfdCAqIGNvbnN0IHBkZSwKIAkJCSAgICAgc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIHsKIAlnZW44X3BkZV90IGVudHJ5ID0KLQkJZ2VuOF9wZGVfZW5jb2Rl KGRldiwgcHQtPmRhZGRyLCBJOTE1X0NBQ0hFX0xMQyk7CisJCWdlbjhfcGRlX2VuY29kZShkZXYs IHB0LT5iYXNlLmRhZGRyLCBJOTE1X0NBQ0hFX0xMQyk7CiAJKnBkZSA9IGVudHJ5OwogfQogCkBA IC02MTksNyArNTkzLDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9pbml0aWFsaXplX3BkKHN0cnVjdCBp OTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCXN0cnVjdCBpOTE1X3BhZ2VfdGFibGUgKnB0OwogCWlu dCBpOwogCi0JcGFnZV9kaXJlY3RvcnkgPSBrbWFwX2F0b21pYyhwZC0+cGFnZSk7CisJcGFnZV9k aXJlY3RvcnkgPSBrbWFwX2F0b21pYyhwZC0+YmFzZS5wYWdlKTsKIAlwdCA9IHBwZ3R0LT5zY3Jh dGNoX3B0OwogCWZvciAoaSA9IDA7IGkgPCBJOTE1X1BERVM7IGkrKykKIAkJLyogTWFwIHRoZSBQ REUgdG8gdGhlIHBhZ2UgdGFibGUgKi8KQEAgLTYzNCw3ICs2MDgsNyBAQCBzdGF0aWMgdm9pZCBn ZW44X2ZyZWVfcGFnZV90YWJsZXMoc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkLCBzdHJ1 Y3QgZHJtX2RldgogewogCWludCBpOwogCi0JaWYgKCFwZC0+cGFnZSkKKwlpZiAoIXBkLT5iYXNl LnBhZ2UpCiAJCXJldHVybjsKIAogCWZvcl9lYWNoX3NldF9iaXQoaSwgcGQtPnVzZWRfcGRlcywg STkxNV9QREVTKSB7CkBAIC04ODUsNyArODU5LDcgQEAgc3RhdGljIGludCBnZW44X2FsbG9jX3Zh X3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCS8qIEFsbG9jYXRpb25zIGhh dmUgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSwgc28gc2V0IHRoZSBiaXRtYXBzLCBhbmQgZG8KIAkg KiB0aGUgbWFwcGluZ3MuICovCiAJZ2VuOF9mb3JfZWFjaF9wZHBlKHBkLCAmcHBndHQtPnBkcCwg c3RhcnQsIGxlbmd0aCwgdGVtcCwgcGRwZSkgewotCQlnZW44X3BkZV90ICpjb25zdCBwYWdlX2Rp cmVjdG9yeSA9IGttYXBfYXRvbWljKHBkLT5wYWdlKTsKKwkJZ2VuOF9wZGVfdCAqY29uc3QgcGFn ZV9kaXJlY3RvcnkgPSBrbWFwX2F0b21pYyhwZC0+YmFzZS5wYWdlKTsKIAkJc3RydWN0IGk5MTVf cGFnZV90YWJsZSAqcHQ7CiAJCXVpbnQ2NF90IHBkX2xlbiA9IGdlbjhfY2xhbXBfcGQoc3RhcnQs IGxlbmd0aCk7CiAJCXVpbnQ2NF90IHBkX3N0YXJ0ID0gc3RhcnQ7CkBAIC05OTYsNyArOTcwLDcg QEAgc3RhdGljIHZvaWQgZ2VuNl9kdW1wX3BwZ3R0KHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0 dCwgc3RydWN0IHNlcV9maWxlICptKQogCWdlbjZfZm9yX2VhY2hfcGRlKHVudXNlZCwgJnBwZ3R0 LT5wZCwgc3RhcnQsIGxlbmd0aCwgdGVtcCwgcGRlKSB7CiAJCXUzMiBleHBlY3RlZDsKIAkJZ2Vu Nl9wdGVfdCAqcHRfdmFkZHI7Ci0JCWRtYV9hZGRyX3QgcHRfYWRkciA9IHBwZ3R0LT5wZC5wYWdl X3RhYmxlW3BkZV0tPmRhZGRyOworCQlkbWFfYWRkcl90IHB0X2FkZHIgPSBwcGd0dC0+cGQucGFn ZV90YWJsZVtwZGVdLT5iYXNlLmRhZGRyOwogCQlwZF9lbnRyeSA9IHJlYWRsKHBwZ3R0LT5wZF9h ZGRyICsgcGRlKTsKIAkJZXhwZWN0ZWQgPSAoR0VONl9QREVfQUREUl9FTkNPREUocHRfYWRkcikg fCBHRU42X1BERV9WQUxJRCk7CiAKQEAgLTEwMDcsNyArOTgxLDcgQEAgc3RhdGljIHZvaWQgZ2Vu Nl9kdW1wX3BwZ3R0KHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCwgc3RydWN0IHNlcV9maWxl ICptKQogCQkJCSAgIGV4cGVjdGVkKTsKIAkJc2VxX3ByaW50ZihtLCAiXHRQREU6ICV4XG4iLCBw ZF9lbnRyeSk7CiAKLQkJcHRfdmFkZHIgPSBrbWFwX2F0b21pYyhwcGd0dC0+cGQucGFnZV90YWJs ZVtwZGVdLT5wYWdlKTsKKwkJcHRfdmFkZHIgPSBrbWFwX2F0b21pYyhwcGd0dC0+cGQucGFnZV90 YWJsZVtwZGVdLT5iYXNlLnBhZ2UpOwogCQlmb3IgKHB0ZSA9IDA7IHB0ZSA8IEdFTjZfUFRFUzsg cHRlKz00KSB7CiAJCQl1bnNpZ25lZCBsb25nIHZhID0KIAkJCQkocGRlICogUEFHRV9TSVpFICog R0VONl9QVEVTKSArCkBAIC0xMDQyLDcgKzEwMTYsNyBAQCBzdGF0aWMgdm9pZCBnZW42X3dyaXRl X3BkZShzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGQsCiAJCWNvbnRhaW5lcl9vZihwZCwg c3RydWN0IGk5MTVfaHdfcHBndHQsIHBkKTsKIAl1MzIgcGRfZW50cnk7CiAKLQlwZF9lbnRyeSA9 IEdFTjZfUERFX0FERFJfRU5DT0RFKHB0LT5kYWRkcik7CisJcGRfZW50cnkgPSBHRU42X1BERV9B RERSX0VOQ09ERShwdC0+YmFzZS5kYWRkcik7CiAJcGRfZW50cnkgfD0gR0VONl9QREVfVkFMSUQ7 CiAKIAl3cml0ZWwocGRfZW50cnksIHBwZ3R0LT5wZF9hZGRyICsgcGRlKTsKQEAgLTEwNjcsOSAr MTA0MSw5IEBAIHN0YXRpYyB2b2lkIGdlbjZfd3JpdGVfcGFnZV9yYW5nZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIHN0YXRpYyB1aW50MzJfdCBnZXRfcGRfb2Zmc2V0KHN0 cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCkKIHsKLQlCVUdfT04ocHBndHQtPnBkLnBkX29mZnNl dCAmIDB4M2YpOworCUJVR19PTihwcGd0dC0+cGQuYmFzZS5nZ3R0X29mZnNldCAmIDB4M2YpOwog Ci0JcmV0dXJuIChwcGd0dC0+cGQucGRfb2Zmc2V0IC8gNjQpIDw8IDE2OworCXJldHVybiAocHBn dHQtPnBkLmJhc2UuZ2d0dF9vZmZzZXQgLyA2NCkgPDwgMTY7CiB9CiAKIHN0YXRpYyBpbnQgaHN3 X21tX3N3aXRjaChzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsCkBAIC0xMjM2LDcgKzEyMTAs NyBAQCBzdGF0aWMgdm9pZCBnZW42X3BwZ3R0X2NsZWFyX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJl c3Nfc3BhY2UgKnZtLAogCQlpZiAobGFzdF9wdGUgPiBHRU42X1BURVMpCiAJCQlsYXN0X3B0ZSA9 IEdFTjZfUFRFUzsKIAotCQlwdF92YWRkciA9IGttYXBfYXRvbWljKHBwZ3R0LT5wZC5wYWdlX3Rh YmxlW2FjdF9wdF0tPnBhZ2UpOworCQlwdF92YWRkciA9IGttYXBfYXRvbWljKHBwZ3R0LT5wZC5w YWdlX3RhYmxlW2FjdF9wdF0tPmJhc2UucGFnZSk7CiAKIAkJZm9yIChpID0gZmlyc3RfcHRlOyBp IDwgbGFzdF9wdGU7IGkrKykKIAkJCXB0X3ZhZGRyW2ldID0gc2NyYXRjaF9wdGU7CkBAIC0xMjY1 LDcgKzEyMzksNyBAQCBzdGF0aWMgdm9pZCBnZW42X3BwZ3R0X2luc2VydF9lbnRyaWVzKHN0cnVj dCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCXB0X3ZhZGRyID0gTlVMTDsKIAlmb3JfZWFjaF9z Z19wYWdlKHBhZ2VzLT5zZ2wsICZzZ19pdGVyLCBwYWdlcy0+bmVudHMsIDApIHsKIAkJaWYgKHB0 X3ZhZGRyID09IE5VTEwpCi0JCQlwdF92YWRkciA9IGttYXBfYXRvbWljKHBwZ3R0LT5wZC5wYWdl X3RhYmxlW2FjdF9wdF0tPnBhZ2UpOworCQkJcHRfdmFkZHIgPSBrbWFwX2F0b21pYyhwcGd0dC0+ cGQucGFnZV90YWJsZVthY3RfcHRdLT5iYXNlLnBhZ2UpOwogCiAJCXB0X3ZhZGRyW2FjdF9wdGVd ID0KIAkJCXZtLT5wdGVfZW5jb2RlKHNnX3BhZ2VfaXRlcl9kbWFfYWRkcmVzcygmc2dfaXRlciks CkBAIC0xMjkzLDcgKzEyNjcsNyBAQCBzdGF0aWMgdm9pZCBnZW42X2luaXRpYWxpemVfcHQoc3Ry dWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJc2NyYXRjaF9wdGUgPSB2bS0+cHRlX2VuY29k ZSh2bS0+c2NyYXRjaC5hZGRyLAogCQkJSTkxNV9DQUNIRV9MTEMsIHRydWUsIDApOwogCi0JcHRf dmFkZHIgPSBrbWFwX2F0b21pYyhwdC0+cGFnZSk7CisJcHRfdmFkZHIgPSBrbWFwX2F0b21pYyhw dC0+YmFzZS5wYWdlKTsKIAogCWZvciAoaSA9IDA7IGkgPCBHRU42X1BURVM7IGkrKykKIAkJcHRf dmFkZHJbaV0gPSBzY3JhdGNoX3B0ZTsKQEAgLTE1MDksMTEgKzE0ODMsMTEgQEAgc3RhdGljIGlu dCBnZW42X3BwZ3R0X2luaXQoc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0KQogCXBwZ3R0LT5i YXNlLnRvdGFsID0gSTkxNV9QREVTICogR0VONl9QVEVTICogUEFHRV9TSVpFOwogCXBwZ3R0LT5k ZWJ1Z19kdW1wID0gZ2VuNl9kdW1wX3BwZ3R0OwogCi0JcHBndHQtPnBkLnBkX29mZnNldCA9CisJ cHBndHQtPnBkLmJhc2UuZ2d0dF9vZmZzZXQgPQogCQlwcGd0dC0+bm9kZS5zdGFydCAvIFBBR0Vf U0laRSAqIHNpemVvZihnZW42X3B0ZV90KTsKIAogCXBwZ3R0LT5wZF9hZGRyID0gKGdlbjZfcHRl X3QgX19pb21lbSAqKWRldl9wcml2LT5ndHQuZ3NtICsKLQkJcHBndHQtPnBkLnBkX29mZnNldCAv IHNpemVvZihnZW42X3B0ZV90KTsKKwkJcHBndHQtPnBkLmJhc2UuZ2d0dF9vZmZzZXQgLyBzaXpl b2YoZ2VuNl9wdGVfdCk7CiAKIAlnZW42X3NjcmF0Y2hfdmFfcmFuZ2UocHBndHQsIDAsIHBwZ3R0 LT5iYXNlLnRvdGFsKTsKIApAQCAtMTUyNCw3ICsxNDk4LDcgQEAgc3RhdGljIGludCBnZW42X3Bw Z3R0X2luaXQoc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0KQogCQkJIHBwZ3R0LT5ub2RlLnN0 YXJ0IC8gUEFHRV9TSVpFKTsKIAogCURSTV9ERUJVRygiQWRkaW5nIFBQR1RUIGF0IG9mZnNldCAl eFxuIiwKLQkJICBwcGd0dC0+cGQucGRfb2Zmc2V0IDw8IDEwKTsKKwkJICBwcGd0dC0+cGQuYmFz ZS5nZ3R0X29mZnNldCA8PCAxMCk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZ3R0LmgKaW5kZXggZjM2OGM3MS4uYzY4MTU3M2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2d0dC5oCkBAIC0yMDcsMTkgKzIwNywyNiBAQCBzdHJ1Y3QgaTkxNV92bWEgewogI2Rl ZmluZSBEUk1fSTkxNV9HRU1fT0JKRUNUX01BWF9QSU5fQ09VTlQgMHhmCiB9OwogCi1zdHJ1Y3Qg aTkxNV9wYWdlX3RhYmxlIHsKK3N0cnVjdCBpOTE1X3BhZ2VfZG1hIHsKIAlzdHJ1Y3QgcGFnZSAq cGFnZTsKLQlkbWFfYWRkcl90IGRhZGRyOworCXVuaW9uIHsKKwkJZG1hX2FkZHJfdCBkYWRkcjsK KworCQkvKiBGb3IgZ2VuNi9nZW43IG9ubHkuIFRoaXMgaXMgdGhlIG9mZnNldCBpbiB0aGUgR0dU VAorCQkgKiB3aGVyZSB0aGUgcGFnZSBkaXJlY3RvcnkgZW50cmllcyBmb3IgUFBHVFQgYmVnaW4K KwkJICovCisJCXVpbnQzMl90IGdndHRfb2Zmc2V0OworCX07Cit9OworCitzdHJ1Y3QgaTkxNV9w YWdlX3RhYmxlIHsKKwlzdHJ1Y3QgaTkxNV9wYWdlX2RtYSBiYXNlOwogCiAJdW5zaWduZWQgbG9u ZyAqdXNlZF9wdGVzOwogfTsKIAogc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgewotCXN0cnVj dCBwYWdlICpwYWdlOyAvKiBOVUxMIGZvciBHRU42LUdFTjcgKi8KLQl1bmlvbiB7Ci0JCXVpbnQz Ml90IHBkX29mZnNldDsKLQkJZG1hX2FkZHJfdCBkYWRkcjsKLQl9OworCXN0cnVjdCBpOTE1X3Bh Z2VfZG1hIGJhc2U7CiAKIAl1bnNpZ25lZCBsb25nICp1c2VkX3BkZXM7CiAJc3RydWN0IGk5MTVf cGFnZV90YWJsZSAqcGFnZV90YWJsZVtJOTE1X1BERVNdOyAvKiBQREVzICovCkBAIC00NzQsOCAr NDgxLDggQEAgc3RhdGljIGlubGluZSBkbWFfYWRkcl90CiBpOTE1X3BhZ2VfZGlyX2RtYV9hZGRy KGNvbnN0IHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCwgY29uc3QgdW5zaWduZWQgbikKIHsK IAlyZXR1cm4gdGVzdF9iaXQobiwgcHBndHQtPnBkcC51c2VkX3BkcGVzKSA/Ci0JCXBwZ3R0LT5w ZHAucGFnZV9kaXJlY3Rvcnlbbl0tPmRhZGRyIDoKLQkJcHBndHQtPnNjcmF0Y2hfcGQtPmRhZGRy OworCQlwcGd0dC0+cGRwLnBhZ2VfZGlyZWN0b3J5W25dLT5iYXNlLmRhZGRyIDoKKwkJcHBndHQt PnNjcmF0Y2hfcGQtPmJhc2UuZGFkZHI7CiB9CiAKIGludCBpOTE1X2dlbV9ndHRfaW5pdChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KTsKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=