From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH v4 14/19] drm/mgag200: Convert mgag200 driver to VRAM MM Date: Mon, 6 May 2019 10:26:44 +0200 Message-ID: <20190506082649.942-15-tzimmermann@suse.de> References: <20190506082649.942-1-tzimmermann@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.suse.de (mx2.suse.de [195.135.220.15]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6AB6B89700 for ; Mon, 6 May 2019 08:27:03 +0000 (UTC) In-Reply-To: <20190506082649.942-1-tzimmermann@suse.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: daniel@ffwll.ch, airlied@linux.ie, kraxel@redhat.com, christian.koenig@amd.com, ray.huang@amd.com, hdegoede@redhat.com, noralf@tronnes.org, sam@ravnborg.org, z.liuxinliang@hisilicon.com, zourongrong@gmail.com, kong.kongxinwei@hisilicon.com, puck.chen@hisilicon.com Cc: Thomas Zimmermann , dri-devel@lists.freedesktop.org, virtualization@lists.linux-foundation.org List-Id: dri-devel@lists.freedesktop.org VGhlIGRhdGEgc3RydWN0dXJlIHxzdHJ1Y3QgZHJtX3ZyYW1fbW18IGFuZCBpdHMgaGVscGVycyBy ZXBsYWNlIG1nYWcyMDAncwpUVE0tYmFzZWQgbWVtb3J5IG1hbmFnZXIuIEl0J3MgdGhlIHNhbWUg aW1wbGVtZW50YXRpb247IGV4Y2VwdCBmb3IgdGhlIHR5cGUKbmFtZXMuCgp2NDoKCSogZG9uJ3Qg c2VsZWN0IERSTV9UVE0gb3IgRFJNX1ZSQU1fTU1fSEVMUEVSCnYzOgoJKiB1c2UgZHJtX2dlbV92 cmFtX21tX2Z1bmNzCgkqIGNvbnZlcnQgZHJpdmVyIHRvIGRybV9kZXZpY2UtYmFzZWQgaW5zdGFu Y2UKdjI6CgkqIGltcGxlbWVudCBtZ2FnMjAwX21tYXAoKSB3aXRoIGRybV92cmFtX21tX21tYXAo KQoKU2lnbmVkLW9mZi1ieTogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1c2UuZGU+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvS2NvbmZpZyAgICAgICAgfCAgIDEgLQogZHJp dmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9kcnYuYyAgfCAgMTQgKy0tCiBkcml2ZXJzL2dw dS9kcm0vbWdhZzIwMC9tZ2FnMjAwX2Rydi5oICB8ICAxMSArLQogZHJpdmVycy9ncHUvZHJtL21n YWcyMDAvbWdhZzIwMF9tYWluLmMgfCAgMTcgKy0tLQogZHJpdmVycy9ncHUvZHJtL21nYWcyMDAv bWdhZzIwMF90dG0uYyAgfCAxMzMgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogNSBmaWxlcyBj aGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAxNjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAw L0tjb25maWcKaW5kZXggOTA3YmIyMTYyMjI4Li43MzhlZDIwMTYzYzcgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9tZ2FnMjAwL0tjb25maWcKKysrIGIvZHJpdmVycy9ncHUvZHJtL21nYWcy MDAvS2NvbmZpZwpAQCAtMiw3ICsyLDYgQEAgY29uZmlnIERSTV9NR0FHMjAwCiAJdHJpc3RhdGUg Iktlcm5lbCBtb2Rlc2V0dGluZyBkcml2ZXIgZm9yIE1HQSBHMjAwIHNlcnZlciBlbmdpbmVzIgog CWRlcGVuZHMgb24gRFJNICYmIFBDSSAmJiBNTVUKIAlzZWxlY3QgRFJNX0tNU19IRUxQRVIKLQlz ZWxlY3QgRFJNX1RUTQogCXNlbGVjdCBEUk1fVlJBTV9IRUxQRVIKIAloZWxwCiAJIFRoaXMgaXMg YSBLTVMgZHJpdmVyIGZvciB0aGUgTUdBIEcyMDAgc2VydmVyIGNoaXBzLCBpdApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9tZ2FnMjAwL21nYWcyMDBfZHJ2LmMKaW5kZXggMWYyYTAzNGQ1YTliLi45M2JkMTU4OWU1MGUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfZHJ2LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9kcnYuYwpAQCAtNTksMTMgKzU5LDcgQEAg c3RhdGljIHZvaWQgbWdhX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAKIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG1nYWcyMDBfZHJpdmVyX2ZvcHMgPSB7CiAJ Lm93bmVyID0gVEhJU19NT0RVTEUsCi0JLm9wZW4gPSBkcm1fb3BlbiwKLQkucmVsZWFzZSA9IGRy bV9yZWxlYXNlLAotCS51bmxvY2tlZF9pb2N0bCA9IGRybV9pb2N0bCwKLQkubW1hcCA9IG1nYWcy MDBfbW1hcCwKLQkucG9sbCA9IGRybV9wb2xsLAotCS5jb21wYXRfaW9jdGwgPSBkcm1fY29tcGF0 X2lvY3RsLAotCS5yZWFkID0gZHJtX3JlYWQsCisJRFJNX1ZSQU1fTU1fRklMRV9PUEVSQVRJT05T CiB9OwogCiBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgZHJpdmVyID0gewpAQCAtNzksMTEgKzcz LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGRyaXZlciA9IHsKIAkubWFqb3IgPSBEUklW RVJfTUFKT1IsCiAJLm1pbm9yID0gRFJJVkVSX01JTk9SLAogCS5wYXRjaGxldmVsID0gRFJJVkVS X1BBVENITEVWRUwsCi0KLQkuZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkID0KLQkJZHJtX2dlbV92 cmFtX2RyaXZlcl9nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQsCi0JLmR1bWJfY3JlYXRlID0gbWdh ZzIwMF9kdW1iX2NyZWF0ZSwKLQkuZHVtYl9tYXBfb2Zmc2V0ID0gZHJtX2dlbV92cmFtX2RyaXZl cl9kdW1iX21tYXBfb2Zmc2V0LAorCURSTV9HRU1fVlJBTV9EUklWRVIKIH07CiAKIHN0YXRpYyBz dHJ1Y3QgcGNpX2RyaXZlciBtZ2FnMjAwX3BjaV9kcml2ZXIgPSB7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL21nYWcy MDAvbWdhZzIwMF9kcnYuaAppbmRleCA4NmIzM2UyM2FiN2YuLjE2Y2U2YjMzOGRjZSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9kcnYuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX2Rydi5oCkBAIC0xNywxNSArMTcsMTIgQEAKIAogI2lu Y2x1ZGUgPGRybS9kcm1fZW5jb2Rlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+ Ci0jaW5jbHVkZSA8ZHJtL3R0bS90dG1fYm9fYXBpLmg+Ci0jaW5jbHVkZSA8ZHJtL3R0bS90dG1f Ym9fZHJpdmVyLmg+Ci0jaW5jbHVkZSA8ZHJtL3R0bS90dG1fcGxhY2VtZW50Lmg+Ci0jaW5jbHVk ZSA8ZHJtL3R0bS90dG1fbWVtb3J5Lmg+Ci0jaW5jbHVkZSA8ZHJtL3R0bS90dG1fbW9kdWxlLmg+ CiAKICNpbmNsdWRlIDxkcm0vZHJtX2dlbS5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX3ZyYW1f aGVscGVyLmg+CiAKKyNpbmNsdWRlIDxkcm0vZHJtX3ZyYW1fbW1faGVscGVyLmg+CisKICNpbmNs dWRlIDxsaW51eC9pMmMuaD4KICNpbmNsdWRlIDxsaW51eC9pMmMtYWxnby1iaXQuaD4KIApAQCAt MjEyLDEwICsyMDksNiBAQCBzdHJ1Y3QgbWdhX2RldmljZSB7CiAKIAlpbnQgZmJfbXRycjsKIAot CXN0cnVjdCB7Ci0JCXN0cnVjdCB0dG1fYm9fZGV2aWNlIGJkZXY7Ci0JfSB0dG07Ci0KIAkvKiBT RSBtb2RlbCBudW1iZXIgc3RvcmVkIGluIHJlZyAweDFlMjQgKi8KIAl1MzIgdW5pcXVlX3Jldl9p ZDsKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX21haW4u YyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfbWFpbi5jCmluZGV4IDU5YTQwMjhh NWM2Yy4uZjM2ODdmZWQ0MDc1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9t Z2FnMjAwX21haW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX21haW4u YwpAQCAtMjMwLDEwICsyMzAsMTAgQEAgaW50IG1nYWcyMDBfZHJpdmVyX2xvYWQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBmbGFncykKIAl9CiAKIAkvKiBNYWtlIHNtYWxs IGJ1ZmZlcnMgdG8gc3RvcmUgYSBoYXJkd2FyZSBjdXJzb3IgKGRvdWJsZSBidWZmZXJlZCBpY29u IHVwZGF0ZXMpICovCi0JbWRldi0+Y3Vyc29yLnBpeGVsc18xID0gZHJtX2dlbV92cmFtX2NyZWF0 ZShkZXYsICZtZGV2LT50dG0uYmRldiwKKwltZGV2LT5jdXJzb3IucGl4ZWxzXzEgPSBkcm1fZ2Vt X3ZyYW1fY3JlYXRlKGRldiwgJmRldi0+dnJhbV9tbS0+YmRldiwKIAkJCQkJCSAgICByb3VuZHVw KDQ4KjY0LCBQQUdFX1NJWkUpLAogCQkJCQkJICAgIDAsIDApOwotCW1kZXYtPmN1cnNvci5waXhl bHNfMiA9IGRybV9nZW1fdnJhbV9jcmVhdGUoZGV2LCAmbWRldi0+dHRtLmJkZXYsCisJbWRldi0+ Y3Vyc29yLnBpeGVsc18yID0gZHJtX2dlbV92cmFtX2NyZWF0ZShkZXYsICZkZXYtPnZyYW1fbW0t PmJkZXYsCiAJCQkJCQkgICAgcm91bmR1cCg0OCo2NCwgUEFHRV9TSVpFKSwKIAkJCQkJCSAgICAw LCAwKTsKIAlpZiAoSVNfRVJSKG1kZXYtPmN1cnNvci5waXhlbHNfMikgfHwgSVNfRVJSKG1kZXYt PmN1cnNvci5waXhlbHNfMSkpIHsKQEAgLTI3NCw3ICsyNzQsNiBAQCBpbnQgbWdhZzIwMF9nZW1f Y3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCSAgIHUzMiBzaXplLCBib29sIGlza2Vy bmVsLAogCQkgICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKipvYmopCiB7Ci0Jc3RydWN0IG1nYV9k ZXZpY2UgKm1kZXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2Jq ZWN0ICpnYm87CiAJaW50IHJldDsKIApAQCAtMjg0LDcgKzI4Myw3IEBAIGludCBtZ2FnMjAwX2dl bV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAoc2l6ZSA9PSAwKQogCQlyZXR1 cm4gLUVJTlZBTDsKIAotCWdibyA9IGRybV9nZW1fdnJhbV9jcmVhdGUoZGV2LCAmbWRldi0+dHRt LmJkZXYsIHNpemUsIDAsIGZhbHNlKTsKKwlnYm8gPSBkcm1fZ2VtX3ZyYW1fY3JlYXRlKGRldiwg JmRldi0+dnJhbV9tbS0+YmRldiwgc2l6ZSwgMCwgZmFsc2UpOwogCWlmIChJU19FUlIoZ2JvKSkg ewogCQlyZXQgPSBQVFJfRVJSKGdibyk7CiAJCWlmIChyZXQgIT0gLUVSRVNUQVJUU1lTKQpAQCAt Mjk0LDEzICsyOTMsMyBAQCBpbnQgbWdhZzIwMF9nZW1fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAJKm9iaiA9ICZnYm8tPmdlbTsKIAlyZXR1cm4gMDsKIH0KLQotaW50IG1nYWcyMDBf ZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlLAotCQkgICAgc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKLQkJICAgIHN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiAqYXJncykKLXsKLQlz dHJ1Y3QgbWdhX2RldmljZSAqbWRldiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0KLQlyZXR1cm4gZHJt X2dlbV92cmFtX2ZpbGxfY3JlYXRlX2R1bWIoZmlsZSwgZGV2LCAmbWRldi0+dHRtLmJkZXYsIDAs Ci0JCQkJCSAgICBmYWxzZSwgYXJncyk7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bWdhZzIwMC9tZ2FnMjAwX3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF90 dG0uYwppbmRleCAyYzAyNDkwODZiZjkuLjU5Mjk0YzBmZDI0YSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF90dG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWdh ZzIwMC9tZ2FnMjAwX3R0bS5jCkBAIC0yNiwxMzAgKzI2LDIxIEBACiAgKiBBdXRob3JzOiBEYXZl IEFpcmxpZSA8YWlybGllZEByZWRoYXQuY29tPgogICovCiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4K LSNpbmNsdWRlIDxkcm0vdHRtL3R0bV9wYWdlX2FsbG9jLmg+CiAKICNpbmNsdWRlICJtZ2FnMjAw X2Rydi5oIgogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBtZ2FfZGV2aWNlICoKLW1nYWcyMDBfYmRl dihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmQpCi17Ci0JcmV0dXJuIGNvbnRhaW5lcl9vZihiZCwg c3RydWN0IG1nYV9kZXZpY2UsIHR0bS5iZGV2KTsKLX0KLQotc3RhdGljIGludAotbWdhZzIwMF9i b19pbml0X21lbV90eXBlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCB1aW50MzJfdCB0eXBl LAotCQkgICAgIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuKQotewotCXN3aXRjaCAo dHlwZSkgewotCWNhc2UgVFRNX1BMX1NZU1RFTToKLQkJbWFuLT5mbGFncyA9IFRUTV9NRU1UWVBF X0ZMQUdfTUFQUEFCTEU7Ci0JCW1hbi0+YXZhaWxhYmxlX2NhY2hpbmcgPSBUVE1fUExfTUFTS19D QUNISU5HOwotCQltYW4tPmRlZmF1bHRfY2FjaGluZyA9IFRUTV9QTF9GTEFHX0NBQ0hFRDsKLQkJ YnJlYWs7Ci0JY2FzZSBUVE1fUExfVlJBTToKLQkJbWFuLT5mdW5jID0gJnR0bV9ib19tYW5hZ2Vy X2Z1bmM7Ci0JCW1hbi0+ZmxhZ3MgPSBUVE1fTUVNVFlQRV9GTEFHX0ZJWEVEIHwKLQkJCVRUTV9N RU1UWVBFX0ZMQUdfTUFQUEFCTEU7Ci0JCW1hbi0+YXZhaWxhYmxlX2NhY2hpbmcgPSBUVE1fUExf RkxBR19VTkNBQ0hFRCB8Ci0JCQlUVE1fUExfRkxBR19XQzsKLQkJbWFuLT5kZWZhdWx0X2NhY2hp bmcgPSBUVE1fUExfRkxBR19XQzsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJRFJNX0VSUk9SKCJV bnN1cHBvcnRlZCBtZW1vcnkgdHlwZSAldVxuIiwgKHVuc2lnbmVkKXR5cGUpOwotCQlyZXR1cm4g LUVJTlZBTDsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgbWdhZzIwMF90dG1faW9f bWVtX3Jlc2VydmUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCi0JCQkJICBzdHJ1Y3QgdHRt X21lbV9yZWcgKm1lbSkKLXsKLQlzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9ICZi ZGV2LT5tYW5bbWVtLT5tZW1fdHlwZV07Ci0Jc3RydWN0IG1nYV9kZXZpY2UgKm1kZXYgPSBtZ2Fn MjAwX2JkZXYoYmRldik7Ci0KLQltZW0tPmJ1cy5hZGRyID0gTlVMTDsKLQltZW0tPmJ1cy5vZmZz ZXQgPSAwOwotCW1lbS0+YnVzLnNpemUgPSBtZW0tPm51bV9wYWdlcyA8PCBQQUdFX1NISUZUOwot CW1lbS0+YnVzLmJhc2UgPSAwOwotCW1lbS0+YnVzLmlzX2lvbWVtID0gZmFsc2U7Ci0JaWYgKCEo bWFuLT5mbGFncyAmIFRUTV9NRU1UWVBFX0ZMQUdfTUFQUEFCTEUpKQotCQlyZXR1cm4gLUVJTlZB TDsKLQlzd2l0Y2ggKG1lbS0+bWVtX3R5cGUpIHsKLQljYXNlIFRUTV9QTF9TWVNURU06Ci0JCS8q IHN5c3RlbSBtZW1vcnkgKi8KLQkJcmV0dXJuIDA7Ci0JY2FzZSBUVE1fUExfVlJBTToKLQkJbWVt LT5idXMub2Zmc2V0ID0gbWVtLT5zdGFydCA8PCBQQUdFX1NISUZUOwotCQltZW0tPmJ1cy5iYXNl ID0gcGNpX3Jlc291cmNlX3N0YXJ0KG1kZXYtPmRldi0+cGRldiwgMCk7Ci0JCW1lbS0+YnVzLmlz X2lvbWVtID0gdHJ1ZTsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJcmV0dXJuIC1FSU5WQUw7Ci0J CWJyZWFrOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgbWdhZzIwMF90dG1faW9f bWVtX2ZyZWUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fbWVtX3JlZyAq bWVtKQotewotfQotCi1zdGF0aWMgdm9pZCBtZ2FnMjAwX3R0bV9iYWNrZW5kX2Rlc3Ryb3koc3Ry dWN0IHR0bV90dCAqdHQpCi17Ci0JdHRtX3R0X2ZpbmkodHQpOwotCWtmcmVlKHR0KTsKLX0KLQot c3RhdGljIHN0cnVjdCB0dG1fYmFja2VuZF9mdW5jIG1nYWcyMDBfdHRfYmFja2VuZF9mdW5jID0g ewotCS5kZXN0cm95ID0gJm1nYWcyMDBfdHRtX2JhY2tlbmRfZGVzdHJveSwKLX07Ci0KLQotc3Rh dGljIHN0cnVjdCB0dG1fdHQgKm1nYWcyMDBfdHRtX3R0X2NyZWF0ZShzdHJ1Y3QgdHRtX2J1ZmZl cl9vYmplY3QgKmJvLAotCQkJCQkgICAgdWludDMyX3QgcGFnZV9mbGFncykKLXsKLQlzdHJ1Y3Qg dHRtX3R0ICp0dDsKLQotCXR0ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHR0bV90dCksIEdGUF9L RVJORUwpOwotCWlmICh0dCA9PSBOVUxMKQotCQlyZXR1cm4gTlVMTDsKLQl0dC0+ZnVuYyA9ICZt Z2FnMjAwX3R0X2JhY2tlbmRfZnVuYzsKLQlpZiAodHRtX3R0X2luaXQodHQsIGJvLCBwYWdlX2Zs YWdzKSkgewotCQlrZnJlZSh0dCk7Ci0JCXJldHVybiBOVUxMOwotCX0KLQlyZXR1cm4gdHQ7Ci19 Ci0KLXN0cnVjdCB0dG1fYm9fZHJpdmVyIG1nYWcyMDBfYm9fZHJpdmVyID0gewotCS50dG1fdHRf Y3JlYXRlID0gbWdhZzIwMF90dG1fdHRfY3JlYXRlLAotCS5pbml0X21lbV90eXBlID0gbWdhZzIw MF9ib19pbml0X21lbV90eXBlLAotCS5ldmljdGlvbl92YWx1YWJsZSA9IHR0bV9ib19ldmljdGlv bl92YWx1YWJsZSwKLQkuZXZpY3RfZmxhZ3MgPSBkcm1fZ2VtX3ZyYW1fYm9fZHJpdmVyX2V2aWN0 X2ZsYWdzLAotCS5tb3ZlID0gTlVMTCwKLQkudmVyaWZ5X2FjY2VzcyA9IGRybV9nZW1fdnJhbV9i b19kcml2ZXJfdmVyaWZ5X2FjY2VzcywKLQkuaW9fbWVtX3Jlc2VydmUgPSAmbWdhZzIwMF90dG1f aW9fbWVtX3Jlc2VydmUsCi0JLmlvX21lbV9mcmVlID0gJm1nYWcyMDBfdHRtX2lvX21lbV9mcmVl LAotfTsKLQogaW50IG1nYWcyMDBfbW1faW5pdChzdHJ1Y3QgbWdhX2RldmljZSAqbWRldikKIHsK KwlzdHJ1Y3QgZHJtX3ZyYW1fbW0gKnZtbTsKIAlpbnQgcmV0OwogCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBtZGV2LT5kZXY7Ci0Jc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSAmbWRldi0+ dHRtLmJkZXY7Ci0KLQlyZXQgPSB0dG1fYm9fZGV2aWNlX2luaXQoJm1kZXYtPnR0bS5iZGV2LAot CQkJCSAmbWdhZzIwMF9ib19kcml2ZXIsCi0JCQkJIGRldi0+YW5vbl9pbm9kZS0+aV9tYXBwaW5n LAotCQkJCSB0cnVlKTsKLQlpZiAocmV0KSB7Ci0JCURSTV9FUlJPUigiRXJyb3IgaW5pdGlhbGlz aW5nIGJvIGRyaXZlcjsgJWRcbiIsIHJldCk7Ci0JCXJldHVybiByZXQ7Ci0JfQogCi0JcmV0ID0g dHRtX2JvX2luaXRfbW0oYmRldiwgVFRNX1BMX1ZSQU0sIG1kZXYtPm1jLnZyYW1fc2l6ZSA+PiBQ QUdFX1NISUZUKTsKLQlpZiAocmV0KSB7Ci0JCURSTV9FUlJPUigiRmFpbGVkIHR0bSBWUkFNIGlu aXQ6ICVkXG4iLCByZXQpOworCXZtbSA9IGRybV92cmFtX2hlbHBlcl9hbGxvY19tbShkZXYsIHBj aV9yZXNvdXJjZV9zdGFydChkZXYtPnBkZXYsIDApLAorCQkJCSAgICAgICBtZGV2LT5tYy52cmFt X3NpemUsCisJCQkJICAgICAgICZkcm1fZ2VtX3ZyYW1fbW1fZnVuY3MpOworCWlmIChJU19FUlIo dm1tKSkgeworCQlyZXQgPSBQVFJfRVJSKHZtbSk7CisJCURSTV9FUlJPUigiRXJyb3IgaW5pdGlh bGl6aW5nIFZSQU0gTU07ICVkXG4iLCByZXQpOwogCQlyZXR1cm4gcmV0OwogCX0KIApAQCAtMTY2 LDE4ICs1NywxMCBAQCB2b2lkIG1nYWcyMDBfbW1fZmluaShzdHJ1Y3QgbWdhX2RldmljZSAqbWRl dikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbWRldi0+ZGV2OwogCi0JdHRtX2JvX2Rl dmljZV9yZWxlYXNlKCZtZGV2LT50dG0uYmRldik7CisJZHJtX3ZyYW1faGVscGVyX3JlbGVhc2Vf bW0oZGV2KTsKIAogCWFyY2hfaW9fZnJlZV9tZW10eXBlX3djKHBjaV9yZXNvdXJjZV9zdGFydChk ZXYtPnBkZXYsIDApLAogCQkJCXBjaV9yZXNvdXJjZV9sZW4oZGV2LT5wZGV2LCAwKSk7CiAJYXJj aF9waHlzX3djX2RlbChtZGV2LT5mYl9tdHJyKTsKIAltZGV2LT5mYl9tdHJyID0gMDsKIH0KLQot aW50IG1nYWcyMDBfbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0 ICp2bWEpCi17Ci0Jc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYgPSBmaWxwLT5wcml2YXRlX2Rh dGE7Ci0Jc3RydWN0IG1nYV9kZXZpY2UgKm1kZXYgPSBmaWxlX3ByaXYtPm1pbm9yLT5kZXYtPmRl dl9wcml2YXRlOwotCi0JcmV0dXJuIHR0bV9ib19tbWFwKGZpbHAsIHZtYSwgJm1kZXYtPnR0bS5i ZGV2KTsKLX0KLS0gCjIuMjEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVs