From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH v3 14/19] drm/mgag200: Convert mgag200 driver to VRAM MM Date: Mon, 29 Apr 2019 16:43:36 +0200 Message-ID: <20190429144341.12615-15-tzimmermann@suse.de> References: <20190429144341.12615-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 0482F89261 for ; Mon, 29 Apr 2019 14:43:53 +0000 (UTC) In-Reply-To: <20190429144341.12615-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, Jerry.Zhang@amd.com, hdegoede@redhat.com, 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 aW1wbGVtZW50YXRpb247IGV4Y2VwdCBmb3IgdGhlIHR5cGUKbmFtZXMuCgp2MzoKCSogdXNlIGRy bV9nZW1fdnJhbV9tbV9mdW5jcwoJKiBjb252ZXJ0IGRyaXZlciB0byBkcm1fZGV2aWNlLWJhc2Vk IGluc3RhbmNlCnYyOgoJKiBpbXBsZW1lbnQgbWdhZzIwMF9tbWFwKCkgd2l0aCBkcm1fdnJhbV9t bV9tbWFwKCkKClNpZ25lZC1vZmYtYnk6IFRob21hcyBaaW1tZXJtYW5uIDx0emltbWVybWFubkBz dXNlLmRlPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL0tjb25maWcgICAgICAgIHwgICAx ICsKIGRyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfZHJ2LmMgIHwgIDEzICstLQogZHJp dmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9kcnYuaCAgfCAgMTEgKy0KIGRyaXZlcnMvZ3B1 L2RybS9tZ2FnMjAwL21nYWcyMDBfbWFpbi5jIHwgIDE3ICstLS0KIGRyaXZlcnMvZ3B1L2RybS9t Z2FnMjAwL21nYWcyMDBfdHRtLmMgIHwgMTMzICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDUg ZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMTU5IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0v bWdhZzIwMC9LY29uZmlnCmluZGV4IDUyYjdjM2VlMzA2NC4uODM2OGZjNWY0Y2E5IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9LY29uZmlnCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9tZ2FnMjAwL0tjb25maWcKQEAgLTQsNiArNCw3IEBAIGNvbmZpZyBEUk1fTUdBRzIwMAogCXNl bGVjdCBEUk1fS01TX0hFTFBFUgogCXNlbGVjdCBEUk1fVFRNCiAJc2VsZWN0IERSTV9HRU1fVlJB TV9IRUxQRVIKKwlzZWxlY3QgRFJNX1ZSQU1fTU1fSEVMUEVSCiAJaGVscAogCSBUaGlzIGlzIGEg S01TIGRyaXZlciBmb3IgdGhlIE1HQSBHMjAwIHNlcnZlciBjaGlwcywgaXQKICAgICAgICAgIGRv ZXMgbm90IHN1cHBvcnQgdGhlIG9yaWdpbmFsIE1HQSBHMjAwIG9yIGFueSBvZiB0aGUgZGVza3Rv cApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9kcnYuYyBiL2Ry aXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfZHJ2LmMKaW5kZXggODVjM2VkN2YwMzg1Li45 M2JkMTU4OWU1MGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBf ZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9kcnYuYwpAQCAtNTks MTMgKzU5LDcgQEAgc3RhdGljIHZvaWQgbWdhX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBk ZXYpCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG1nYWcyMDBfZHJpdmVy X2ZvcHMgPSB7CiAJLm93bmVyID0gVEhJU19NT0RVTEUsCi0JLm9wZW4gPSBkcm1fb3BlbiwKLQku cmVsZWFzZSA9IGRybV9yZWxlYXNlLAotCS51bmxvY2tlZF9pb2N0bCA9IGRybV9pb2N0bCwKLQku bW1hcCA9IG1nYWcyMDBfbW1hcCwKLQkucG9sbCA9IGRybV9wb2xsLAotCS5jb21wYXRfaW9jdGwg PSBkcm1fY29tcGF0X2lvY3RsLAotCS5yZWFkID0gZHJtX3JlYWQsCisJRFJNX1ZSQU1fTU1fRklM RV9PUEVSQVRJT05TCiB9OwogCiBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgZHJpdmVyID0gewpA QCAtNzksMTAgKzczLDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGRyaXZlciA9IHsKIAku bWFqb3IgPSBEUklWRVJfTUFKT1IsCiAJLm1pbm9yID0gRFJJVkVSX01JTk9SLAogCS5wYXRjaGxl dmVsID0gRFJJVkVSX1BBVENITEVWRUwsCi0KLQkuZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkID0g ZHJtX2dlbV92cmFtX2RyaXZlcl9nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQsCi0JLmR1bWJfY3Jl YXRlID0gbWdhZzIwMF9kdW1iX2NyZWF0ZSwKLQkuZHVtYl9tYXBfb2Zmc2V0ID0gZHJtX2dlbV92 cmFtX2RyaXZlcl9kdW1iX21tYXBfb2Zmc2V0LAorCURSTV9HRU1fVlJBTV9EUklWRVIKIH07CiAK IHN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBtZ2FnMjAwX3BjaV9kcml2ZXIgPSB7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL21nYWcyMDAvbWdhZzIwMF9kcnYuaAppbmRleCA4NmIzM2UyM2FiN2YuLjE2Y2U2YjMzOGRj ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9kcnYuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX2Rydi5oCkBAIC0xNywxNSArMTcsMTIg QEAKIAogI2luY2x1ZGUgPGRybS9kcm1fZW5jb2Rlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJf aGVscGVyLmg+Ci0jaW5jbHVkZSA8ZHJtL3R0bS90dG1fYm9fYXBpLmg+Ci0jaW5jbHVkZSA8ZHJt L3R0bS90dG1fYm9fZHJpdmVyLmg+Ci0jaW5jbHVkZSA8ZHJtL3R0bS90dG1fcGxhY2VtZW50Lmg+ Ci0jaW5jbHVkZSA8ZHJtL3R0bS90dG1fbWVtb3J5Lmg+Ci0jaW5jbHVkZSA8ZHJtL3R0bS90dG1f bW9kdWxlLmg+CiAKICNpbmNsdWRlIDxkcm0vZHJtX2dlbS5oPgogI2luY2x1ZGUgPGRybS9kcm1f Z2VtX3ZyYW1faGVscGVyLmg+CiAKKyNpbmNsdWRlIDxkcm0vZHJtX3ZyYW1fbW1faGVscGVyLmg+ CisKICNpbmNsdWRlIDxsaW51eC9pMmMuaD4KICNpbmNsdWRlIDxsaW51eC9pMmMtYWxnby1iaXQu aD4KIApAQCAtMjEyLDEwICsyMDksNiBAQCBzdHJ1Y3QgbWdhX2RldmljZSB7CiAKIAlpbnQgZmJf bXRycjsKIAotCXN0cnVjdCB7Ci0JCXN0cnVjdCB0dG1fYm9fZGV2aWNlIGJkZXY7Ci0JfSB0dG07 Ci0KIAkvKiBTRSBtb2RlbCBudW1iZXIgc3RvcmVkIGluIHJlZyAweDFlMjQgKi8KIAl1MzIgdW5p cXVlX3Jldl9pZDsKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2Fn MjAwX21haW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfbWFpbi5jCmluZGV4 IDU5YTQwMjhhNWM2Yy4uZjM2ODdmZWQ0MDc1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v bWdhZzIwMC9tZ2FnMjAwX21haW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2Fn MjAwX21haW4uYwpAQCAtMjMwLDEwICsyMzAsMTAgQEAgaW50IG1nYWcyMDBfZHJpdmVyX2xvYWQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBmbGFncykKIAl9CiAKIAkvKiBN YWtlIHNtYWxsIGJ1ZmZlcnMgdG8gc3RvcmUgYSBoYXJkd2FyZSBjdXJzb3IgKGRvdWJsZSBidWZm ZXJlZCBpY29uIHVwZGF0ZXMpICovCi0JbWRldi0+Y3Vyc29yLnBpeGVsc18xID0gZHJtX2dlbV92 cmFtX2NyZWF0ZShkZXYsICZtZGV2LT50dG0uYmRldiwKKwltZGV2LT5jdXJzb3IucGl4ZWxzXzEg PSBkcm1fZ2VtX3ZyYW1fY3JlYXRlKGRldiwgJmRldi0+dnJhbV9tbS0+YmRldiwKIAkJCQkJCSAg ICByb3VuZHVwKDQ4KjY0LCBQQUdFX1NJWkUpLAogCQkJCQkJICAgIDAsIDApOwotCW1kZXYtPmN1 cnNvci5waXhlbHNfMiA9IGRybV9nZW1fdnJhbV9jcmVhdGUoZGV2LCAmbWRldi0+dHRtLmJkZXYs CisJbWRldi0+Y3Vyc29yLnBpeGVsc18yID0gZHJtX2dlbV92cmFtX2NyZWF0ZShkZXYsICZkZXYt PnZyYW1fbW0tPmJkZXYsCiAJCQkJCQkgICAgcm91bmR1cCg0OCo2NCwgUEFHRV9TSVpFKSwKIAkJ CQkJCSAgICAwLCAwKTsKIAlpZiAoSVNfRVJSKG1kZXYtPmN1cnNvci5waXhlbHNfMikgfHwgSVNf RVJSKG1kZXYtPmN1cnNvci5waXhlbHNfMSkpIHsKQEAgLTI3NCw3ICsyNzQsNiBAQCBpbnQgbWdh ZzIwMF9nZW1fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCSAgIHUzMiBzaXplLCBi b29sIGlza2VybmVsLAogCQkgICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKipvYmopCiB7Ci0Jc3Ry dWN0IG1nYV9kZXZpY2UgKm1kZXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBkcm1fZ2Vt X3ZyYW1fb2JqZWN0ICpnYm87CiAJaW50IHJldDsKIApAQCAtMjg0LDcgKzI4Myw3IEBAIGludCBt Z2FnMjAwX2dlbV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAoc2l6ZSA9PSAw KQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWdibyA9IGRybV9nZW1fdnJhbV9jcmVhdGUoZGV2LCAm bWRldi0+dHRtLmJkZXYsIHNpemUsIDAsIGZhbHNlKTsKKwlnYm8gPSBkcm1fZ2VtX3ZyYW1fY3Jl YXRlKGRldiwgJmRldi0+dnJhbV9tbS0+YmRldiwgc2l6ZSwgMCwgZmFsc2UpOwogCWlmIChJU19F UlIoZ2JvKSkgewogCQlyZXQgPSBQVFJfRVJSKGdibyk7CiAJCWlmIChyZXQgIT0gLUVSRVNUQVJU U1lTKQpAQCAtMjk0LDEzICsyOTMsMyBAQCBpbnQgbWdhZzIwMF9nZW1fY3JlYXRlKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAJKm9iaiA9ICZnYm8tPmdlbTsKIAlyZXR1cm4gMDsKIH0KLQotaW50 IG1nYWcyMDBfZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlLAotCQkgICAgc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKLQkJICAgIHN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiAqYXJn cykKLXsKLQlzdHJ1Y3QgbWdhX2RldmljZSAqbWRldiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0KLQly ZXR1cm4gZHJtX2dlbV92cmFtX2ZpbGxfY3JlYXRlX2R1bWIoZmlsZSwgZGV2LCAmbWRldi0+dHRt LmJkZXYsIDAsCi0JCQkJCSAgICBmYWxzZSwgYXJncyk7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAv bWdhZzIwMF90dG0uYwppbmRleCAyYzAyNDkwODZiZjkuLjU5Mjk0YzBmZDI0YSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF90dG0uYworKysgYi9kcml2ZXJzL2dw dS9kcm0vbWdhZzIwMC9tZ2FnMjAwX3R0bS5jCkBAIC0yNiwxMzAgKzI2LDIxIEBACiAgKiBBdXRo b3JzOiBEYXZlIEFpcmxpZSA8YWlybGllZEByZWRoYXQuY29tPgogICovCiAjaW5jbHVkZSA8ZHJt L2RybVAuaD4KLSNpbmNsdWRlIDxkcm0vdHRtL3R0bV9wYWdlX2FsbG9jLmg+CiAKICNpbmNsdWRl ICJtZ2FnMjAwX2Rydi5oIgogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBtZ2FfZGV2aWNlICoKLW1n YWcyMDBfYmRldihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmQpCi17Ci0JcmV0dXJuIGNvbnRhaW5l cl9vZihiZCwgc3RydWN0IG1nYV9kZXZpY2UsIHR0bS5iZGV2KTsKLX0KLQotc3RhdGljIGludAot bWdhZzIwMF9ib19pbml0X21lbV90eXBlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCB1aW50 MzJfdCB0eXBlLAotCQkgICAgIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuKQotewot CXN3aXRjaCAodHlwZSkgewotCWNhc2UgVFRNX1BMX1NZU1RFTToKLQkJbWFuLT5mbGFncyA9IFRU TV9NRU1UWVBFX0ZMQUdfTUFQUEFCTEU7Ci0JCW1hbi0+YXZhaWxhYmxlX2NhY2hpbmcgPSBUVE1f UExfTUFTS19DQUNISU5HOwotCQltYW4tPmRlZmF1bHRfY2FjaGluZyA9IFRUTV9QTF9GTEFHX0NB Q0hFRDsKLQkJYnJlYWs7Ci0JY2FzZSBUVE1fUExfVlJBTToKLQkJbWFuLT5mdW5jID0gJnR0bV9i b19tYW5hZ2VyX2Z1bmM7Ci0JCW1hbi0+ZmxhZ3MgPSBUVE1fTUVNVFlQRV9GTEFHX0ZJWEVEIHwK LQkJCVRUTV9NRU1UWVBFX0ZMQUdfTUFQUEFCTEU7Ci0JCW1hbi0+YXZhaWxhYmxlX2NhY2hpbmcg PSBUVE1fUExfRkxBR19VTkNBQ0hFRCB8Ci0JCQlUVE1fUExfRkxBR19XQzsKLQkJbWFuLT5kZWZh dWx0X2NhY2hpbmcgPSBUVE1fUExfRkxBR19XQzsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJRFJN X0VSUk9SKCJVbnN1cHBvcnRlZCBtZW1vcnkgdHlwZSAldVxuIiwgKHVuc2lnbmVkKXR5cGUpOwot CQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgbWdhZzIw MF90dG1faW9fbWVtX3Jlc2VydmUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCi0JCQkJICBz dHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSkKLXsKLQlzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIg Km1hbiA9ICZiZGV2LT5tYW5bbWVtLT5tZW1fdHlwZV07Ci0Jc3RydWN0IG1nYV9kZXZpY2UgKm1k ZXYgPSBtZ2FnMjAwX2JkZXYoYmRldik7Ci0KLQltZW0tPmJ1cy5hZGRyID0gTlVMTDsKLQltZW0t PmJ1cy5vZmZzZXQgPSAwOwotCW1lbS0+YnVzLnNpemUgPSBtZW0tPm51bV9wYWdlcyA8PCBQQUdF X1NISUZUOwotCW1lbS0+YnVzLmJhc2UgPSAwOwotCW1lbS0+YnVzLmlzX2lvbWVtID0gZmFsc2U7 Ci0JaWYgKCEobWFuLT5mbGFncyAmIFRUTV9NRU1UWVBFX0ZMQUdfTUFQUEFCTEUpKQotCQlyZXR1 cm4gLUVJTlZBTDsKLQlzd2l0Y2ggKG1lbS0+bWVtX3R5cGUpIHsKLQljYXNlIFRUTV9QTF9TWVNU RU06Ci0JCS8qIHN5c3RlbSBtZW1vcnkgKi8KLQkJcmV0dXJuIDA7Ci0JY2FzZSBUVE1fUExfVlJB TToKLQkJbWVtLT5idXMub2Zmc2V0ID0gbWVtLT5zdGFydCA8PCBQQUdFX1NISUZUOwotCQltZW0t PmJ1cy5iYXNlID0gcGNpX3Jlc291cmNlX3N0YXJ0KG1kZXYtPmRldi0+cGRldiwgMCk7Ci0JCW1l bS0+YnVzLmlzX2lvbWVtID0gdHJ1ZTsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJcmV0dXJuIC1F SU5WQUw7Ci0JCWJyZWFrOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgbWdhZzIw MF90dG1faW9fbWVtX2ZyZWUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1f bWVtX3JlZyAqbWVtKQotewotfQotCi1zdGF0aWMgdm9pZCBtZ2FnMjAwX3R0bV9iYWNrZW5kX2Rl c3Ryb3koc3RydWN0IHR0bV90dCAqdHQpCi17Ci0JdHRtX3R0X2ZpbmkodHQpOwotCWtmcmVlKHR0 KTsKLX0KLQotc3RhdGljIHN0cnVjdCB0dG1fYmFja2VuZF9mdW5jIG1nYWcyMDBfdHRfYmFja2Vu ZF9mdW5jID0gewotCS5kZXN0cm95ID0gJm1nYWcyMDBfdHRtX2JhY2tlbmRfZGVzdHJveSwKLX07 Ci0KLQotc3RhdGljIHN0cnVjdCB0dG1fdHQgKm1nYWcyMDBfdHRtX3R0X2NyZWF0ZShzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvLAotCQkJCQkgICAgdWludDMyX3QgcGFnZV9mbGFncykKLXsK LQlzdHJ1Y3QgdHRtX3R0ICp0dDsKLQotCXR0ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHR0bV90 dCksIEdGUF9LRVJORUwpOwotCWlmICh0dCA9PSBOVUxMKQotCQlyZXR1cm4gTlVMTDsKLQl0dC0+ ZnVuYyA9ICZtZ2FnMjAwX3R0X2JhY2tlbmRfZnVuYzsKLQlpZiAodHRtX3R0X2luaXQodHQsIGJv LCBwYWdlX2ZsYWdzKSkgewotCQlrZnJlZSh0dCk7Ci0JCXJldHVybiBOVUxMOwotCX0KLQlyZXR1 cm4gdHQ7Ci19Ci0KLXN0cnVjdCB0dG1fYm9fZHJpdmVyIG1nYWcyMDBfYm9fZHJpdmVyID0gewot CS50dG1fdHRfY3JlYXRlID0gbWdhZzIwMF90dG1fdHRfY3JlYXRlLAotCS5pbml0X21lbV90eXBl ID0gbWdhZzIwMF9ib19pbml0X21lbV90eXBlLAotCS5ldmljdGlvbl92YWx1YWJsZSA9IHR0bV9i b19ldmljdGlvbl92YWx1YWJsZSwKLQkuZXZpY3RfZmxhZ3MgPSBkcm1fZ2VtX3ZyYW1fYm9fZHJp dmVyX2V2aWN0X2ZsYWdzLAotCS5tb3ZlID0gTlVMTCwKLQkudmVyaWZ5X2FjY2VzcyA9IGRybV9n ZW1fdnJhbV9ib19kcml2ZXJfdmVyaWZ5X2FjY2VzcywKLQkuaW9fbWVtX3Jlc2VydmUgPSAmbWdh ZzIwMF90dG1faW9fbWVtX3Jlc2VydmUsCi0JLmlvX21lbV9mcmVlID0gJm1nYWcyMDBfdHRtX2lv X21lbV9mcmVlLAotfTsKLQogaW50IG1nYWcyMDBfbW1faW5pdChzdHJ1Y3QgbWdhX2RldmljZSAq bWRldikKIHsKKwlzdHJ1Y3QgZHJtX3ZyYW1fbW0gKnZtbTsKIAlpbnQgcmV0OwogCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBtZGV2LT5kZXY7Ci0Jc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYg PSAmbWRldi0+dHRtLmJkZXY7Ci0KLQlyZXQgPSB0dG1fYm9fZGV2aWNlX2luaXQoJm1kZXYtPnR0 bS5iZGV2LAotCQkJCSAmbWdhZzIwMF9ib19kcml2ZXIsCi0JCQkJIGRldi0+YW5vbl9pbm9kZS0+ aV9tYXBwaW5nLAotCQkJCSB0cnVlKTsKLQlpZiAocmV0KSB7Ci0JCURSTV9FUlJPUigiRXJyb3Ig aW5pdGlhbGlzaW5nIGJvIGRyaXZlcjsgJWRcbiIsIHJldCk7Ci0JCXJldHVybiByZXQ7Ci0JfQog Ci0JcmV0ID0gdHRtX2JvX2luaXRfbW0oYmRldiwgVFRNX1BMX1ZSQU0sIG1kZXYtPm1jLnZyYW1f c2l6ZSA+PiBQQUdFX1NISUZUKTsKLQlpZiAocmV0KSB7Ci0JCURSTV9FUlJPUigiRmFpbGVkIHR0 bSBWUkFNIGluaXQ6ICVkXG4iLCByZXQpOworCXZtbSA9IGRybV92cmFtX2hlbHBlcl9hbGxvY19t bShkZXYsIHBjaV9yZXNvdXJjZV9zdGFydChkZXYtPnBkZXYsIDApLAorCQkJCSAgICAgICBtZGV2 LT5tYy52cmFtX3NpemUsCisJCQkJICAgICAgICZkcm1fZ2VtX3ZyYW1fbW1fZnVuY3MpOworCWlm IChJU19FUlIodm1tKSkgeworCQlyZXQgPSBQVFJfRVJSKHZtbSk7CisJCURSTV9FUlJPUigiRXJy b3IgaW5pdGlhbGl6aW5nIFZSQU0gTU07ICVkXG4iLCByZXQpOwogCQlyZXR1cm4gcmV0OwogCX0K IApAQCAtMTY2LDE4ICs1NywxMCBAQCB2b2lkIG1nYWcyMDBfbW1fZmluaShzdHJ1Y3QgbWdhX2Rl dmljZSAqbWRldikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbWRldi0+ZGV2OwogCi0J dHRtX2JvX2RldmljZV9yZWxlYXNlKCZtZGV2LT50dG0uYmRldik7CisJZHJtX3ZyYW1faGVscGVy X3JlbGVhc2VfbW0oZGV2KTsKIAogCWFyY2hfaW9fZnJlZV9tZW10eXBlX3djKHBjaV9yZXNvdXJj ZV9zdGFydChkZXYtPnBkZXYsIDApLAogCQkJCXBjaV9yZXNvdXJjZV9sZW4oZGV2LT5wZGV2LCAw KSk7CiAJYXJjaF9waHlzX3djX2RlbChtZGV2LT5mYl9tdHJyKTsKIAltZGV2LT5mYl9tdHJyID0g MDsKIH0KLQotaW50IG1nYWcyMDBfbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2Fy ZWFfc3RydWN0ICp2bWEpCi17Ci0Jc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYgPSBmaWxwLT5w cml2YXRlX2RhdGE7Ci0Jc3RydWN0IG1nYV9kZXZpY2UgKm1kZXYgPSBmaWxlX3ByaXYtPm1pbm9y LT5kZXYtPmRldl9wcml2YXRlOwotCi0JcmV0dXJuIHR0bV9ib19tbWFwKGZpbHAsIHZtYSwgJm1k ZXYtPnR0bS5iZGV2KTsKLX0KLS0gCjIuMjEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVs