From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH v3 19/19] drm/hisilicon: Convert hibmc-drm driver to VRAM MM Date: Mon, 29 Apr 2019 16:43:41 +0200 Message-ID: <20190429144341.12615-20-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 251E4892B6 for ; Mon, 29 Apr 2019 14:43:55 +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 ZXBsYWNlIGhpYm1jJ3MKVFRNLWJhc2VkIG1lbW9yeSBtYW5hZ2VyLiBJdCdzIHRoZSBzYW1lIGlt cGxlbWVudGF0aW9uOyBleGNlcHQgZm9yIHRoZQp0eXBlIG5hbWVzLgoKdjM6CgkqIHVzZSBkcm1f Z2VtX3ZyYW1fbW1fZnVuY3MKCSogY29udmVydCBkcml2ZXIgdG8gZHJtX2RldmljZS1iYXNlZCBp bnN0YW5jZQp2MjoKCSogaW1wbGVtZW50IGhpYm1jX21tYXAoKSB3aXRoIGRybV92cmFtX21tX21t YXAoKQoKU2lnbmVkLW9mZi1ieTogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1c2Uu ZGU+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9LY29uZmlnICAgICAgIHwg ICAxICsKIC4uLi9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZHJ2LmMgICB8ICAg OCArLQogLi4uL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9kcnYuaCAgIHwgICA4 ICstCiBkcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX3R0bS5jICAgfCAxMzkg KystLS0tLS0tLS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDE0 MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hp Ym1jL0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL0tjb25maWcKaW5k ZXggMTE3MjAzMDNjYTQwLi43YzYzYzJmN2QyNDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9oaXNpbGljb24vaGlibWMvS2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29u L2hpYm1jL0tjb25maWcKQEAgLTQsNiArNCw3IEBAIGNvbmZpZyBEUk1fSElTSV9ISUJNQwogCXNl bGVjdCBEUk1fS01TX0hFTFBFUgogCXNlbGVjdCBEUk1fVFRNCiAJc2VsZWN0IERSTV9HRU1fVlJB TV9IRUxQRVIKKwlzZWxlY3QgRFJNX1ZSQU1fTU1fSEVMUEVSCiAKIAloZWxwCiAJICBDaG9vc2Ug dGhpcyBvcHRpb24gaWYgeW91IGhhdmUgYSBIaXNpbGljb24gSGlibWMgc29jIGNoaXBzZXQuCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9kcnYu YyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2Rydi5jCmluZGV4 IDcwMjdhMWEwNTc2OC4uNzI0MzYwM2RlMjYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaGlz aWxpY29uL2hpYm1jL2hpYm1jX2RybV9kcnYuYwpAQCAtMjcsMTQgKzI3LDggQEAKIAogc3RhdGlj IGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaGlibWNfZm9wcyA9IHsKIAkub3duZXIJCT0g VEhJU19NT0RVTEUsCi0JLm9wZW4JCT0gZHJtX29wZW4sCi0JLnJlbGVhc2UJPSBkcm1fcmVsZWFz ZSwKLQkudW5sb2NrZWRfaW9jdGwJPSBkcm1faW9jdGwsCi0JLmNvbXBhdF9pb2N0bAk9IGRybV9j b21wYXRfaW9jdGwsCi0JLm1tYXAJCT0gaGlibWNfbW1hcCwKLQkucG9sbAkJPSBkcm1fcG9sbCwK LQkucmVhZAkJPSBkcm1fcmVhZCwKIAkubGxzZWVrCQk9IG5vX2xsc2VlaywKKwlEUk1fVlJBTV9N TV9GSUxFX09QRVJBVElPTlMKIH07CiAKIHN0YXRpYyBpcnFyZXR1cm5fdCBoaWJtY19kcm1faW50 ZXJydXB0KGludCBpcnEsIHZvaWQgKmFyZykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9o aXNpbGljb24vaGlibWMvaGlibWNfZHJtX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNv bi9oaWJtYy9oaWJtY19kcm1fZHJ2LmgKaW5kZXggNmIzNDMwZmM1MTQ4Li4zOTY3NjkzZWNiZGMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2Ry di5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2Rydi5o CkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KICNpbmNs dWRlIDxkcm0vZHJtX2dlbS5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmg+ Ci0jaW5jbHVkZSA8ZHJtL3R0bS90dG1fYm9fZHJpdmVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV92 cmFtX21tX2hlbHBlci5oPgogCiBzdHJ1Y3QgaGlibWNfZnJhbWVidWZmZXIgewogCXN0cnVjdCBk cm1fZnJhbWVidWZmZXIgZmI7CkBAIC00OSwxMyArNDksOCBAQCBzdHJ1Y3QgaGlibWNfZHJtX3By aXZhdGUgewogCXN0cnVjdCBkcm1fZGV2aWNlICAqZGV2OwogCWJvb2wgbW9kZV9jb25maWdfaW5p dGlhbGl6ZWQ7CiAKLQkvKiB0dG0gKi8KLQlzdHJ1Y3QgdHRtX2JvX2RldmljZSBiZGV2OwotCWJv b2wgaW5pdGlhbGl6ZWQ7Ci0KIAkvKiBmYmRldiAqLwogCXN0cnVjdCBoaWJtY19mYmRldiAqZmJk ZXY7Ci0JYm9vbCBtbV9pbml0ZWQ7CiB9OwogCiAjZGVmaW5lIHRvX2hpYm1jX2ZyYW1lYnVmZmVy KHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaGlibWNfZnJhbWVidWZmZXIsIGZiKQpAQCAtODEs NyArNzYsNiBAQCBpbnQgaGlibWNfbW1faW5pdChzdHJ1Y3QgaGlibWNfZHJtX3ByaXZhdGUgKmhp Ym1jKTsKIHZvaWQgaGlibWNfbW1fZmluaShzdHJ1Y3QgaGlibWNfZHJtX3ByaXZhdGUgKmhpYm1j KTsKIGludCBoaWJtY19kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsIHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAJCSAgICAgIHN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiAqYXJn cyk7Ci1pbnQgaGlibWNfbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3Ry dWN0ICp2bWEpOwogCiBleHRlcm4gY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZpZ19mdW5jcyBo aWJtY19tb2RlX2Z1bmNzOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29u L2hpYm1jL2hpYm1jX3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJt Y190dG0uYwppbmRleCBmYmY4ZWIwNDhlYmMuLjUyZmJhOGNiOGRkZCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY190dG0uYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX3R0bS5jCkBAIC0xNywxNTcgKzE3LDM4IEBACiAg Ki8KIAogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS90 dG0vdHRtX3BhZ2VfYWxsb2MuaD4KIAogI2luY2x1ZGUgImhpYm1jX2RybV9kcnYuaCIKIAotc3Rh dGljIGlubGluZSBzdHJ1Y3QgaGlibWNfZHJtX3ByaXZhdGUgKgotaGlibWNfYmRldihzdHJ1Y3Qg dHRtX2JvX2RldmljZSAqYmQpCi17Ci0JcmV0dXJuIGNvbnRhaW5lcl9vZihiZCwgc3RydWN0IGhp Ym1jX2RybV9wcml2YXRlLCBiZGV2KTsKLX0KLQotc3RhdGljIGludAotaGlibWNfYm9faW5pdF9t ZW1fdHlwZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgdTMyIHR5cGUsCi0JCSAgICAgICBz dHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbikKLXsKLQlzd2l0Y2ggKHR5cGUpIHsKLQlj YXNlIFRUTV9QTF9TWVNURU06Ci0JCW1hbi0+ZmxhZ3MgPSBUVE1fTUVNVFlQRV9GTEFHX01BUFBB QkxFOwotCQltYW4tPmF2YWlsYWJsZV9jYWNoaW5nID0gVFRNX1BMX01BU0tfQ0FDSElORzsKLQkJ bWFuLT5kZWZhdWx0X2NhY2hpbmcgPSBUVE1fUExfRkxBR19DQUNIRUQ7Ci0JCWJyZWFrOwotCWNh c2UgVFRNX1BMX1ZSQU06Ci0JCW1hbi0+ZnVuYyA9ICZ0dG1fYm9fbWFuYWdlcl9mdW5jOwotCQlt YW4tPmZsYWdzID0gVFRNX01FTVRZUEVfRkxBR19GSVhFRCB8Ci0JCQlUVE1fTUVNVFlQRV9GTEFH X01BUFBBQkxFOwotCQltYW4tPmF2YWlsYWJsZV9jYWNoaW5nID0gVFRNX1BMX0ZMQUdfVU5DQUNI RUQgfAotCQkJVFRNX1BMX0ZMQUdfV0M7Ci0JCW1hbi0+ZGVmYXVsdF9jYWNoaW5nID0gVFRNX1BM X0ZMQUdfV0M7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCURSTV9FUlJPUigidW5zdXBwb3J0ZWQg bWVtb3J5IHR5cGUgJXVcbiIsIHR5cGUpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0JcmV0dXJu IDA7Ci19Ci0KLXN0YXRpYyBpbnQgaGlibWNfdHRtX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0dG1f Ym9fZGV2aWNlICpiZGV2LAotCQkJCSAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSkKLXsKLQlz dHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9ICZiZGV2LT5tYW5bbWVtLT5tZW1fdHlw ZV07Ci0Jc3RydWN0IGhpYm1jX2RybV9wcml2YXRlICpoaWJtYyA9IGhpYm1jX2JkZXYoYmRldik7 Ci0KLQltZW0tPmJ1cy5hZGRyID0gTlVMTDsKLQltZW0tPmJ1cy5vZmZzZXQgPSAwOwotCW1lbS0+ YnVzLnNpemUgPSBtZW0tPm51bV9wYWdlcyA8PCBQQUdFX1NISUZUOwotCW1lbS0+YnVzLmJhc2Ug PSAwOwotCW1lbS0+YnVzLmlzX2lvbWVtID0gZmFsc2U7Ci0JaWYgKCEobWFuLT5mbGFncyAmIFRU TV9NRU1UWVBFX0ZMQUdfTUFQUEFCTEUpKQotCQlyZXR1cm4gLUVJTlZBTDsKLQlzd2l0Y2ggKG1l bS0+bWVtX3R5cGUpIHsKLQljYXNlIFRUTV9QTF9TWVNURU06Ci0JCS8qIHN5c3RlbSBtZW1vcnkg Ki8KLQkJcmV0dXJuIDA7Ci0JY2FzZSBUVE1fUExfVlJBTToKLQkJbWVtLT5idXMub2Zmc2V0ID0g bWVtLT5zdGFydCA8PCBQQUdFX1NISUZUOwotCQltZW0tPmJ1cy5iYXNlID0gcGNpX3Jlc291cmNl X3N0YXJ0KGhpYm1jLT5kZXYtPnBkZXYsIDApOwotCQltZW0tPmJ1cy5pc19pb21lbSA9IHRydWU7 Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQlyZXR1cm4gMDsK LX0KLQotc3RhdGljIHZvaWQgaGlibWNfdHRtX2JhY2tlbmRfZGVzdHJveShzdHJ1Y3QgdHRtX3R0 ICp0dCkKLXsKLQl0dG1fdHRfZmluaSh0dCk7Ci0Ja2ZyZWUodHQpOwotfQotCi1zdGF0aWMgc3Ry dWN0IHR0bV9iYWNrZW5kX2Z1bmMgaGlibWNfdHRfYmFja2VuZF9mdW5jID0gewotCS5kZXN0cm95 ID0gJmhpYm1jX3R0bV9iYWNrZW5kX2Rlc3Ryb3ksCi19OwotCi1zdGF0aWMgc3RydWN0IHR0bV90 dCAqaGlibWNfdHRtX3R0X2NyZWF0ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAotCQkJ CQkgIHUzMiBwYWdlX2ZsYWdzKQotewotCXN0cnVjdCB0dG1fdHQgKnR0OwotCWludCByZXQ7Ci0K LQl0dCA9IGt6YWxsb2Moc2l6ZW9mKCp0dCksIEdGUF9LRVJORUwpOwotCWlmICghdHQpIHsKLQkJ RFJNX0VSUk9SKCJmYWlsZWQgdG8gYWxsb2NhdGUgdHRtX3R0XG4iKTsKLQkJcmV0dXJuIE5VTEw7 Ci0JfQotCXR0LT5mdW5jID0gJmhpYm1jX3R0X2JhY2tlbmRfZnVuYzsKLQlyZXQgPSB0dG1fdHRf aW5pdCh0dCwgYm8sIHBhZ2VfZmxhZ3MpOwotCWlmIChyZXQpIHsKLQkJRFJNX0VSUk9SKCJmYWls ZWQgdG8gaW5pdGlhbGl6ZSB0dG1fdHQ6ICVkXG4iLCByZXQpOwotCQlrZnJlZSh0dCk7Ci0JCXJl dHVybiBOVUxMOwotCX0KLQlyZXR1cm4gdHQ7Ci19Ci0KLXN0cnVjdCB0dG1fYm9fZHJpdmVyIGhp Ym1jX2JvX2RyaXZlciA9IHsKLQkudHRtX3R0X2NyZWF0ZQkJPSBoaWJtY190dG1fdHRfY3JlYXRl LAotCS5pbml0X21lbV90eXBlCQk9IGhpYm1jX2JvX2luaXRfbWVtX3R5cGUsCi0JLmV2aWN0X2Zs YWdzCQk9IGRybV9nZW1fdnJhbV9ib19kcml2ZXJfZXZpY3RfZmxhZ3MsCi0JLm1vdmUJCQk9IE5V TEwsCi0JLnZlcmlmeV9hY2Nlc3MJCT0gZHJtX2dlbV92cmFtX2JvX2RyaXZlcl92ZXJpZnlfYWNj ZXNzLAotCS5pb19tZW1fcmVzZXJ2ZQkJPSAmaGlibWNfdHRtX2lvX21lbV9yZXNlcnZlLAotCS5p b19tZW1fZnJlZQkJPSBOVUxMLAotfTsKLQogaW50IGhpYm1jX21tX2luaXQoc3RydWN0IGhpYm1j X2RybV9wcml2YXRlICpoaWJtYykKIHsKKwlzdHJ1Y3QgZHJtX3ZyYW1fbW0gKnZtbTsKIAlpbnQg cmV0OwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBoaWJtYy0+ZGV2OwotCXN0cnVjdCB0dG1f Ym9fZGV2aWNlICpiZGV2ID0gJmhpYm1jLT5iZGV2OwotCi0JcmV0ID0gdHRtX2JvX2RldmljZV9p bml0KCZoaWJtYy0+YmRldiwKLQkJCQkgJmhpYm1jX2JvX2RyaXZlciwKLQkJCQkgZGV2LT5hbm9u X2lub2RlLT5pX21hcHBpbmcsCi0JCQkJIHRydWUpOwotCWlmIChyZXQpIHsKLQkJRFJNX0VSUk9S KCJlcnJvciBpbml0aWFsaXppbmcgYm8gZHJpdmVyOiAlZFxuIiwgcmV0KTsKLQkJcmV0dXJuIHJl dDsKLQl9CiAKLQlyZXQgPSB0dG1fYm9faW5pdF9tbShiZGV2LCBUVE1fUExfVlJBTSwKLQkJCSAg ICAgaGlibWMtPmZiX3NpemUgPj4gUEFHRV9TSElGVCk7Ci0JaWYgKHJldCkgewotCQlEUk1fRVJS T1IoImZhaWxlZCB0dG0gVlJBTSBpbml0OiAlZFxuIiwgcmV0KTsKKwl2bW0gPSBkcm1fdnJhbV9o ZWxwZXJfYWxsb2NfbW0oZGV2LAorCQkJCSAgICAgICBwY2lfcmVzb3VyY2Vfc3RhcnQoZGV2LT5w ZGV2LCAwKSwKKwkJCQkgICAgICAgaGlibWMtPmZiX3NpemUsICZkcm1fZ2VtX3ZyYW1fbW1fZnVu Y3MpOworCWlmIChJU19FUlIodm1tKSkgeworCQlyZXQgPSBQVFJfRVJSKHZtbSk7CisJCURSTV9F UlJPUigiRXJyb3IgaW5pdGlhbGl6aW5nIFZSQU0gTU07ICVkXG4iLCByZXQpOwogCQlyZXR1cm4g cmV0OwogCX0KIAotCWhpYm1jLT5tbV9pbml0ZWQgPSB0cnVlOwogCXJldHVybiAwOwogfQogCiB2 b2lkIGhpYm1jX21tX2Zpbmkoc3RydWN0IGhpYm1jX2RybV9wcml2YXRlICpoaWJtYykKIHsKLQlp ZiAoIWhpYm1jLT5tbV9pbml0ZWQpCisJaWYgKCFoaWJtYy0+ZGV2LT52cmFtX21tKQogCQlyZXR1 cm47CiAKLQl0dG1fYm9fZGV2aWNlX3JlbGVhc2UoJmhpYm1jLT5iZGV2KTsKLQloaWJtYy0+bW1f aW5pdGVkID0gZmFsc2U7Ci19Ci0KLWludCBoaWJtY19tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKLXsKLQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJp diA9IGZpbHAtPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3QgaGlibWNfZHJtX3ByaXZhdGUgKmhpYm1j ID0gZmlsZV9wcml2LT5taW5vci0+ZGV2LT5kZXZfcHJpdmF0ZTsKLQotCXJldHVybiB0dG1fYm9f bW1hcChmaWxwLCB2bWEsICZoaWJtYy0+YmRldik7CisJZHJtX3ZyYW1faGVscGVyX3JlbGVhc2Vf bW0oaGlibWMtPmRldik7CiB9CiAKIGludCBoaWJtY19nZW1fY3JlYXRlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHUzMiBzaXplLCBib29sIGlza2VybmVsLAogCQkgICAgIHN0cnVjdCBkcm1fZ2Vt X29iamVjdCAqKm9iaikKIHsKLQlzdHJ1Y3QgaGlibWNfZHJtX3ByaXZhdGUgKmhpYm1jID0gZGV2 LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvOwogCWludCBy ZXQ7CiAKQEAgLTE3Nyw3ICs1OCw3IEBAIGludCBoaWJtY19nZW1fY3JlYXRlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHUzMiBzaXplLCBib29sIGlza2VybmVsLAogCWlmIChzaXplID09IDApCiAJ CXJldHVybiAtRUlOVkFMOwogCi0JZ2JvID0gZHJtX2dlbV92cmFtX2NyZWF0ZShkZXYsICZoaWJt Yy0+YmRldiwgc2l6ZSwgMCwgZmFsc2UpOworCWdibyA9IGRybV9nZW1fdnJhbV9jcmVhdGUoZGV2 LCAmZGV2LT52cmFtX21tLT5iZGV2LCBzaXplLCAwLCBmYWxzZSk7CiAJaWYgKElTX0VSUihnYm8p KSB7CiAJCXJldCA9IFBUUl9FUlIoZ2JvKTsKIAkJaWYgKHJldCAhPSAtRVJFU1RBUlRTWVMpCi0t IAoyLjIxLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==