From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH v4 09/19] drm/ast: Convert AST driver to VRAM MM Date: Mon, 6 May 2019 10:26:39 +0200 Message-ID: <20190506082649.942-10-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 4612889617 for ; Mon, 6 May 2019 08:26:59 +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 ZXBsYWNlIGFzdCdzClRUTS1iYXNlZCBtZW1vcnkgbWFuYWdlci4gSXQncyB0aGUgc2FtZSBpbXBs ZW1lbnRhdGlvbjsgZXhjZXB0IGZvciB0aGUKdHlwZSBuYW1lcy4KCnY0OgoJKiBkb24ndCBzZWxl Y3QgRFJNX1RUTSBvciBEUk1fVlJBTV9NTV9IRUxQRVIKdjM6CgkqIHVzZSBkcm1fZ2VtX3ZyYW1f bW1fZnVuY3MKCSogY29udmVydCBkcml2ZXIgdG8gZHJtX2RldmljZS1iYXNlZCBpbnN0YW5jZQp2 MjoKCSogaW1wbGVtZW50IGFzdF9tbWFwKCkgd2l0aCBkcm1fdnJhbV9tbV9tbWFwKCkKClNpZ25l ZC1vZmYtYnk6IFRob21hcyBaaW1tZXJtYW5uIDx0emltbWVybWFubkBzdXNlLmRlPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9hc3QvS2NvbmZpZyAgICB8ICAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vYXN0 L2FzdF9kcnYuYyAgfCAgMTQgKy0tLQogZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZHJ2LmggIHwg IDE4ICstLS0tCiBkcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9tYWluLmMgfCAgMTMgKy0tLQogZHJp dmVycy9ncHUvZHJtL2FzdC9hc3RfdHRtLmMgIHwgMTM0ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCAxNjcgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FzdC9LY29uZmlnIGIvZHJpdmVy cy9ncHUvZHJtL2FzdC9LY29uZmlnCmluZGV4IGYzNzM3NDg4NjMwYi4uN2M3ZTdjNTc5MTFhIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXN0L0tjb25maWcKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FzdC9LY29uZmlnCkBAIC0xLDcgKzEsNiBAQAogY29uZmlnIERSTV9BU1QKIAl0cmlzdGF0 ZSAiQVNUIHNlcnZlciBjaGlwcyIKIAlkZXBlbmRzIG9uIERSTSAmJiBQQ0kgJiYgTU1VCi0Jc2Vs ZWN0IERSTV9UVE0KIAlzZWxlY3QgRFJNX0tNU19IRUxQRVIKIAlzZWxlY3QgRFJNX1ZSQU1fSEVM UEVSCiAJaGVscApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZHJ2LmMgYi9k cml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9kcnYuYwppbmRleCA3MDEyYjE3Yjk4NGYuLjM4MTE5OTdl NzhjNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZHJ2LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2FzdC9hc3RfZHJ2LmMKQEAgLTIwNSwxMyArMjA1LDcgQEAgc3RhdGljIHN0 cnVjdCBwY2lfZHJpdmVyIGFzdF9wY2lfZHJpdmVyID0gewogCiBzdGF0aWMgY29uc3Qgc3RydWN0 IGZpbGVfb3BlcmF0aW9ucyBhc3RfZm9wcyA9IHsKIAkub3duZXIgPSBUSElTX01PRFVMRSwKLQku b3BlbiA9IGRybV9vcGVuLAotCS5yZWxlYXNlID0gZHJtX3JlbGVhc2UsCi0JLnVubG9ja2VkX2lv Y3RsID0gZHJtX2lvY3RsLAotCS5tbWFwID0gYXN0X21tYXAsCi0JLnBvbGwgPSBkcm1fcG9sbCwK LQkuY29tcGF0X2lvY3RsID0gZHJtX2NvbXBhdF9pb2N0bCwKLQkucmVhZCA9IGRybV9yZWFkLAor CURSTV9WUkFNX01NX0ZJTEVfT1BFUkFUSU9OUwogfTsKIAogc3RhdGljIHN0cnVjdCBkcm1fZHJp dmVyIGRyaXZlciA9IHsKQEAgLTIyOCwxMSArMjIyLDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJp dmVyIGRyaXZlciA9IHsKIAkubWlub3IgPSBEUklWRVJfTUlOT1IsCiAJLnBhdGNobGV2ZWwgPSBE UklWRVJfUEFUQ0hMRVZFTCwKIAotCS5nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQgPQotCQlkcm1f Z2VtX3ZyYW1fZHJpdmVyX2dlbV9mcmVlX29iamVjdF91bmxvY2tlZCwKLQkuZHVtYl9jcmVhdGUg PSBhc3RfZHVtYl9jcmVhdGUsCi0JLmR1bWJfbWFwX29mZnNldCA9IGRybV9nZW1fdnJhbV9kcml2 ZXJfZHVtYl9tbWFwX29mZnNldCwKLQorCURSTV9HRU1fVlJBTV9EUklWRVIKIH07CiAKIHN0YXRp YyBpbnQgX19pbml0IGFzdF9pbml0KHZvaWQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YXN0L2FzdF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2Rydi5oCmluZGV4IDcxMjgz OGY3MjVkYy4uMzIwOTZhMTkxYWFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2Fz dF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9kcnYuaApAQCAtMzEsMTUgKzMx LDExIEBACiAjaW5jbHVkZSA8ZHJtL2RybV9lbmNvZGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9m Yl9oZWxwZXIuaD4KIAotI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2FwaS5oPgotI2luY2x1ZGUg PGRybS90dG0vdHRtX2JvX2RyaXZlci5oPgotI2luY2x1ZGUgPGRybS90dG0vdHRtX3BsYWNlbWVu dC5oPgotI2luY2x1ZGUgPGRybS90dG0vdHRtX21lbW9yeS5oPgotI2luY2x1ZGUgPGRybS90dG0v dHRtX21vZHVsZS5oPgotCiAjaW5jbHVkZSA8ZHJtL2RybV9nZW0uaD4KICNpbmNsdWRlIDxkcm0v ZHJtX2dlbV92cmFtX2hlbHBlci5oPgogCisjaW5jbHVkZSA8ZHJtL2RybV92cmFtX21tX2hlbHBl ci5oPgorCiAjaW5jbHVkZSA8bGludXgvaTJjLmg+CiAjaW5jbHVkZSA8bGludXgvaTJjLWFsZ28t Yml0Lmg+CiAKQEAgLTEwNCwxMCArMTAwLDYgQEAgc3RydWN0IGFzdF9wcml2YXRlIHsKIAogCWlu dCBmYl9tdHJyOwogCi0Jc3RydWN0IHsKLQkJc3RydWN0IHR0bV9ib19kZXZpY2UgYmRldjsKLQl9 IHR0bTsKLQogCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqY3Vyc29yX2NhY2hlOwogCXVpbnQ2NF90 IGN1cnNvcl9jYWNoZV9ncHVfYWRkcjsKIAkvKiBBY2NlcyB0byB0aGlzIGNhY2hlIGlzIHByb3Rl Y3RlZCBieSB0aGUgY3J0Yy0+bXV0ZXggb2YgdGhlIG9ubHkgY3J0YwpAQCAtMzI1LDEwICszMTcs NiBAQCB2b2lkIGFzdF9mYmRldl9zZXRfYmFzZShzdHJ1Y3QgYXN0X3ByaXZhdGUgKmFzdCwgdW5z aWduZWQgbG9uZyBncHVfYWRkcik7CiAjZGVmaW5lIEFTVF9NTV9BTElHTl9TSElGVCA0CiAjZGVm aW5lIEFTVF9NTV9BTElHTl9NQVNLICgoMSA8PCBBU1RfTU1fQUxJR05fU0hJRlQpIC0gMSkKIAot ZXh0ZXJuIGludCBhc3RfZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlLAotCQkJICAg c3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCSAgIHN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVt YiAqYXJncyk7Ci0KIGludCBhc3RfbW1faW5pdChzdHJ1Y3QgYXN0X3ByaXZhdGUgKmFzdCk7CiB2 b2lkIGFzdF9tbV9maW5pKHN0cnVjdCBhc3RfcHJpdmF0ZSAqYXN0KTsKIApAQCAtMzM2LDggKzMy NCw2IEBAIGludCBhc3RfZ2VtX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkgICB1 MzIgc2l6ZSwgYm9vbCBpc2tlcm5lbCwKIAkJICAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICoqb2Jq KTsKIAotaW50IGFzdF9tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1 Y3QgKnZtYSk7Ci0KIC8qIGFzdCBwb3N0ICovCiB2b2lkIGFzdF9lbmFibGVfdmdhKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpOwogdm9pZCBhc3RfZW5hYmxlX21taW8oc3RydWN0IGRybV9kZXZpY2Ug KmRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9tYWluLmMgYi9kcml2 ZXJzL2dwdS9kcm0vYXN0L2FzdF9tYWluLmMKaW5kZXggNjFmYzdiOGVhNDcwLi40YzdlMzFjYjQ1 ZmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21haW4uYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vYXN0L2FzdF9tYWluLmMKQEAgLTU5Myw3ICs1OTMsNiBAQCBpbnQgYXN0X2dl bV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJICAgdTMyIHNpemUsIGJvb2wgaXNr ZXJuZWwsCiAJCSAgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqKm9iaikKIHsKLQlzdHJ1Y3QgYXN0 X3ByaXZhdGUgKmFzdCA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGRybV9nZW1fdnJhbV9v YmplY3QgKmdibzsKIAlpbnQgcmV0OwogCkBAIC02MDMsNyArNjAyLDcgQEAgaW50IGFzdF9nZW1f Y3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJaWYgKHNpemUgPT0gMCkKIAkJcmV0dXJu IC1FSU5WQUw7CiAKLQlnYm8gPSBkcm1fZ2VtX3ZyYW1fY3JlYXRlKGRldiwgJmFzdC0+dHRtLmJk ZXYsIHNpemUsIDAsIGZhbHNlKTsKKwlnYm8gPSBkcm1fZ2VtX3ZyYW1fY3JlYXRlKGRldiwgJmRl di0+dnJhbV9tbS0+YmRldiwgc2l6ZSwgMCwgZmFsc2UpOwogCWlmIChJU19FUlIoZ2JvKSkgewog CQlyZXQgPSBQVFJfRVJSKGdibyk7CiAJCWlmIChyZXQgIT0gLUVSRVNUQVJUU1lTKQpAQCAtNjEz LDEzICs2MTIsMyBAQCBpbnQgYXN0X2dlbV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK IAkqb2JqID0gJmdiby0+Z2VtOwogCXJldHVybiAwOwogfQotCi1pbnQgYXN0X2R1bWJfY3JlYXRl KHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKLQkJICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0J CSAgICBzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWIgKmFyZ3MpCi17Ci0Jc3RydWN0IGFzdF9w cml2YXRlICphc3QgPSBkZXYtPmRldl9wcml2YXRlOwotCi0JcmV0dXJuIGRybV9nZW1fdnJhbV9m aWxsX2NyZWF0ZV9kdW1iKGZpbGUsIGRldiwgJmFzdC0+dHRtLmJkZXYsIDAsCi0JCQkJCSAgICAg ZmFsc2UsIGFyZ3MpOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfdHRt LmMgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF90dG0uYwppbmRleCA3OTRlYmI3NTVhNWQuLjc3 OWM1M2VmZWU4ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfdHRtLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfdHRtLmMKQEAgLTI2LDEzMSArMjYsMjEgQEAKICAq IEF1dGhvcnM6IERhdmUgQWlybGllIDxhaXJsaWVkQHJlZGhhdC5jb20+CiAgKi8KICNpbmNsdWRl IDxkcm0vZHJtUC5oPgotI2luY2x1ZGUgPGRybS90dG0vdHRtX3BhZ2VfYWxsb2MuaD4KIAogI2lu Y2x1ZGUgImFzdF9kcnYuaCIKIAotc3RhdGljIGlubGluZSBzdHJ1Y3QgYXN0X3ByaXZhdGUgKgot YXN0X2JkZXYoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkKQotewotCXJldHVybiBjb250YWluZXJf b2YoYmQsIHN0cnVjdCBhc3RfcHJpdmF0ZSwgdHRtLmJkZXYpOwotfQotCi1zdGF0aWMgaW50Ci1h c3RfYm9faW5pdF9tZW1fdHlwZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgdWludDMyX3Qg dHlwZSwKLQkJICAgICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbikKLXsKLQlzd2l0 Y2ggKHR5cGUpIHsKLQljYXNlIFRUTV9QTF9TWVNURU06Ci0JCW1hbi0+ZmxhZ3MgPSBUVE1fTUVN VFlQRV9GTEFHX01BUFBBQkxFOwotCQltYW4tPmF2YWlsYWJsZV9jYWNoaW5nID0gVFRNX1BMX01B U0tfQ0FDSElORzsKLQkJbWFuLT5kZWZhdWx0X2NhY2hpbmcgPSBUVE1fUExfRkxBR19DQUNIRUQ7 Ci0JCWJyZWFrOwotCWNhc2UgVFRNX1BMX1ZSQU06Ci0JCW1hbi0+ZnVuYyA9ICZ0dG1fYm9fbWFu YWdlcl9mdW5jOwotCQltYW4tPmZsYWdzID0gVFRNX01FTVRZUEVfRkxBR19GSVhFRCB8Ci0JCQlU VE1fTUVNVFlQRV9GTEFHX01BUFBBQkxFOwotCQltYW4tPmF2YWlsYWJsZV9jYWNoaW5nID0gVFRN X1BMX0ZMQUdfVU5DQUNIRUQgfAotCQkJVFRNX1BMX0ZMQUdfV0M7Ci0JCW1hbi0+ZGVmYXVsdF9j YWNoaW5nID0gVFRNX1BMX0ZMQUdfV0M7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCURSTV9FUlJP UigiVW5zdXBwb3J0ZWQgbWVtb3J5IHR5cGUgJXVcbiIsICh1bnNpZ25lZCl0eXBlKTsKLQkJcmV0 dXJuIC1FSU5WQUw7Ci0JfQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGFzdF90dG1faW9f bWVtX3Jlc2VydmUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCi0JCQkJICBzdHJ1Y3QgdHRt X21lbV9yZWcgKm1lbSkKLXsKLQlzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9ICZi ZGV2LT5tYW5bbWVtLT5tZW1fdHlwZV07Ci0Jc3RydWN0IGFzdF9wcml2YXRlICphc3QgPSBhc3Rf YmRldihiZGV2KTsKLQotCW1lbS0+YnVzLmFkZHIgPSBOVUxMOwotCW1lbS0+YnVzLm9mZnNldCA9 IDA7Ci0JbWVtLT5idXMuc2l6ZSA9IG1lbS0+bnVtX3BhZ2VzIDw8IFBBR0VfU0hJRlQ7Ci0JbWVt LT5idXMuYmFzZSA9IDA7Ci0JbWVtLT5idXMuaXNfaW9tZW0gPSBmYWxzZTsKLQlpZiAoIShtYW4t PmZsYWdzICYgVFRNX01FTVRZUEVfRkxBR19NQVBQQUJMRSkpCi0JCXJldHVybiAtRUlOVkFMOwot CXN3aXRjaCAobWVtLT5tZW1fdHlwZSkgewotCWNhc2UgVFRNX1BMX1NZU1RFTToKLQkJLyogc3lz dGVtIG1lbW9yeSAqLwotCQlyZXR1cm4gMDsKLQljYXNlIFRUTV9QTF9WUkFNOgotCQltZW0tPmJ1 cy5vZmZzZXQgPSBtZW0tPnN0YXJ0IDw8IFBBR0VfU0hJRlQ7Ci0JCW1lbS0+YnVzLmJhc2UgPSBw Y2lfcmVzb3VyY2Vfc3RhcnQoYXN0LT5kZXYtPnBkZXYsIDApOwotCQltZW0tPmJ1cy5pc19pb21l bSA9IHRydWU7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCXJldHVybiAtRUlOVkFMOwotCQlicmVh azsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGFzdF90dG1faW9fbWVtX2ZyZWUo c3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQotewot fQotCi1zdGF0aWMgdm9pZCBhc3RfdHRtX2JhY2tlbmRfZGVzdHJveShzdHJ1Y3QgdHRtX3R0ICp0 dCkKLXsKLQl0dG1fdHRfZmluaSh0dCk7Ci0Ja2ZyZWUodHQpOwotfQotCi1zdGF0aWMgc3RydWN0 IHR0bV9iYWNrZW5kX2Z1bmMgYXN0X3R0X2JhY2tlbmRfZnVuYyA9IHsKLQkuZGVzdHJveSA9ICZh c3RfdHRtX2JhY2tlbmRfZGVzdHJveSwKLX07Ci0KLQotc3RhdGljIHN0cnVjdCB0dG1fdHQgKmFz dF90dG1fdHRfY3JlYXRlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCi0JCQkJCXVpbnQz Ml90IHBhZ2VfZmxhZ3MpCi17Ci0Jc3RydWN0IHR0bV90dCAqdHQ7Ci0KLQl0dCA9IGt6YWxsb2Mo c2l6ZW9mKHN0cnVjdCB0dG1fdHQpLCBHRlBfS0VSTkVMKTsKLQlpZiAodHQgPT0gTlVMTCkKLQkJ cmV0dXJuIE5VTEw7Ci0JdHQtPmZ1bmMgPSAmYXN0X3R0X2JhY2tlbmRfZnVuYzsKLQlpZiAodHRt X3R0X2luaXQodHQsIGJvLCBwYWdlX2ZsYWdzKSkgewotCQlrZnJlZSh0dCk7Ci0JCXJldHVybiBO VUxMOwotCX0KLQlyZXR1cm4gdHQ7Ci19Ci0KLXN0cnVjdCB0dG1fYm9fZHJpdmVyIGFzdF9ib19k cml2ZXIgPSB7Ci0JLnR0bV90dF9jcmVhdGUgPSBhc3RfdHRtX3R0X2NyZWF0ZSwKLQkuaW5pdF9t ZW1fdHlwZSA9IGFzdF9ib19pbml0X21lbV90eXBlLAotCS5ldmljdGlvbl92YWx1YWJsZSA9IHR0 bV9ib19ldmljdGlvbl92YWx1YWJsZSwKLQkuZXZpY3RfZmxhZ3MgPSBkcm1fZ2VtX3ZyYW1fYm9f ZHJpdmVyX2V2aWN0X2ZsYWdzLAotCS5tb3ZlID0gTlVMTCwKLQkudmVyaWZ5X2FjY2VzcyA9IGRy bV9nZW1fdnJhbV9ib19kcml2ZXJfdmVyaWZ5X2FjY2VzcywKLQkuaW9fbWVtX3Jlc2VydmUgPSAm YXN0X3R0bV9pb19tZW1fcmVzZXJ2ZSwKLQkuaW9fbWVtX2ZyZWUgPSAmYXN0X3R0bV9pb19tZW1f ZnJlZSwKLX07Ci0KIGludCBhc3RfbW1faW5pdChzdHJ1Y3QgYXN0X3ByaXZhdGUgKmFzdCkKIHsK KwlzdHJ1Y3QgZHJtX3ZyYW1fbW0gKnZtbTsKIAlpbnQgcmV0OwogCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBhc3QtPmRldjsKLQlzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiA9ICZhc3QtPnR0 bS5iZGV2OwotCi0JcmV0ID0gdHRtX2JvX2RldmljZV9pbml0KCZhc3QtPnR0bS5iZGV2LAotCQkJ CSAmYXN0X2JvX2RyaXZlciwKLQkJCQkgZGV2LT5hbm9uX2lub2RlLT5pX21hcHBpbmcsCi0JCQkJ IHRydWUpOwotCWlmIChyZXQpIHsKLQkJRFJNX0VSUk9SKCJFcnJvciBpbml0aWFsaXNpbmcgYm8g ZHJpdmVyOyAlZFxuIiwgcmV0KTsKLQkJcmV0dXJuIHJldDsKLQl9CiAKLQlyZXQgPSB0dG1fYm9f aW5pdF9tbShiZGV2LCBUVE1fUExfVlJBTSwKLQkJCSAgICAgYXN0LT52cmFtX3NpemUgPj4gUEFH RV9TSElGVCk7Ci0JaWYgKHJldCkgewotCQlEUk1fRVJST1IoIkZhaWxlZCB0dG0gVlJBTSBpbml0 OiAlZFxuIiwgcmV0KTsKKwl2bW0gPSBkcm1fdnJhbV9oZWxwZXJfYWxsb2NfbW0oCisJCWRldiwg cGNpX3Jlc291cmNlX3N0YXJ0KGRldi0+cGRldiwgMCksCisJCWFzdC0+dnJhbV9zaXplLCAmZHJt X2dlbV92cmFtX21tX2Z1bmNzKTsKKwlpZiAoSVNfRVJSKHZtbSkpIHsKKwkJcmV0ID0gUFRSX0VS Uih2bW0pOworCQlEUk1fRVJST1IoIkVycm9yIGluaXRpYWxpemluZyBWUkFNIE1NOyAlZFxuIiwg cmV0KTsKIAkJcmV0dXJuIHJldDsKIAl9CiAKQEAgLTE2NiwxNyArNTYsOSBAQCB2b2lkIGFzdF9t bV9maW5pKHN0cnVjdCBhc3RfcHJpdmF0ZSAqYXN0KQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBhc3QtPmRldjsKIAotCXR0bV9ib19kZXZpY2VfcmVsZWFzZSgmYXN0LT50dG0uYmRldik7 CisJZHJtX3ZyYW1faGVscGVyX3JlbGVhc2VfbW0oZGV2KTsKIAogCWFyY2hfcGh5c193Y19kZWwo YXN0LT5mYl9tdHJyKTsKIAlhcmNoX2lvX2ZyZWVfbWVtdHlwZV93YyhwY2lfcmVzb3VyY2Vfc3Rh cnQoZGV2LT5wZGV2LCAwKSwKIAkJCQlwY2lfcmVzb3VyY2VfbGVuKGRldi0+cGRldiwgMCkpOwog fQotCi1pbnQgYXN0X21tYXAoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVj dCAqdm1hKQotewotCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2ID0gZmlscC0+cHJpdmF0ZV9k YXRhOwotCXN0cnVjdCBhc3RfcHJpdmF0ZSAqYXN0ID0gZmlsZV9wcml2LT5taW5vci0+ZGV2LT5k ZXZfcHJpdmF0ZTsKLQotCXJldHVybiB0dG1fYm9fbW1hcChmaWxwLCB2bWEsICZhc3QtPnR0bS5i ZGV2KTsKLX0KLS0gCjIuMjEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVs