From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 25/73] drm/i915: Split early global GTT initialisation Date: Mon, 1 Aug 2016 10:10:33 +0100 Message-ID: <1470042681-25318-26-git-send-email-chris@chris-wilson.co.uk> References: <1470042681-25318-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id C82976E255 for ; Mon, 1 Aug 2016 09:12:05 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id o80so25248894wme.0 for ; Mon, 01 Aug 2016 02:12:05 -0700 (PDT) In-Reply-To: <1470042681-25318-1-git-send-email-chris@chris-wilson.co.uk> 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 SW5pdGlhbGlzaW5nIHRoZSBnbG9iYWwgR1RUIGlzIHRyaWNreSBhcyB3ZSB3aXNoIHRvIHVzZSB0 aGUgZHJtX21tIHJhbmdlCm1hbmFnZXIgZHVyaW5nIHRoZSBtb2Rlc2V0dGluZyBpbml0aWFsaXNh dGlvbiAodG8gY2FwdHVyZSBzdG9sZW4KYWxsb2NhdGlvbnMgZnJvbSB0aGUgQklPUykgYmVmb3Jl IHdlIGFjdHVhbGx5IGVuYWJsZSBHRU0uIFRvIG92ZXJjb21lCnRoaXMsIHdlIGN1cnJlbnRseSBz ZXR1cCB0aGUgZHJtX21tIGZpcnN0IGFuZCB0aGVuIGNhcmVmdWxseSByZWJpbmQKdGhlbS4KCnYy OiBGaXh1cCBhZnRlciByZWJhc2luZwoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJp c0BjaHJpcy13aWxzb24uY28udWs+ClJldmlld2VkLWJ5OiBKb29uYXMgTGFodGluZW4gPGpvb25h cy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuYyAgICAgICAgfCAxOSAtLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jICAgICAgICB8ICA2ICsrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMg ICAgfCA5NSArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ndHQuaCAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9zdG9sZW4uYyB8IDE3ICsrKy0tLQogNSBmaWxlcyBjaGFuZ2VkLCA0OCBpbnNlcnRp b25zKCspLCA5MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCA4M2Fm ZGQwNTk3YjUuLjQ3OGU4MTY4YWQ5NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC05OTMs OCArOTkzLDYgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2FuaXRpemVfb3B0aW9ucyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiBzdGF0aWMgaW50IGk5MTVfZHJpdmVyX2luaXRfaHco c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKLQlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmRldl9w cml2LT5nZ3R0OwotCXVpbnQzMl90IGFwZXJ0dXJlX3NpemU7CiAJaW50IHJldDsKIAogCWlmIChp OTE1X2luamVjdF9sb2FkX2ZhaWx1cmUoKSkKQEAgLTEwNDAsNyArMTAzOCw2IEBAIHN0YXRpYyBp bnQgaTkxNV9kcml2ZXJfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiAJCX0KIAl9CiAKLQogCS8qIDk2NUdNIHNvbWV0aW1lcyBpbmNvcnJlY3RseSB3cml0ZXMgdG8g aGFyZHdhcmUgc3RhdHVzIHBhZ2UgKEhXUykKIAkgKiB1c2luZyAzMmJpdCBhZGRyZXNzaW5nLCBv dmVyd3JpdGluZyBtZW1vcnkgaWYgSFdTIGlzIGxvY2F0ZWQKIAkgKiBhYm92ZSA0R0IuCkBAIC0x MDU5LDE5ICsxMDU2LDYgQEAgc3RhdGljIGludCBpOTE1X2RyaXZlcl9pbml0X2h3KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJfQogCX0KIAotCWFwZXJ0dXJlX3NpemUgPSBn Z3R0LT5tYXBwYWJsZV9lbmQ7Ci0KLQlnZ3R0LT5tYXBwYWJsZSA9Ci0JCWlvX21hcHBpbmdfY3Jl YXRlX3djKGdndHQtPm1hcHBhYmxlX2Jhc2UsCi0JCQkJICAgICBhcGVydHVyZV9zaXplKTsKLQlp ZiAoIWdndHQtPm1hcHBhYmxlKSB7Ci0JCXJldCA9IC1FSU87Ci0JCWdvdG8gb3V0X2dndHQ7Ci0J fQotCi0JZ2d0dC0+bXRyciA9IGFyY2hfcGh5c193Y19hZGQoZ2d0dC0+bWFwcGFibGVfYmFzZSwK LQkJCQkJICAgICAgYXBlcnR1cmVfc2l6ZSk7Ci0KIAlwbV9xb3NfYWRkX3JlcXVlc3QoJmRldl9w cml2LT5wbV9xb3MsIFBNX1FPU19DUFVfRE1BX0xBVEVOQ1ksCiAJCQkgICBQTV9RT1NfREVGQVVM VF9WQUxVRSk7CiAKQEAgLTExMTIsMTQgKzEwOTYsMTEgQEAgb3V0X2dndHQ6CiBzdGF0aWMgdm9p ZCBpOTE1X2RyaXZlcl9jbGVhbnVwX2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Ci0Jc3RydWN0 IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZfcHJpdi0+Z2d0dDsKIAogCWlmIChkZXYtPnBkZXYtPm1z aV9lbmFibGVkKQogCQlwY2lfZGlzYWJsZV9tc2koZGV2LT5wZGV2KTsKIAogCXBtX3Fvc19yZW1v dmVfcmVxdWVzdCgmZGV2X3ByaXYtPnBtX3Fvcyk7Ci0JYXJjaF9waHlzX3djX2RlbChnZ3R0LT5t dHJyKTsKLQlpb19tYXBwaW5nX2ZyZWUoZ2d0dC0+bWFwcGFibGUpOwogCWk5MTVfZ2d0dF9jbGVh bnVwX2h3KGRldik7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDNkZjZiNDg1ZDJk NC4uYTBlYTFlZTE2ZjY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTQ1NDMsNyArNDU0 MywxMCBAQCBpbnQgaTkxNV9nZW1faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWludGVs X3VuY29yZV9mb3JjZXdha2VfZ2V0KGRldl9wcml2LCBGT1JDRVdBS0VfQUxMKTsKIAogCWk5MTVf Z2VtX2luaXRfdXNlcnB0cihkZXZfcHJpdik7Ci0JaTkxNV9nZW1faW5pdF9nZ3R0KGRldik7CisK KwlyZXQgPSBpOTE1X2dlbV9pbml0X2dndHQoZGV2KTsKKwlpZiAocmV0KQorCQlnb3RvIG91dF91 bmxvY2s7CiAKIAlyZXQgPSBpOTE1X2dlbV9jb250ZXh0X2luaXQoZGV2KTsKIAlpZiAocmV0KQpA QCAtNDYzNCw3ICs0NjM3LDYgQEAgaTkxNV9nZW1fbG9hZF9pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiAJCQkJICBTTEFCX0hXQ0FDSEVfQUxJR04sCiAJCQkJICBOVUxMKTsKIAotCUlOSVRf TElTVF9IRUFEKCZkZXZfcHJpdi0+dm1fbGlzdCk7CiAJSU5JVF9MSVNUX0hFQUQoJmRldl9wcml2 LT5jb250ZXh0X2xpc3QpOwogCUlOSVRfTElTVF9IRUFEKCZkZXZfcHJpdi0+bW0udW5ib3VuZF9s aXN0KTsKIAlJTklUX0xJU1RfSEVBRCgmZGV2X3ByaXYtPm1tLmJvdW5kX2xpc3QpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ndHQuYwppbmRleCA2NzFiMWNhYjVlNTQuLmI3NmIwMjEzZGEwYyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKQEAgLTI3NDYsMTAgKzI3NDYsNyBAQCBz dGF0aWMgdm9pZCBpOTE1X2d0dF9jb2xvcl9hZGp1c3Qoc3RydWN0IGRybV9tbV9ub2RlICpub2Rl LAogCQkqZW5kIC09IDQwOTY7CiB9CiAKLXN0YXRpYyBpbnQgaTkxNV9nZW1fc2V0dXBfZ2xvYmFs X2d0dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCSAgICAgdTY0IHN0YXJ0LAotCQkJCSAg ICAgdTY0IG1hcHBhYmxlX2VuZCwKLQkJCQkgICAgIHU2NCBlbmQpCitpbnQgaTkxNV9nZW1faW5p dF9nZ3R0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJLyogTGV0IEdFTSBNYW5hZ2UgYWxs IG9mIHRoZSBhcGVydHVyZS4KIAkgKgpAQCAtMjc2Miw0NiArMjc1OSwxNCBAQCBzdGF0aWMgaW50 IGk5MTVfZ2VtX3NldHVwX2dsb2JhbF9ndHQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkgKi8K IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3Ry dWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZfcHJpdi0+Z2d0dDsKLQlzdHJ1Y3QgZHJtX21tX25v ZGUgKmVudHJ5OwotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJdW5zaWduZWQg bG9uZyBob2xlX3N0YXJ0LCBob2xlX2VuZDsKKwlzdHJ1Y3QgZHJtX21tX25vZGUgKmVudHJ5Owog CWludCByZXQ7CiAKLQlCVUdfT04obWFwcGFibGVfZW5kID4gZW5kKTsKLQotCWdndHQtPmJhc2Uu c3RhcnQgPSBzdGFydDsKLQotCS8qIFN1YnRyYWN0IHRoZSBndWFyZCBwYWdlIGJlZm9yZSBhZGRy ZXNzIHNwYWNlIGluaXRpYWxpemF0aW9uIHRvCi0JICogc2hyaW5rIHRoZSByYW5nZSB1c2VkIGJ5 IGRybV9tbSAqLwotCWdndHQtPmJhc2UudG90YWwgPSBlbmQgLSBzdGFydCAtIFBBR0VfU0laRTsK LQlpOTE1X2FkZHJlc3Nfc3BhY2VfaW5pdCgmZ2d0dC0+YmFzZSwgZGV2X3ByaXYpOwotCWdndHQt PmJhc2UudG90YWwgKz0gUEFHRV9TSVpFOwotCiAJcmV0ID0gaW50ZWxfdmd0X2JhbGxvb24oZGV2 X3ByaXYpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlpZiAoIUhBU19MTEMoZGV2KSkK LQkJZ2d0dC0+YmFzZS5tbS5jb2xvcl9hZGp1c3QgPSBpOTE1X2d0dF9jb2xvcl9hZGp1c3Q7Ci0K LQkvKiBNYXJrIGFueSBwcmVhbGxvY2F0ZWQgb2JqZWN0cyBhcyBvY2N1cGllZCAqLwotCWxpc3Rf Zm9yX2VhY2hfZW50cnkob2JqLCAmZGV2X3ByaXYtPm1tLmJvdW5kX2xpc3QsIGdsb2JhbF9saXN0 KSB7Ci0JCXN0cnVjdCBpOTE1X3ZtYSAqdm1hID0gaTkxNV9nZW1fb2JqX3RvX3ZtYShvYmosICZn Z3R0LT5iYXNlKTsKLQotCQlEUk1fREVCVUdfS01TKCJyZXNlcnZpbmcgcHJlYWxsb2NhdGVkIHNw YWNlOiAlbGx4ICsgJXp4XG4iLAotCQkJICAgICAgaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KG9i aiksIG9iai0+YmFzZS5zaXplKTsKLQotCQlXQVJOX09OKGk5MTVfZ2VtX29ial9nZ3R0X2JvdW5k KG9iaikpOwotCQlyZXQgPSBkcm1fbW1fcmVzZXJ2ZV9ub2RlKCZnZ3R0LT5iYXNlLm1tLCAmdm1h LT5ub2RlKTsKLQkJaWYgKHJldCkgewotCQkJRFJNX0RFQlVHX0tNUygiUmVzZXJ2YXRpb24gZmFp bGVkOiAlaVxuIiwgcmV0KTsKLQkJCXJldHVybiByZXQ7Ci0JCX0KLQkJdm1hLT5ib3VuZCB8PSBH TE9CQUxfQklORDsKLQkJX19pOTE1X3ZtYV9zZXRfbWFwX2FuZF9mZW5jZWFibGUodm1hKTsKLQkJ bGlzdF9hZGRfdGFpbCgmdm1hLT52bV9saW5rLCAmZ2d0dC0+YmFzZS5pbmFjdGl2ZV9saXN0KTsK LQl9Ci0KIAkvKiBDbGVhciBhbnkgbm9uLXByZWFsbG9jYXRlZCBibG9ja3MgKi8KIAlkcm1fbW1f Zm9yX2VhY2hfaG9sZShlbnRyeSwgJmdndHQtPmJhc2UubW0sIGhvbGVfc3RhcnQsIGhvbGVfZW5k KSB7CiAJCURSTV9ERUJVR19LTVMoImNsZWFyaW5nIHVudXNlZCBHVFQgc3BhY2U6IFslbHgsICVs eF1cbiIsCkBAIC0yODExLDkgKzI3NzYsMTEgQEAgc3RhdGljIGludCBpOTE1X2dlbV9zZXR1cF9n bG9iYWxfZ3R0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJfQogCiAJLyogQW5kIGZpbmFsbHkg Y2xlYXIgdGhlIHJlc2VydmVkIGd1YXJkIHBhZ2UgKi8KLQlnZ3R0LT5iYXNlLmNsZWFyX3Jhbmdl KCZnZ3R0LT5iYXNlLCBlbmQgLSBQQUdFX1NJWkUsIFBBR0VfU0laRSwgdHJ1ZSk7CisJZ2d0dC0+ YmFzZS5jbGVhcl9yYW5nZSgmZ2d0dC0+YmFzZSwKKwkJCSAgICAgICBnZ3R0LT5iYXNlLnRvdGFs IC0gUEFHRV9TSVpFLCBQQUdFX1NJWkUsCisJCQkgICAgICAgdHJ1ZSk7CiAKLQlpZiAoVVNFU19Q UEdUVChkZXYpICYmICFVU0VTX0ZVTExfUFBHVFQoZGV2KSkgeworCWlmIChVU0VTX1BQR1RUKGRl dl9wcml2KSAmJiAhVVNFU19GVUxMX1BQR1RUKGRldl9wcml2KSkgewogCQlzdHJ1Y3QgaTkxNV9o d19wcGd0dCAqcHBndHQ7CiAKIAkJcHBndHQgPSBremFsbG9jKHNpemVvZigqcHBndHQpLCBHRlBf S0VSTkVMKTsKQEAgLTI4NTAsMTggKzI4MTcsNiBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX3NldHVw X2dsb2JhbF9ndHQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIH0KIAogLyoqCi0gKiBpOTE1X2dl bV9pbml0X2dndHQgLSBJbml0aWFsaXplIEdFTSBmb3IgR2xvYmFsIEdUVAotICogQGRldjogRFJN IGRldmljZQotICovCi12b2lkIGk5MTVfZ2VtX2luaXRfZ2d0dChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2 KTsKLQlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmRldl9wcml2LT5nZ3R0OwotCi0JaTkxNV9n ZW1fc2V0dXBfZ2xvYmFsX2d0dChkZXYsIDAsIGdndHQtPm1hcHBhYmxlX2VuZCwgZ2d0dC0+YmFz ZS50b3RhbCk7Ci19Ci0KLS8qKgogICogaTkxNV9nZ3R0X2NsZWFudXBfaHcgLSBDbGVhbiB1cCBH R1RUIGhhcmR3YXJlIGluaXRpYWxpemF0aW9uCiAgKiBAZGV2OiBEUk0gZGV2aWNlCiAgKi8KQEAg LTI4ODYsNiArMjg0MSw5IEBAIHZvaWQgaTkxNV9nZ3R0X2NsZWFudXBfaHcoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIAl9CiAKIAlnZ3R0LT5iYXNlLmNsZWFudXAoJmdndHQtPmJhc2UpOworCisJ YXJjaF9waHlzX3djX2RlbChnZ3R0LT5tdHJyKTsKKwlpb19tYXBwaW5nX2ZyZWUoZ2d0dC0+bWFw cGFibGUpOwogfQogCiBzdGF0aWMgdW5zaWduZWQgaW50IGdlbjZfZ2V0X3RvdGFsX2d0dF9zaXpl KHUxNiBzbmJfZ21jaF9jdGwpCkBAIC0zMjE3LDEwICszMTc1LDEyIEBAIGludCBpOTE1X2dndHRf aW5pdF9odyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0cnVjdCBpOTE1X2dndHQgKmdndHQg PSAmZGV2X3ByaXYtPmdndHQ7CiAJaW50IHJldDsKIAotCWlmIChJTlRFTF9JTkZPKGRldiktPmdl biA8PSA1KSB7CisJSU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT52bV9saXN0KTsKKworCWlmIChJ TlRFTF9HRU4oZGV2KSA8PSA1KSB7CiAJCWdndHQtPnByb2JlID0gaTkxNV9nbWNoX3Byb2JlOwog CQlnZ3R0LT5iYXNlLmNsZWFudXAgPSBpOTE1X2dtY2hfcmVtb3ZlOwotCX0gZWxzZSBpZiAoSU5U RUxfSU5GTyhkZXYpLT5nZW4gPCA4KSB7CisJfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2KSA8IDgp IHsKIAkJZ2d0dC0+cHJvYmUgPSBnZW42X2dtY2hfcHJvYmU7CiAJCWdndHQtPmJhc2UuY2xlYW51 cCA9IGdlbjZfZ21jaF9yZW1vdmU7CiAKQEAgLTMyNTQsMTMgKzMyMTQsMjEgQEAgaW50IGk5MTVf Z2d0dF9pbml0X2h3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCWdndHQtPm1hcHBhYmxlX2Vu ZCA9IG1pbihnZ3R0LT5tYXBwYWJsZV9lbmQsIGdndHQtPmJhc2UudG90YWwpOwogCX0KIAotCS8q Ci0JICogSW5pdGlhbGlzZSBzdG9sZW4gZWFybHkgc28gdGhhdCB3ZSBtYXkgcmVzZXJ2ZSBwcmVh bGxvY2F0ZWQKLQkgKiBvYmplY3RzIGZvciB0aGUgQklPUyB0byBLTVMgdHJhbnNpdGlvbi4KKwkv KiBTdWJ0cmFjdCB0aGUgZ3VhcmQgcGFnZSBiZWZvcmUgYWRkcmVzcyBzcGFjZSBpbml0aWFsaXph dGlvbiB0bworCSAqIHNocmluayB0aGUgcmFuZ2UgdXNlZCBieSBkcm1fbW0uCiAJICovCi0JcmV0 ID0gaTkxNV9nZW1faW5pdF9zdG9sZW4oZGV2KTsKLQlpZiAocmV0KQotCQlnb3RvIG91dF9ndHRf Y2xlYW51cDsKKwlnZ3R0LT5iYXNlLnRvdGFsIC09IFBBR0VfU0laRTsKKwlpOTE1X2FkZHJlc3Nf c3BhY2VfaW5pdCgmZ2d0dC0+YmFzZSwgZGV2X3ByaXYpOworCWdndHQtPmJhc2UudG90YWwgKz0g UEFHRV9TSVpFOworCWlmICghSEFTX0xMQyhkZXZfcHJpdikpCisJCWdndHQtPmJhc2UubW0uY29s b3JfYWRqdXN0ID0gaTkxNV9ndHRfY29sb3JfYWRqdXN0OworCisJZ2d0dC0+bWFwcGFibGUgPQor CQlpb19tYXBwaW5nX2NyZWF0ZV93YyhnZ3R0LT5tYXBwYWJsZV9iYXNlLCBnZ3R0LT5tYXBwYWJs ZV9lbmQpOworCWlmICghZ2d0dC0+bWFwcGFibGUpCisJCXJldHVybiAtRUlPOworCisJZ2d0dC0+ bXRyciA9IGFyY2hfcGh5c193Y19hZGQoZ2d0dC0+bWFwcGFibGVfYmFzZSwgZ2d0dC0+bWFwcGFi bGVfZW5kKTsKIAogCS8qIEdNQURSIGlzIHRoZSBQQ0kgbW1pbyBhcGVydHVyZSBpbnRvIHRoZSBn bG9iYWwgR1RULiAqLwogCURSTV9JTkZPKCJNZW1vcnkgdXNhYmxlIGJ5IGdyYXBoaWNzIGRldmlj ZSA9ICVsbHVNXG4iLApAQCAtMzI3MiwxMSArMzI0MCwxOCBAQCBpbnQgaTkxNV9nZ3R0X2luaXRf aHcoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJRFJNX0lORk8oIlZULWQgYWN0aXZlIGZvciBn ZnggYWNjZXNzXG4iKTsKICNlbmRpZgogCisJLyoKKwkgKiBJbml0aWFsaXNlIHN0b2xlbiBlYXJs eSBzbyB0aGF0IHdlIG1heSByZXNlcnZlIHByZWFsbG9jYXRlZAorCSAqIG9iamVjdHMgZm9yIHRo ZSBCSU9TIHRvIEtNUyB0cmFuc2l0aW9uLgorCSAqLworCXJldCA9IGk5MTVfZ2VtX2luaXRfc3Rv bGVuKGRldik7CisJaWYgKHJldCkKKwkJZ290byBvdXRfZ3R0X2NsZWFudXA7CisKIAlyZXR1cm4g MDsKIAogb3V0X2d0dF9jbGVhbnVwOgogCWdndHQtPmJhc2UuY2xlYW51cCgmZ2d0dC0+YmFzZSk7 Ci0KIAlyZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCmluZGV4 IGM0YTY1Nzk3M2NjNi4uYzM0N2UyYTIyYzY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9ndHQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9n dHQuaApAQCAtNTIzLDcgKzUyMyw3IEBAIGk5MTVfcGFnZV9kaXJfZG1hX2FkZHIoY29uc3Qgc3Ry dWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LCBjb25zdCB1bnNpZ25lZCBuKQogCiBpbnQgaTkxNV9n Z3R0X2luaXRfaHcoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiBpbnQgaTkxNV9nZ3R0X2VuYWJs ZV9odyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLXZvaWQgaTkxNV9nZW1faW5pdF9nZ3R0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpOworaW50IGk5MTVfZ2VtX2luaXRfZ2d0dChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KTsKIHZvaWQgaTkxNV9nZ3R0X2NsZWFudXBfaHcoc3RydWN0IGRybV9kZXZp Y2UgKmRldik7CiAKIGludCBpOTE1X3BwZ3R0X2luaXRfaHcoc3RydWN0IGRybV9kZXZpY2UgKmRl dik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCmluZGV4IDMxMDc1NmMzMDcy My4uOWE4Y2M4YzUxMDc3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9zdG9sZW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYwpA QCAtNjk4LDE4ICs2OTgsMTcgQEAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW5fZm9yX3By ZWFsbG9jYXRlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCSAqLwogCXZtYS0+bm9kZS5zdGFy dCA9IGd0dF9vZmZzZXQ7CiAJdm1hLT5ub2RlLnNpemUgPSBzaXplOwotCWlmIChkcm1fbW1faW5p dGlhbGl6ZWQoJmdndHQtPmJhc2UubW0pKSB7Ci0JCXJldCA9IGRybV9tbV9yZXNlcnZlX25vZGUo JmdndHQtPmJhc2UubW0sICZ2bWEtPm5vZGUpOwotCQlpZiAocmV0KSB7Ci0JCQlEUk1fREVCVUdf S01TKCJmYWlsZWQgdG8gYWxsb2NhdGUgc3RvbGVuIEdUVCBzcGFjZVxuIik7Ci0JCQlnb3RvIGVy cjsKLQkJfQogCi0JCXZtYS0+Ym91bmQgfD0gR0xPQkFMX0JJTkQ7Ci0JCV9faTkxNV92bWFfc2V0 X21hcF9hbmRfZmVuY2VhYmxlKHZtYSk7Ci0JCWxpc3RfYWRkX3RhaWwoJnZtYS0+dm1fbGluaywg JmdndHQtPmJhc2UuaW5hY3RpdmVfbGlzdCk7CisJcmV0ID0gZHJtX21tX3Jlc2VydmVfbm9kZSgm Z2d0dC0+YmFzZS5tbSwgJnZtYS0+bm9kZSk7CisJaWYgKHJldCkgeworCQlEUk1fREVCVUdfS01T KCJmYWlsZWQgdG8gYWxsb2NhdGUgc3RvbGVuIEdUVCBzcGFjZVxuIik7CisJCWdvdG8gZXJyOwog CX0KIAorCXZtYS0+Ym91bmQgfD0gR0xPQkFMX0JJTkQ7CisJX19pOTE1X3ZtYV9zZXRfbWFwX2Fu ZF9mZW5jZWFibGUodm1hKTsKKwlsaXN0X2FkZF90YWlsKCZ2bWEtPnZtX2xpbmssICZnZ3R0LT5i YXNlLmluYWN0aXZlX2xpc3QpOworCiAJbGlzdF9hZGRfdGFpbCgmb2JqLT5nbG9iYWxfbGlzdCwg JmRldl9wcml2LT5tbS5ib3VuZF9saXN0KTsKIAlpOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKG9i aik7CiAKLS0gCjIuOC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK