From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bob Paauwe Subject: [PATCH] drm/i915: Make 48bit full ppgtt configuration generic (v4) Date: Wed, 12 Sep 2018 09:04:30 -0700 Message-ID: <20180912160430.167261-1-bob.j.paauwe@intel.com> References: <20180910171225.30872-1-bob.j.paauwe@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3EDB26E587 for ; Wed, 12 Sep 2018 16:04:49 +0000 (UTC) In-Reply-To: <20180910171225.30872-1-bob.j.paauwe@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 Cc: Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org NDggYml0IHBwZ3R0IGRldmljZSBjb25maWd1cmF0aW9uIGlzIHJlYWxseSBqdXN0IGV4dGVuZGVk IGFkZHJlc3MKcmFuZ2UgZnVsbCBwcGd0dCBhbmQgbWF5IGFjdHVhbGx5IGJlIHNvbWV0aGluZyBv dGhlciB0aGFuIDQ4IGJpdHMuCgpDaGFuZ2UgVVNFU19GVUxMXzQ4QklUX1BQR1RUKCkgdG8gVVNF U180TFZMX1BQR1RUKCkgdG8gYmV0dGVyCmRlc2NyaWJlIHRoYXQgYSA0IGxldmVsIHdhbGsgdGFi bGUgZXh0ZW5kZWQgcmFuZ2UgUFBHVFQgaXMgYmVpbmcKdXNlZC4gQWRkIGEgbmV3IGRldmljZSBp bmZvIGZpZWxkIHRoYXQgc3BlY2lmaWVzIHRoZSBudW1iZXIgb2YKYml0cyB0byBwcmVwYXJlIGZv ciBjYXNlcyB3aGVyZSB0aGUgcmFuZ2UgaXMgbm90IDMyIG9yIDQ4IGJpdHMuCkFsc28gcmVuYW1l IG90aGVyIGZ1bmN0aW9ucyBhbmQgY29tbWVudHMgZnJvbSA0OGJpdCB0byA0LWxldmVsLgoKdjI6 IGtlZXAgVVNFU19GVUxMX1BQR1RUKCkgdW5jaGFuZ2VkIChDaHJpcykKdjM6IFNpbXBsaWZ5IGNv bmRpdGlvbiBpbiBnZW44X3BwZ3R0X2NyZWF0ZSgpIChDaHJpcykKICAgIFJlbW92ZSB1bm5lY2Vz c2FyeSBsaW5lIGNvbmludWF0aW9ucyAoQm9iKQogICAgUmVuYW1lIGZ1bmN0aW9ucy9kZWZpbmVz L2NvbW1lbnRzIGZyb20gNDhiaXQgdG8gNGx2bCAoUm9kcmlnby9Cb2IpCnY0OiBSZW5hbWUgRlVM TF80TFZMX1BQR1RUIHRvIHNpbXBseSA0TFZMX1BQR1RUIChSb2RyaWdvKQogICAgQmUgZXhwbGlz ZWQgaW4gc2V0dGluZyB2bS50b3RhbCB0byAxVUxMIDw8IDMyIChSb2RyaWdvKQogICAgR2VuIDcg aXMgMzEgYml0cywgbm90IDMyIChDaHJpcykKClNpZ25lZC1vZmYtYnk6IEJvYiBQYWF1d2UgPGJv Yi5qLnBhYXV3ZUBpbnRlbC5jb20+CkNDOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRl bC5jb20+CkNDOiBNaWNoZWwgVGhpZXJyeSA8bWljaGVsLnRoaWVycnlAaW50ZWwuY29tPgpDQzog Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQoKQmV5b25kIHRoaXMs IHRoZXJlIGFyZSB0d28gZm9sbG93IG9uIHBhdGNoZXMgSSdkIGxpa2UgdG8gd29yayBvbjoKCjEp IE1vdmUgcGFydHMgb2YgZ2VuNl9jcmVhdGVfcHBndHQoKSBhbmQgZ2VuOF9jcmVhdGVfcHBndHQo KSB0aGF0CiAgIGFyZSBjb21tb24gaW50byBhIHNpbmdsZSBmdW5jdGlvbi4gVGhpcyB3aWxsIG1h a2UgZ2VuNilfY3JlYXRlX3BwZ3R0KCkKICAgdXNlIHRoZSBkZXZpY2VfaW5mbyBmaWVsZCBmb3Ig bnVtYmVyIG9mIGFkZHJlc3MgYml0cy4KCjIpIFJlbW92ZSBlbmFibGVfcHBndHQgbW9kdWxlIHBh cmFtZXRlci4KCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvdmdwdS5jICAgICAgICAgICAgICAg ICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyAgICAg ICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAgICAgICAg ICAgICAgfCAyNCArKysrKysrKysrKystLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2d0dC5oICAgICAgICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcGNpLmMgICAgICAgICAgICAgICAgICB8ICA3ICsrKysrLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcHZpbmZvLmggICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3ZncHUuYyAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuaCAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaCAgICAgICAgIHwgIDQgKysrLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgICAgICAgICAgIHwgIDggKysrKy0t LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9odWdlX3BhZ2VzLmMgICAgICB8ICA4 ICsrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNl LmMgfCAgMiArKwogMTMgZmlsZXMgY2hhbmdlZCwgMzkgaW5zZXJ0aW9ucygrKSwgMzIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L3ZncHUuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d2dC92Z3B1LmMKaW5kZXggYTRlOGUzY2Y3NGZkLi5hYjMzMjA4 ZTU5ZDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC92Z3B1LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L3ZncHUuYwpAQCAtNDQsNyArNDQsNyBAQCB2b2lkIHBv cHVsYXRlX3B2aW5mb19wYWdlKHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1KQogCXZncHVfdnJlZ190 KHZncHUsIHZndGlmX3JlZyhkaXNwbGF5X3JlYWR5KSkgPSAwOwogCXZncHVfdnJlZ190KHZncHUs IHZndGlmX3JlZyh2Z3RfaWQpKSA9IHZncHUtPmlkOwogCi0JdmdwdV92cmVnX3QodmdwdSwgdmd0 aWZfcmVnKHZndF9jYXBzKSkgPSBWR1RfQ0FQU19GVUxMXzQ4QklUX1BQR1RUOworCXZncHVfdnJl Z190KHZncHUsIHZndGlmX3JlZyh2Z3RfY2FwcykpID0gVkdUX0NBUFNfNExWTF9QUEdUVDsKIAl2 Z3B1X3ZyZWdfdCh2Z3B1LCB2Z3RpZl9yZWcodmd0X2NhcHMpKSB8PSBWR1RfQ0FQU19IV1NQX0VN VUxBVElPTjsKIAl2Z3B1X3ZyZWdfdCh2Z3B1LCB2Z3RpZl9yZWcodmd0X2NhcHMpKSB8PSBWR1Rf Q0FQU19IVUdFX0dUVDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggN2VhNDQyMDMzYTU3 Li5hYzg2MDAwYTEwMjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjU3Miw3ICsyNTcy LDcgQEAgaW50ZWxfaW5mbyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiAKICNkZWZpbmUgVVNFU19QUEdUVChkZXZfcHJpdikJCShpOTE1X21vZHBhcmFtcy5lbmFibGVf cHBndHQpCiAjZGVmaW5lIFVTRVNfRlVMTF9QUEdUVChkZXZfcHJpdikJKGk5MTVfbW9kcGFyYW1z LmVuYWJsZV9wcGd0dCA+PSAyKQotI2RlZmluZSBVU0VTX0ZVTExfNDhCSVRfUFBHVFQoZGV2X3By aXYpCShpOTE1X21vZHBhcmFtcy5lbmFibGVfcHBndHQgPT0gMykKKyNkZWZpbmUgVVNFU180TFZM X1BQR1RUKGRldl9wcml2KQkoKGRldl9wcml2KS0+aW5mby5mdWxsX3BwZ3R0X2JpdHMgPiAzMikK ICNkZWZpbmUgSEFTX1BBR0VfU0laRVMoZGV2X3ByaXYsIHNpemVzKSAoeyBcCiAJR0VNX0JVR19P Tigoc2l6ZXMpID09IDApOyBcCiAJKChzaXplcykgJiB+KGRldl9wcml2KS0+aW5mby5wYWdlX3Np emVzKSA9PSAwOyBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9j b250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKaW5kZXgg Zjc3MjU5M2I5OWFiLi41NjFmOGUzMGVhMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2NvbnRleHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9jb250ZXh0LmMKQEAgLTMwNyw3ICszMDcsNyBAQCBzdGF0aWMgdTMyIGRlZmF1bHRfZGVzY190 ZW1wbGF0ZShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAlkZXNjID0gR0VO OF9DVFhfVkFMSUQgfCBHRU44X0NUWF9QUklWSUxFR0U7CiAKIAlhZGRyZXNzX21vZGUgPSBJTlRF TF9MRUdBQ1lfMzJCX0NPTlRFWFQ7Ci0JaWYgKHBwZ3R0ICYmIGk5MTVfdm1faXNfNDhiaXQoJnBw Z3R0LT52bSkpCisJaWYgKHBwZ3R0ICYmIGk5MTVfdm1faXNfNGx2bCgmcHBndHQtPnZtKSkKIAkJ YWRkcmVzc19tb2RlID0gSU5URUxfTEVHQUNZXzY0Ql9DT05URVhUOwogCWRlc2MgfD0gYWRkcmVz c19tb2RlIDw8IEdFTjhfQ1RYX0FERFJFU1NJTkdfTU9ERV9TSElGVDsKIApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuYwppbmRleCBlYjBlNDQ2ZDY0ODIuLjU2MWE5MTFkMDlkMiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKQEAgLTEzNywxOCArMTM3LDE4IEBAIGludCBpbnRl bF9zYW5pdGl6ZV9lbmFibGVfcHBndHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogCQkJICAgICAgIAlpbnQgZW5hYmxlX3BwZ3R0KQogewogCWJvb2wgaGFzX2Z1bGxfcHBndHQ7 Ci0JYm9vbCBoYXNfZnVsbF80OGJpdF9wcGd0dDsKKwlib29sIGhhc19mdWxsXzRsdmxfcHBndHQ7 CiAKIAlpZiAoIWRldl9wcml2LT5pbmZvLmhhc19hbGlhc2luZ19wcGd0dCkKIAkJcmV0dXJuIDA7 CiAKIAloYXNfZnVsbF9wcGd0dCA9IGRldl9wcml2LT5pbmZvLmhhc19mdWxsX3BwZ3R0OwotCWhh c19mdWxsXzQ4Yml0X3BwZ3R0ID0gZGV2X3ByaXYtPmluZm8uaGFzX2Z1bGxfNDhiaXRfcHBndHQ7 CisJaGFzX2Z1bGxfNGx2bF9wcGd0dCA9IFVTRVNfNExWTF9QUEdUVChkZXZfcHJpdik7CiAKIAlp ZiAoaW50ZWxfdmdwdV9hY3RpdmUoZGV2X3ByaXYpKSB7CiAJCS8qIEdWVC1nIGhhcyBubyBzdXBw b3J0IGZvciAzMmJpdCBwcGd0dCAqLwogCQloYXNfZnVsbF9wcGd0dCA9IGZhbHNlOwotCQloYXNf ZnVsbF80OGJpdF9wcGd0dCA9IGludGVsX3ZncHVfaGFzX2Z1bGxfNDhiaXRfcHBndHQoZGV2X3By aXYpOworCQloYXNfZnVsbF80bHZsX3BwZ3R0ID0gaW50ZWxfdmdwdV9oYXNfZnVsbF80bHZsX3Bw Z3R0KGRldl9wcml2KTsKIAl9CiAKIAkvKgpAQCAtMTY0LDcgKzE2NCw3IEBAIGludCBpbnRlbF9z YW5pdGl6ZV9lbmFibGVfcHBndHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAog CWlmIChlbmFibGVfcHBndHQgPT0gMiAmJiBoYXNfZnVsbF9wcGd0dCkKIAkJcmV0dXJuIDI7CiAK LQlpZiAoZW5hYmxlX3BwZ3R0ID09IDMgJiYgaGFzX2Z1bGxfNDhiaXRfcHBndHQpCisJaWYgKGVu YWJsZV9wcGd0dCA9PSAzICYmIGhhc19mdWxsXzRsdmxfcHBndHQpCiAJCXJldHVybiAzOwogCiAJ LyogRGlzYWJsZSBwcGd0dCBvbiBTTkIgaWYgVlQtZCBpcyBvbi4gKi8KQEAgLTE3Myw3ICsxNzMs NyBAQCBpbnQgaW50ZWxfc2FuaXRpemVfZW5hYmxlX3BwZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKIAkJcmV0dXJuIDA7CiAJfQogCi0JaWYgKGhhc19mdWxsXzQ4Yml0X3Bw Z3R0KQorCWlmIChoYXNfZnVsbF80bHZsX3BwZ3R0KQogCQlyZXR1cm4gMzsKIAogCWlmIChoYXNf ZnVsbF9wcGd0dCkKQEAgLTYyOCwxNCArNjI4LDE0IEBAIHNldHVwX3NjcmF0Y2hfcGFnZShzdHJ1 Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwgZ2ZwX3QgZ2ZwKQogCSAqIHBhZ2UtdGFibGUgb3Bl cmF0aW5nIGluIDY0SyBtb2RlIG11c3QgcG9pbnQgdG8gYSBwcm9wZXJseSBhbGlnbmVkIDY0Swog CSAqIHJlZ2lvbiwgaW5jbHVkaW5nIGFueSBQVEVzIHdoaWNoIGhhcHBlbiB0byBwb2ludCB0byBz Y3JhdGNoLgogCSAqCi0JICogVGhpcyBpcyBvbmx5IHJlbGV2YW50IGZvciB0aGUgNDhiIFBQR1RU IHdoZXJlIHdlIHN1cHBvcnQKKwkgKiBUaGlzIGlzIG9ubHkgcmVsZXZhbnQgZm9yIHRoZSA0LWxl dmVsIFBQR1RUIHdoZXJlIHdlIHN1cHBvcnQKIAkgKiBodWdlLWd0dC1wYWdlcywgc2VlIGFsc28g aTkxNV92bWFfaW5zZXJ0KCkuCiAJICoKIAkgKiBUT0RPOiB3ZSBzaG91bGQgcmVhbGx5IGNvbnNp ZGVyIHdyaXRlLXByb3RlY3RpbmcgdGhlIHNjcmF0Y2gtcGFnZSBhbmQKIAkgKiBzaGFyaW5nIGJl dHdlZW4gcHBndHQKIAkgKi8KIAlzaXplID0gSTkxNV9HVFRfUEFHRV9TSVpFXzRLOwotCWlmIChp OTE1X3ZtX2lzXzQ4Yml0KHZtKSAmJgorCWlmIChpOTE1X3ZtX2lzXzRsdmwodm0pICYmCiAJICAg IEhBU19QQUdFX1NJWkVTKHZtLT5pOTE1LCBJOTE1X0dUVF9QQUdFX1NJWkVfNjRLKSkgewogCQlz aXplID0gSTkxNV9HVFRfUEFHRV9TSVpFXzY0SzsKIAkJZ2ZwIHw9IF9fR0ZQX05PV0FSTjsKQEAg LTc4MCw3ICs3ODAsNyBAQCBzdGF0aWMgdm9pZCBfX3BkcF9maW5pKHN0cnVjdCBpOTE1X3BhZ2Vf ZGlyZWN0b3J5X3BvaW50ZXIgKnBkcCkKIAogc3RhdGljIGlubGluZSBib29sIHVzZV80bHZsKGNv bnN0IHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQogewotCXJldHVybiBpOTE1X3ZtX2lz XzQ4Yml0KHZtKTsKKwlyZXR1cm4gaTkxNV92bV9pc180bHZsKHZtKTsKIH0KIAogc3RhdGljIHN0 cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5X3BvaW50ZXIgKgpAQCAtMTY0Nyw5ICsxNjQ3LDkgQEAg c3RhdGljIHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpnZW44X3BwZ3R0X2NyZWF0ZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlwcGd0dC0+dm0uaTkxNSA9IGk5MTU7CiAJcHBndHQtPnZt LmRtYSA9ICZpOTE1LT5kcm0ucGRldi0+ZGV2OwogCi0JcHBndHQtPnZtLnRvdGFsID0gVVNFU19G VUxMXzQ4QklUX1BQR1RUKGk5MTUpID8KLQkJMVVMTCA8PCA0OCA6Ci0JCTFVTEwgPDwgMzI7CisJ cHBndHQtPnZtLnRvdGFsID0gQklUX1VMTChpOTE1LT5pbmZvLmZ1bGxfcHBndHRfYml0cyk7CisJ aWYgKGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9wcGd0dCA8IDMpCisJCXBwZ3R0LT52bS50b3RhbCA9 IDFVTEwgPDwgMzI7CiAKIAkvKgogCSAqIEZyb20gYmR3LCB0aGVyZSBpcyBzdXBwb3J0IGZvciBy ZWFkLW9ubHkgcGFnZXMgaW4gdGhlIFBQR1RULgpAQCAtMTc4OCw3ICsxNzg4LDcgQEAgc3RhdGlj IHZvaWQgZ2VuOF9wcGd0dF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwogCiAJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwg ZGV2X3ByaXYsIGlkKSB7Ci0JCXUzMiBmb3VyX2xldmVsID0gVVNFU19GVUxMXzQ4QklUX1BQR1RU KGRldl9wcml2KSA/CisJCXUzMiBmb3VyX2xldmVsID0gVVNFU180TFZMX1BQR1RUKGRldl9wcml2 KSA/CiAJCQkJIEdFTjhfR0ZYX1BQR1RUXzQ4QiA6IDA7CiAJCUk5MTVfV1JJVEUoUklOR19NT0RF X0dFTjcoZW5naW5lKSwKIAkJCSAgIF9NQVNLRURfQklUX0VOQUJMRShHRlhfUFBHVFRfRU5BQkxF IHwgZm91cl9sZXZlbCkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAppbmRleCA3ZTJh ZjVmNGYzOWIuLmIyYTcwOWEyN2NiOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgK QEAgLTM2Myw3ICszNjMsNyBAQCBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlIHsKICNkZWZpbmUg aTkxNV9pc19nZ3R0KHZtKSAoKHZtKS0+aXNfZ2d0dCkKIAogc3RhdGljIGlubGluZSBib29sCi1p OTE1X3ZtX2lzXzQ4Yml0KGNvbnN0IHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQoraTkx NV92bV9pc180bHZsKGNvbnN0IHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQogewogCXJl dHVybiAodm0tPnRvdGFsIC0gMSkgPj4gMzI7CiB9CkBAIC01MDYsNyArNTA2LDcgQEAgc3RhdGlj IGlubGluZSB1MzIgZ2VuNl9wZGVfaW5kZXgodTMyIGFkZHIpCiBzdGF0aWMgaW5saW5lIHVuc2ln bmVkIGludAogaTkxNV9wZHBlc19wZXJfcGRwKGNvbnN0IHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3Bh Y2UgKnZtKQogewotCWlmIChpOTE1X3ZtX2lzXzQ4Yml0KHZtKSkKKwlpZiAoaTkxNV92bV9pc180 bHZsKHZtKSkKIAkJcmV0dXJuIEdFTjhfUE1MNEVTX1BFUl9QTUw0OwogCiAJcmV0dXJuIEdFTjhf M0xWTF9QRFBFUzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCmluZGV4IGQ2ZjdiOWZlMWQyNi4uNWY2 MjU3ODIyNGEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKQEAgLTI5OSw2ICsyOTksNyBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX3NhbmR5YnJpZGdlX21f Z3QyX2luZm8gPSB7CiAJLmhhc19yYzZwID0gMSwgXAogCS5oYXNfYWxpYXNpbmdfcHBndHQgPSAx LCBcCiAJLmhhc19mdWxsX3BwZ3R0ID0gMSwgXAorCS5mdWxsX3BwZ3R0X2JpdHMgPSAzMSwgXAog CUdFTl9ERUZBVUxUX1BJUEVPRkZTRVRTLCBcCiAJR0VOX0RFRkFVTFRfUEFHRV9TSVpFUywgXAog CUlWQl9DVVJTT1JfT0ZGU0VUUwpAQCAtMzUzLDYgKzM1NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfdmFsbGV5dmlld19pbmZvID0gewogCS5oYXNfaG90 cGx1ZyA9IDEsCiAJLmhhc19hbGlhc2luZ19wcGd0dCA9IDEsCiAJLmhhc19mdWxsX3BwZ3R0ID0g MSwKKwkuZnVsbF9wcGd0dF9iaXRzID0gMzEsCiAJLmhhc19zbm9vcCA9IHRydWUsCiAJLmhhc19j b2hlcmVudF9nZ3R0ID0gZmFsc2UsCiAJLnJpbmdfbWFzayA9IFJFTkRFUl9SSU5HIHwgQlNEX1JJ TkcgfCBCTFRfUklORywKQEAgLTM5OSw3ICs0MDEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlu dGVsX2RldmljZV9pbmZvIGludGVsX2hhc3dlbGxfZ3QzX2luZm8gPSB7CiAJLnBhZ2Vfc2l6ZXMg PSBJOTE1X0dUVF9QQUdFX1NJWkVfNEsgfCBcCiAJCSAgICAgIEk5MTVfR1RUX1BBR0VfU0laRV8y TSwgXAogCS5oYXNfbG9naWNhbF9yaW5nX2NvbnRleHRzID0gMSwgXAotCS5oYXNfZnVsbF80OGJp dF9wcGd0dCA9IDEsIFwKKwkuZnVsbF9wcGd0dF9iaXRzID0gNDgsIFwKIAkuaGFzXzY0Yml0X3Jl bG9jID0gMSwgXAogCS5oYXNfcmVzZXRfZW5naW5lID0gMQogCkBAIC00NDUsNiArNDQ3LDcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9jaGVycnl2aWV3X2lu Zm8gPSB7CiAJLmhhc19nbWNoX2Rpc3BsYXkgPSAxLAogCS5oYXNfYWxpYXNpbmdfcHBndHQgPSAx LAogCS5oYXNfZnVsbF9wcGd0dCA9IDEsCisJLmZ1bGxfcHBndHRfYml0cyA9IDMyLAogCS5oYXNf cmVzZXRfZW5naW5lID0gMSwKIAkuaGFzX3Nub29wID0gdHJ1ZSwKIAkuaGFzX2NvaGVyZW50X2dn dHQgPSBmYWxzZSwKQEAgLTUyMCw3ICs1MjMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVs X2RldmljZV9pbmZvIGludGVsX3NreWxha2VfZ3Q0X2luZm8gPSB7CiAJLmhhc19ndWMgPSAxLCBc CiAJLmhhc19hbGlhc2luZ19wcGd0dCA9IDEsIFwKIAkuaGFzX2Z1bGxfcHBndHQgPSAxLCBcCi0J Lmhhc19mdWxsXzQ4Yml0X3BwZ3R0ID0gMSwgXAorCS5mdWxsX3BwZ3R0X2JpdHMgPSA0OCwgXAog CS5oYXNfcmVzZXRfZW5naW5lID0gMSwgXAogCS5oYXNfc25vb3AgPSB0cnVlLCBcCiAJLmhhc19j b2hlcmVudF9nZ3R0ID0gZmFsc2UsIFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcHZpbmZvLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3B2aW5mby5oCmluZGV4 IGVlYWEzZDUwNmQ5NS4uYmM3Y2JkY2EwMmFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3B2aW5mby5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcHZpbmZv LmgKQEAgLTUyLDcgKzUyLDcgQEAgZW51bSB2Z3RfZzJ2X3R5cGUgewogLyoKICAqIFZHVCBjYXBh YmlsaXRpZXMgdHlwZQogICovCi0jZGVmaW5lIFZHVF9DQVBTX0ZVTExfNDhCSVRfUFBHVFQJQklU KDIpCisjZGVmaW5lIFZHVF9DQVBTXzRMVkxfUFBHVFQJCUJJVCgyKQogI2RlZmluZSBWR1RfQ0FQ U19IV1NQX0VNVUxBVElPTgkJQklUKDMpCiAjZGVmaW5lIFZHVF9DQVBTX0hVR0VfR1RUCQlCSVQo NCkKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYwppbmRleCA4NjljZjRhM2I2ZGUuLmVkZjkxNTlm ODk0YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmMKQEAgLTgxLDkgKzgxLDkgQEAgdm9pZCBp OTE1X2NoZWNrX3ZncHUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCURSTV9J TkZPKCJWaXJ0dWFsIEdQVSBmb3IgSW50ZWwgR1ZULWcgZGV0ZWN0ZWQuXG4iKTsKIH0KIAotYm9v bCBpbnRlbF92Z3B1X2hhc19mdWxsXzQ4Yml0X3BwZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKK2Jvb2wgaW50ZWxfdmdwdV9oYXNfZnVsbF80bHZsX3BwZ3R0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlyZXR1cm4gZGV2X3ByaXYtPnZncHUuY2Fw cyAmIFZHVF9DQVBTX0ZVTExfNDhCSVRfUFBHVFQ7CisJcmV0dXJuIGRldl9wcml2LT52Z3B1LmNh cHMgJiBWR1RfQ0FQU180TFZMX1BQR1RUOwogfQogCiBzdHJ1Y3QgX2JhbGxvb25faW5mb18gewpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3ZncHUuaAppbmRleCA1NTFhY2MzOTAwNDYuLmI4MzBhN2I1MDY0ZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogdm9pZCBpOTE1 X2NoZWNrX3ZncHUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIAotYm9vbCBp bnRlbF92Z3B1X2hhc19mdWxsXzQ4Yml0X3BwZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7Citib29sIGludGVsX3ZncHVfaGFzX2Z1bGxfNGx2bF9wcGd0dChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogCiBzdGF0aWMgaW5saW5lIGJvb2wKIGludGVsX3Zn cHVfaGFzX2h3c3BfZW11bGF0aW9uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oCmluZGV4IDZlZWNkNjQ3MzRk NS4uNTBhY2IwNDYzZTlhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k ZXZpY2VfaW5mby5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZv LmgKQEAgLTg4LDcgKzg4LDYgQEAgZW51bSBpbnRlbF9wbGF0Zm9ybSB7CiAJZnVuYyhoYXNfZmJj KTsgXAogCWZ1bmMoaGFzX2ZwZ2FfZGJnKTsgXAogCWZ1bmMoaGFzX2Z1bGxfcHBndHQpOyBcCi0J ZnVuYyhoYXNfZnVsbF80OGJpdF9wcGd0dCk7IFwKIAlmdW5jKGhhc19nbWNoX2Rpc3BsYXkpOyBc CiAJZnVuYyhoYXNfZ3VjKTsgXAogCWZ1bmMoaGFzX2d1Y19jdCk7IFwKQEAgLTE4Miw2ICsxODEs OSBAQCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gewogCQl1MTYgZGVnYW1tYV9sdXRfc2l6ZTsK IAkJdTE2IGdhbW1hX2x1dF9zaXplOwogCX0gY29sb3I7CisKKwkvKiBQUEdUVCBiaXQgc2l6ZSAq LworCWludCBmdWxsX3BwZ3R0X2JpdHM7CiB9OwogCiBzdHJ1Y3QgaW50ZWxfZHJpdmVyX2NhcHMg ewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCA5YjFmMGU1MjExYTAuLjRiYzJlODZhYmI1 MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAgLTQyOSw3ICs0MjksNyBAQCBzdGF0aWMg dTY0IGV4ZWNsaXN0c191cGRhdGVfY29udGV4dChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIAkg KiBQTUw0IGlzIGFsbG9jYXRlZCBkdXJpbmcgcHBndHQgaW5pdCwgc28gdGhpcyBpcyBub3QgbmVl ZGVkCiAJICogaW4gNDgtYml0IG1vZGUuCiAJICovCi0JaWYgKHBwZ3R0ICYmICFpOTE1X3ZtX2lz XzQ4Yml0KCZwcGd0dC0+dm0pKQorCWlmIChwcGd0dCAmJiAhaTkxNV92bV9pc180bHZsKCZwcGd0 dC0+dm0pKQogCQlleGVjbGlzdHNfdXBkYXRlX2NvbnRleHRfcGRwcyhwcGd0dCwgcmVnX3N0YXRl KTsKIAogCXJldHVybiBjZS0+bHJjX2Rlc2M7CkBAIC0yMDI3LDcgKzIwMjcsNyBAQCBzdGF0aWMg aW50IGdlbjhfZW1pdF9iYl9zdGFydChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKIAkgKiBub3Qg bmVlZGVkIGluIDQ4LWJpdC4qLwogCWlmIChycS0+Z2VtX2NvbnRleHQtPnBwZ3R0ICYmCiAJICAg IChpbnRlbF9lbmdpbmVfZmxhZyhycS0+ZW5naW5lKSAmIHJxLT5nZW1fY29udGV4dC0+cHBndHQt PnBkX2RpcnR5X3JpbmdzKSAmJgotCSAgICAhaTkxNV92bV9pc180OGJpdCgmcnEtPmdlbV9jb250 ZXh0LT5wcGd0dC0+dm0pICYmCisJICAgICFpOTE1X3ZtX2lzXzRsdmwoJnJxLT5nZW1fY29udGV4 dC0+cHBndHQtPnZtKSAmJgogCSAgICAhaW50ZWxfdmdwdV9hY3RpdmUocnEtPmk5MTUpKSB7CiAJ CXJldCA9IGludGVsX2xvZ2ljYWxfcmluZ19lbWl0X3BkcHMocnEpOwogCQlpZiAocmV0KQpAQCAt MjY5Niw4ICsyNjk2LDggQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2luaXRfcmVnX3N0YXRlKHUz MiAqcmVncywKIAlDVFhfUkVHKHJlZ3MsIENUWF9QRFAwX1VEVywgR0VOOF9SSU5HX1BEUF9VRFco ZW5naW5lLCAwKSwgMCk7CiAJQ1RYX1JFRyhyZWdzLCBDVFhfUERQMF9MRFcsIEdFTjhfUklOR19Q RFBfTERXKGVuZ2luZSwgMCksIDApOwogCi0JaWYgKHBwZ3R0ICYmIGk5MTVfdm1faXNfNDhiaXQo JnBwZ3R0LT52bSkpIHsKLQkJLyogNjRiIFBQR1RUICg0OGJpdCBjYW5vbmljYWwpCisJaWYgKHBw Z3R0ICYmIGk5MTVfdm1faXNfNGx2bCgmcHBndHQtPnZtKSkgeworCQkvKiA+IDMyYiBQUEdUVAog CQkgKiBQRFAwX0RFU0NSSVBUT1IgY29udGFpbnMgdGhlIGJhc2UgYWRkcmVzcyB0byBQTUw0IGFu ZAogCQkgKiBvdGhlciBQRFAgRGVzY3JpcHRvcnMgYXJlIGlnbm9yZWQuCiAJCSAqLwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2h1Z2VfcGFnZXMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9odWdlX3BhZ2VzLmMKaW5kZXggZTI3MjEyNzc4M2Zl Li5iMmNiYWQ3ZjM5OGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0 cy9odWdlX3BhZ2VzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2h1Z2Vf cGFnZXMuYwpAQCAtMTQzNCw4ICsxNDM0LDggQEAgc3RhdGljIGludCBpZ3RfcHBndHRfcGluX3Vw ZGF0ZSh2b2lkICphcmcpCiAJICogaHVnZS1ndHQtcGFnZXMuCiAJICovCiAKLQlpZiAoIVVTRVNf RlVMTF80OEJJVF9QUEdUVChkZXZfcHJpdikpIHsKLQkJcHJfaW5mbygiNDhiIFBQR1RUIG5vdCBz dXBwb3J0ZWQsIHNraXBwaW5nXG4iKTsKKwlpZiAoIVVTRVNfNExWTF9QUEdUVChkZXZfcHJpdikp IHsKKwkJcHJfaW5mbygiRXh0ZW5kZWQgcmFuZ2UgUFBHVFQgbm90IHN1cHBvcnRlZCwgc2tpcHBp bmdcbiIpOwogCQlyZXR1cm4gMDsKIAl9CiAKQEAgLTE3MDgsOCArMTcwOCw4IEBAIGludCBpOTE1 X2dlbV9odWdlX3BhZ2VfbW9ja19zZWxmdGVzdHModm9pZCkKIAkJZ290byBvdXRfdW5sb2NrOwog CX0KIAotCWlmICghaTkxNV92bV9pc180OGJpdCgmcHBndHQtPnZtKSkgewotCQlwcl9lcnIoImZh aWxlZCB0byBjcmVhdGUgNDhiIFBQR1RUXG4iKTsKKwlpZiAoIWk5MTVfdm1faXNfNGx2bCgmcHBn dHQtPnZtKSkgeworCQlwcl9lcnIoImZhaWxlZCB0byBjcmVhdGUgZXh0ZW5kZWQgUFBHVFRcbiIp OwogCQllcnIgPSAtRUlOVkFMOwogCQlnb3RvIG91dF9jbG9zZTsKIAl9CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMKaW5kZXggNDNlZDhiMjhh ZWFhLi4zM2Q3MjI1ZWRiYmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVz dHMvbW9ja19nZW1fZGV2aWNlLmMKQEAgLTE4MSw2ICsxODEsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqbW9ja19nZW1fZGV2aWNlKHZvaWQpCiAJCUk5MTVfR1RUX1BBR0VfU0laRV82NEsg fAogCQlJOTE1X0dUVF9QQUdFX1NJWkVfMk07CiAKKwlta3dyaXRlX2RldmljZV9pbmZvKGk5MTUp LT5mdWxsX3BwZ3R0X2JpdHMgPSA0ODsKKwogCW1vY2tfdW5jb3JlX2luaXQoaTkxNSk7CiAJaTkx NV9nZW1faW5pdF9fbW0oaTkxNSk7CiAKLS0gCjIuMTQuNAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==