From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Herrmann Subject: [PATCH v5 5/7] drm: switch to sysfb_evict_conflicts() Date: Fri, 2 Sep 2016 10:22:43 +0200 Message-ID: <20160902082245.7119-6-dh.herrmann@gmail.com> References: <20160902082245.7119-1-dh.herrmann@gmail.com> 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 0E8D26EA38 for ; Fri, 2 Sep 2016 08:23:24 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id w207so1850251wmw.0 for ; Fri, 02 Sep 2016 01:23:23 -0700 (PDT) In-Reply-To: <20160902082245.7119-1-dh.herrmann@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org U3dpdGNoIG92ZXIgYWxsIERSTSBkcml2ZXJzIHRvIHVzZSB0aGUgbmV3IHN5c2ZiX2V2aWN0X2Nv bmZsaWN0cygpCmluZnJhc3RydWN0dXJlLiBUaGUgb25seSBub24tdHJpdmlhbCBjb252ZXJzaW9u IGlzIGk5MTUsIHNpbmNlIGl0IGRvZXMgbm90Cm1ha2UgdXNlIG9mIHRoZSBnZW5lcmljIFBDSSBy ZXNvdXJjZXMsIGJ1dCBhc3NlbWJsZXMgdGhlIGFwZXJ0dXJlcyB2aWEKaW50ZWwgZ2d0dCBxdWVy aWVzLgoKU2lnbmVkLW9mZi1ieTogRGF2aWQgSGVycm1hbm4gPGRoLmhlcnJtYW5uQGdtYWlsLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vS2NvbmZpZyAgICAgICAgICAgICAgICAgIHwgIDEgKwog ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jICB8IDI0ICstLS0tLS0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9jaHNfZHJ2LmMgICAgICAgIHwgMTkgKy0tLS0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgIHwgNzMgKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBf ZHJ2LmMgICAgfCAyNyArKystLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcy MDBfbWFpbi5jICAgfCAgOSAtLS0tCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Ry bS5jICAgIHwgMzMgKysrLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9kcnYuYyAgICAgIHwgMjQgKy0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40 aV9kcnYuYyAgICAgICAgfCAyNCArKystLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRf ZHJ2LmMgICAgICAgICAgICB8IDI1ICsrKy0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vdmlydGlv L3ZpcnRncHVfZHJtX2J1cy5jIHwgMjQgKy0tLS0tLS0tLS0KIDExIGZpbGVzIGNoYW5nZWQsIDQ0 IGluc2VydGlvbnMoKyksIDIzOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnCmluZGV4IGZjMzU3MzEuLmYy N2Y5YjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9LY29uZmlnCkBAIC0xMiw2ICsxMiw3IEBAIG1lbnVjb25maWcgRFJNCiAJc2VsZWN0 IEkyQwogCXNlbGVjdCBJMkNfQUxHT0JJVAogCXNlbGVjdCBETUFfU0hBUkVEX0JVRkZFUgorCXNl bGVjdCBTWVNGQgogCWhlbHAKIAkgIEtlcm5lbC1sZXZlbCBzdXBwb3J0IGZvciB0aGUgRGlyZWN0 IFJlbmRlcmluZyBJbmZyYXN0cnVjdHVyZSAoRFJJKQogCSAgaW50cm9kdWNlZCBpbiBYRnJlZTg2 IDQuMC4gSWYgeW91IHNheSBZIGhlcmUsIHlvdSBuZWVkIHRvIHNlbGVjdApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jCmluZGV4IDlhYTUzM2MuLmExZTY3ZGEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZHJ2LmMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNs dWRlIDxsaW51eC9jb25zb2xlLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVk ZSA8bGludXgvcG1fcnVudGltZS5oPgorI2luY2x1ZGUgPGxpbnV4L3N5c2ZiLmg+CiAjaW5jbHVk ZSA8bGludXgvdmdhX3N3aXRjaGVyb28uaD4KICNpbmNsdWRlICJkcm1fY3J0Y19oZWxwZXIuaCIK IApAQCAtMzI2LDI3ICszMjcsNiBAQCBNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgcGNpaWRsaXN0 KTsKIAogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGttc19kcml2ZXI7CiAKLXN0YXRpYyBpbnQg YW1kZ3B1X2tpY2tfb3V0X2Zpcm13YXJlX2ZiKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQotewotCXN0 cnVjdCBhcGVydHVyZXNfc3RydWN0ICphcDsKLQlib29sIHByaW1hcnkgPSBmYWxzZTsKLQotCWFw ID0gYWxsb2NfYXBlcnR1cmVzKDEpOwotCWlmICghYXApCi0JCXJldHVybiAtRU5PTUVNOwotCi0J YXAtPnJhbmdlc1swXS5iYXNlID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBkZXYsIDApOwotCWFwLT5y YW5nZXNbMF0uc2l6ZSA9IHBjaV9yZXNvdXJjZV9sZW4ocGRldiwgMCk7Ci0KLSNpZmRlZiBDT05G SUdfWDg2Ci0JcHJpbWFyeSA9IHBkZXYtPnJlc291cmNlW1BDSV9ST01fUkVTT1VSQ0VdLmZsYWdz ICYgSU9SRVNPVVJDRV9ST01fU0hBRE9XOwotI2VuZGlmCi0JcmVtb3ZlX2NvbmZsaWN0aW5nX2Zy YW1lYnVmZmVycyhhcCwgImFtZGdwdWRybWZiIiwgcHJpbWFyeSk7Ci0Ja2ZyZWUoYXApOwotCi0J cmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyBpbnQgYW1kZ3B1X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2Rl diAqcGRldiwKIAkJCSAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KQogewpAQCAt MzY4LDcgKzM0OCw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2Rl diAqcGRldiwKIAkJcmV0dXJuIHJldDsKIAogCS8qIEdldCByaWQgb2YgdGhpbmdzIGxpa2Ugb2Zm YiAqLwotCXJldCA9IGFtZGdwdV9raWNrX291dF9maXJtd2FyZV9mYihwZGV2KTsKKwlyZXQgPSBz eXNmYl9ldmljdF9jb25mbGljdHNfcGNpKHBkZXYpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19kcnYuYyBiL2RyaXZl cnMvZ3B1L2RybS9ib2Nocy9ib2Noc19kcnYuYwppbmRleCBhYmFjZTgyLi45OWM0ZWEzIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9jaHNfZHJ2LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2JvY2hzL2JvY2hzX2Rydi5jCkBAIC04LDYgKzgsNyBAQAogI2luY2x1ZGUgPGxpbnV4 L21tLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5o PgorI2luY2x1ZGUgPGxpbnV4L3N5c2ZiLmg+CiAKICNpbmNsdWRlICJib2Nocy5oIgogCkBAIC0x NDMsMjggKzE0NCwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgYm9jaHNfcG1f b3BzID0gewogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogLyogcGNpIGludGVyZmFjZSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCi1zdGF0 aWMgaW50IGJvY2hzX2tpY2tfb3V0X2Zpcm13YXJlX2ZiKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQot ewotCXN0cnVjdCBhcGVydHVyZXNfc3RydWN0ICphcDsKLQotCWFwID0gYWxsb2NfYXBlcnR1cmVz KDEpOwotCWlmICghYXApCi0JCXJldHVybiAtRU5PTUVNOwotCi0JYXAtPnJhbmdlc1swXS5iYXNl ID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBkZXYsIDApOwotCWFwLT5yYW5nZXNbMF0uc2l6ZSA9IHBj aV9yZXNvdXJjZV9sZW4ocGRldiwgMCk7Ci0JcmVtb3ZlX2NvbmZsaWN0aW5nX2ZyYW1lYnVmZmVy cyhhcCwgImJvY2hzZHJtZmIiLCBmYWxzZSk7Ci0Ja2ZyZWUoYXApOwotCi0JcmV0dXJuIDA7Ci19 Ci0KIHN0YXRpYyBpbnQgYm9jaHNfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogCQkJ ICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkKIHsKIAlpbnQgcmV0OwogCi0JcmV0 ID0gYm9jaHNfa2lja19vdXRfZmlybXdhcmVfZmIocGRldik7CisJcmV0ID0gc3lzZmJfZXZpY3Rf Y29uZmxpY3RzX3BjaShwZGV2KTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuYwppbmRleCA5NWRkZDU2Li40ZDZhNjVkZCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5jCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgog I2luY2x1ZGUgPGxpbnV4L3BucC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRl IDxsaW51eC9zeXNmYi5oPgogI2luY2x1ZGUgPGxpbnV4L3ZnYWFyYi5oPgogI2luY2x1ZGUgPGxp bnV4L3ZnYV9zd2l0Y2hlcm9vLmg+CiAjaW5jbHVkZSA8bGludXgvdnQuaD4KQEAgLTY4Nyw3MCAr Njg4LDMyIEBAIG91dDoKIAlyZXR1cm4gcmV0OwogfQogCi0jaWYgSVNfRU5BQkxFRChDT05GSUdf RkIpCiBzdGF0aWMgaW50IGk5MTVfa2lja19vdXRfZmlybXdhcmVfZmIoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBhcGVydHVyZXNfc3RydWN0ICphcDsKKwlz dHJ1Y3Qgc3lzZmJfZXZpY3RfY3R4IGN0eCA9IHt9OwogCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0g ZGV2X3ByaXYtPmRybS5wZGV2OwogCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmZGV2X3ByaXYt PmdndHQ7Ci0JYm9vbCBwcmltYXJ5OwogCWludCByZXQ7CiAKLQlhcCA9IGFsbG9jX2FwZXJ0dXJl cygxKTsKLQlpZiAoIWFwKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWFwLT5yYW5nZXNbMF0uYmFz ZSA9IGdndHQtPm1hcHBhYmxlX2Jhc2U7Ci0JYXAtPnJhbmdlc1swXS5zaXplID0gZ2d0dC0+bWFw cGFibGVfZW5kOwotCi0JcHJpbWFyeSA9Ci0JCXBkZXYtPnJlc291cmNlW1BDSV9ST01fUkVTT1VS Q0VdLmZsYWdzICYgSU9SRVNPVVJDRV9ST01fU0hBRE9XOwotCi0JcmV0ID0gcmVtb3ZlX2NvbmZs aWN0aW5nX2ZyYW1lYnVmZmVycyhhcCwgImludGVsZHJtZmIiLCBwcmltYXJ5KTsKLQotCWtmcmVl KGFwKTsKLQotCXJldHVybiByZXQ7Ci19Ci0jZWxzZQotc3RhdGljIGludCBpOTE1X2tpY2tfb3V0 X2Zpcm13YXJlX2ZiKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKLXsKLQlyZXR1 cm4gMDsKLX0KLSNlbmRpZgorCWN0eC5mbGFncyA9IFNZU0ZCX0VWSUNUX1BMQVRGT1JNIHwKKwkJ ICAgIFNZU0ZCX0VWSUNUX0ZCREVWIHwKKwkJICAgIFNZU0ZCX0VWSUNUX1ZHQUNPTjsKIAotI2lm ICFkZWZpbmVkKENPTkZJR19WR0FfQ09OU09MRSkKLXN0YXRpYyBpbnQgaTkxNV9raWNrX291dF92 Z2Fjb24oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCXJldHVybiAwOwot fQotI2VsaWYgIWRlZmluZWQoQ09ORklHX0RVTU1ZX0NPTlNPTEUpCi1zdGF0aWMgaW50IGk5MTVf a2lja19vdXRfdmdhY29uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKLXsKLQly ZXR1cm4gLUVOT0RFVjsKLX0KLSNlbHNlCi1zdGF0aWMgaW50IGk5MTVfa2lja19vdXRfdmdhY29u KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKLXsKLQlpbnQgcmV0ID0gMDsKKwlj dHguYXAgPSBhbGxvY19hcGVydHVyZXMoMSk7CisJaWYgKCFjdHguYXApCisJCXJldHVybiAtRU5P TUVNOwogCi0JRFJNX0lORk8oIlJlcGxhY2luZyBWR0EgY29uc29sZSBkcml2ZXJcbiIpOworCWN0 eC5hcC0+cmFuZ2VzWzBdLmJhc2UgPSBnZ3R0LT5tYXBwYWJsZV9iYXNlOworCWN0eC5hcC0+cmFu Z2VzWzBdLnNpemUgPSBnZ3R0LT5tYXBwYWJsZV9lbmQ7CiAKLQljb25zb2xlX2xvY2soKTsKLQlp ZiAoY29uX2lzX2JvdW5kKCZ2Z2FfY29uKSkKLQkJcmV0ID0gZG9fdGFrZV9vdmVyX2NvbnNvbGUo JmR1bW15X2NvbiwgMCwgTUFYX05SX0NPTlNPTEVTIC0gMSwgMSk7Ci0JaWYgKHJldCA9PSAwKSB7 Ci0JCXJldCA9IGRvX3VucmVnaXN0ZXJfY29uX2RyaXZlcigmdmdhX2Nvbik7CisJaWYgKHBkZXYt PnJlc291cmNlW1BDSV9ST01fUkVTT1VSQ0VdLmZsYWdzICYgSU9SRVNPVVJDRV9ST01fU0hBRE9X KQorCQljdHguZmxhZ3MgfD0gU1lTRkJfRVZJQ1RfVkJFOwogCi0JCS8qIElnbm9yZSAiYWxyZWFk eSB1bnJlZ2lzdGVyZWQiLiAqLwotCQlpZiAocmV0ID09IC1FTk9ERVYpCi0JCQlyZXQgPSAwOwot CX0KLQljb25zb2xlX3VubG9jaygpOworCXJldCA9IHN5c2ZiX2V2aWN0X2NvbmZsaWN0cygmY3R4 KTsKIAorCWtmcmVlKGN0eC5hcCk7CiAJcmV0dXJuIHJldDsKIH0KLSNlbmRpZgogCiBzdGF0aWMg dm9pZCBpbnRlbF9pbml0X2RwaW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog ewpAQCAtMTAzMiwyMCArOTk1LDEyIEBAIHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfaW5pdF9odyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCWdvdG8gb3V0X2dndHQ7CiAJfQog Ci0JLyogV0FSTklORzogQXBwYXJlbnRseSB3ZSBtdXN0IGtpY2sgZmJkZXYgZHJpdmVycyBiZWZv cmUgdmdhY29uLAotCSAqIG90aGVyd2lzZSB0aGUgdmdhIGZiZGV2IGRyaXZlciBmYWxscyBvdmVy LiAqLwogCXJldCA9IGk5MTVfa2lja19vdXRfZmlybXdhcmVfZmIoZGV2X3ByaXYpOwogCWlmIChy ZXQpIHsKIAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gcmVtb3ZlIGNvbmZsaWN0aW5nIGZyYW1lYnVm ZmVyIGRyaXZlcnNcbiIpOwogCQlnb3RvIG91dF9nZ3R0OwogCX0KIAotCXJldCA9IGk5MTVfa2lj a19vdXRfdmdhY29uKGRldl9wcml2KTsKLQlpZiAocmV0KSB7Ci0JCURSTV9FUlJPUigiZmFpbGVk IHRvIHJlbW92ZSBjb25mbGljdGluZyBWR0EgY29uc29sZVxuIik7Ci0JCWdvdG8gb3V0X2dndHQ7 Ci0JfQotCiAJcGNpX3NldF9tYXN0ZXIoZGV2LT5wZGV2KTsKIAogCS8qIG92ZXJsYXkgb24gZ2Vu MiBpcyBicm9rZW4gYW5kIGNhbid0IGFkZHJlc3MgYWJvdmUgMUcgKi8KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vbWdh ZzIwMC9tZ2FnMjAwX2Rydi5jCmluZGV4IDJiNGIxMjUuLmYzMDEwNWIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L21nYWcyMDAvbWdhZzIwMF9kcnYuYwpAQCAtMTAsNiArMTAsNyBAQAogICovCiAjaW5jbHVkZSA8 bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvY29uc29sZS5oPgorI2luY2x1ZGUgPGxp bnV4L3N5c2ZiLmg+CiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KIAogI2luY2x1ZGUgIm1nYWcyMDBf ZHJ2LmgiCkBAIC00MSwyOSArNDIsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNl X2lkIHBjaWlkbGlzdFtdID0gewogCiBNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgcGNpaWRsaXN0 KTsKIAotc3RhdGljIHZvaWQgbWdhZzIwMF9raWNrX291dF9maXJtd2FyZV9mYihzdHJ1Y3QgcGNp X2RldiAqcGRldikKLXsKLQlzdHJ1Y3QgYXBlcnR1cmVzX3N0cnVjdCAqYXA7Ci0JYm9vbCBwcmlt YXJ5ID0gZmFsc2U7Ci0KLQlhcCA9IGFsbG9jX2FwZXJ0dXJlcygxKTsKLQlpZiAoIWFwKQotCQly ZXR1cm47Ci0KLQlhcC0+cmFuZ2VzWzBdLmJhc2UgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGRldiwg MCk7Ci0JYXAtPnJhbmdlc1swXS5zaXplID0gcGNpX3Jlc291cmNlX2xlbihwZGV2LCAwKTsKLQot I2lmZGVmIENPTkZJR19YODYKLQlwcmltYXJ5ID0gcGRldi0+cmVzb3VyY2VbUENJX1JPTV9SRVNP VVJDRV0uZmxhZ3MgJiBJT1JFU09VUkNFX1JPTV9TSEFET1c7Ci0jZW5kaWYKLQlyZW1vdmVfY29u ZmxpY3RpbmdfZnJhbWVidWZmZXJzKGFwLCAibWdhZzIwMGRybWZiIiwgcHJpbWFyeSk7Ci0Ja2Zy ZWUoYXApOwotfQotCi0KIHN0YXRpYyBpbnQgbWdhX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAq cGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkKIHsKLQltZ2FnMjAwX2tpY2tf b3V0X2Zpcm13YXJlX2ZiKHBkZXYpOworCWludCByZXQ7CisKKwlyZXQgPSBzeXNmYl9ldmljdF9j b25mbGljdHNfcGNpKHBkZXYpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OwogCiAJcmV0 dXJuIGRybV9nZXRfcGNpX2RldihwZGV2LCBlbnQsICZkcml2ZXIpOwogfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9tYWluLmMgYi9kcml2ZXJzL2dwdS9kcm0v bWdhZzIwMC9tZ2FnMjAwX21haW4uYwppbmRleCAxMzc5OGIzLi40NzIzNDA3IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX21haW4uYworKysgYi9kcml2ZXJzL2dw dS9kcm0vbWdhZzIwMC9tZ2FnMjAwX21haW4uYwpAQCAtMTI0LDIwICsxMjQsMTEgQEAgc3RhdGlj IGludCBtZ2FfcHJvYmVfdnJhbShzdHJ1Y3QgbWdhX2RldmljZSAqbWRldiwgdm9pZCBfX2lvbWVt ICptZW0pCiBzdGF0aWMgaW50IG1nYV92cmFtX2luaXQoc3RydWN0IG1nYV9kZXZpY2UgKm1kZXYp CiB7CiAJdm9pZCBfX2lvbWVtICptZW07Ci0Jc3RydWN0IGFwZXJ0dXJlc19zdHJ1Y3QgKmFwZXIg PSBhbGxvY19hcGVydHVyZXMoMSk7Ci0JaWYgKCFhcGVyKQotCQlyZXR1cm4gLUVOT01FTTsKIAog CS8qIEJBUiAwIGlzIFZSQU0gKi8KIAltZGV2LT5tYy52cmFtX2Jhc2UgPSBwY2lfcmVzb3VyY2Vf c3RhcnQobWRldi0+ZGV2LT5wZGV2LCAwKTsKIAltZGV2LT5tYy52cmFtX3dpbmRvdyA9IHBjaV9y ZXNvdXJjZV9sZW4obWRldi0+ZGV2LT5wZGV2LCAwKTsKIAotCWFwZXItPnJhbmdlc1swXS5iYXNl ID0gbWRldi0+bWMudnJhbV9iYXNlOwotCWFwZXItPnJhbmdlc1swXS5zaXplID0gbWRldi0+bWMu dnJhbV93aW5kb3c7Ci0KLQlyZW1vdmVfY29uZmxpY3RpbmdfZnJhbWVidWZmZXJzKGFwZXIsICJt Z2FmYiIsIHRydWUpOwotCWtmcmVlKGFwZXIpOwotCiAJaWYgKCFkZXZtX3JlcXVlc3RfbWVtX3Jl Z2lvbihtZGV2LT5kZXYtPmRldiwgbWRldi0+bWMudnJhbV9iYXNlLCBtZGV2LT5tYy52cmFtX3dp bmRvdywKIAkJCQkibWdhZHJtZmJfdnJhbSIpKSB7CiAJCURSTV9FUlJPUigiY2FuJ3QgcmVzZXJ2 ZSBWUkFNXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVf ZHJtLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2RybS5jCmluZGV4IDY2YzEy ODAuLjE5M2U4MzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVf ZHJtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kcm0uYwpAQCAtMjcs NiArMjcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3Bj aS5oPgogI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KKyNpbmNsdWRlIDxsaW51eC9zeXNm Yi5oPgogI2luY2x1ZGUgPGxpbnV4L3ZnYV9zd2l0Y2hlcm9vLmg+CiAKICNpbmNsdWRlICJkcm1Q LmgiCkBAIC0zMTAsOCArMzExLDYgQEAgc3RhdGljIGludCBub3V2ZWF1X2RybV9wcm9iZShzdHJ1 Y3QgcGNpX2RldiAqcGRldiwKIAkJCSAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBl bnQpCiB7CiAJc3RydWN0IG52a21fZGV2aWNlICpkZXZpY2U7Ci0Jc3RydWN0IGFwZXJ0dXJlc19z dHJ1Y3QgKmFwZXI7Ci0JYm9vbCBib290ID0gZmFsc2U7CiAJaW50IHJldDsKIAogCWlmICh2Z2Ff c3dpdGNoZXJvb19jbGllbnRfcHJvYmVfZGVmZXIocGRldikpCkBAIC0zMjYsMzQgKzMyNSwxMiBA QCBzdGF0aWMgaW50IG5vdXZlYXVfZHJtX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogCiAJ bnZrbV9kZXZpY2VfZGVsKCZkZXZpY2UpOwogCi0JLyogUmVtb3ZlIGNvbmZsaWN0aW5nIGRyaXZl cnMgKHZlc2FmYiwgZWZpZmIgZXRjKS4gKi8KLQlhcGVyID0gYWxsb2NfYXBlcnR1cmVzKDMpOwot CWlmICghYXBlcikKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlhcGVyLT5yYW5nZXNbMF0uYmFzZSA9 IHBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCAxKTsKLQlhcGVyLT5yYW5nZXNbMF0uc2l6ZSA9IHBj aV9yZXNvdXJjZV9sZW4ocGRldiwgMSk7Ci0JYXBlci0+Y291bnQgPSAxOwotCi0JaWYgKHBjaV9y ZXNvdXJjZV9sZW4ocGRldiwgMikpIHsKLQkJYXBlci0+cmFuZ2VzW2FwZXItPmNvdW50XS5iYXNl ID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBkZXYsIDIpOwotCQlhcGVyLT5yYW5nZXNbYXBlci0+Y291 bnRdLnNpemUgPSBwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIDIpOwotCQlhcGVyLT5jb3VudCsrOwot CX0KLQotCWlmIChwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIDMpKSB7Ci0JCWFwZXItPnJhbmdlc1th cGVyLT5jb3VudF0uYmFzZSA9IHBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCAzKTsKLQkJYXBlci0+ cmFuZ2VzW2FwZXItPmNvdW50XS5zaXplID0gcGNpX3Jlc291cmNlX2xlbihwZGV2LCAzKTsKLQkJ YXBlci0+Y291bnQrKzsKKwlpZiAobm91dmVhdV9tb2Rlc2V0ICE9IDIpIHsKKwkJcmV0ID0gc3lz ZmJfZXZpY3RfY29uZmxpY3RzX3BjaShwZGV2KTsKKwkJaWYgKHJldCA8IDApCisJCQlyZXR1cm4g cmV0OwogCX0KIAotI2lmZGVmIENPTkZJR19YODYKLQlib290ID0gcGRldi0+cmVzb3VyY2VbUENJ X1JPTV9SRVNPVVJDRV0uZmxhZ3MgJiBJT1JFU09VUkNFX1JPTV9TSEFET1c7Ci0jZW5kaWYKLQlp ZiAobm91dmVhdV9tb2Rlc2V0ICE9IDIpCi0JCXJlbW92ZV9jb25mbGljdGluZ19mcmFtZWJ1ZmZl cnMoYXBlciwgIm5vdXZlYXVmYiIsIGJvb3QpOwotCWtmcmVlKGFwZXIpOwotCiAJcmV0ID0gbnZr bV9kZXZpY2VfcGNpX25ldyhwZGV2LCBub3V2ZWF1X2NvbmZpZywgbm91dmVhdV9kZWJ1ZywKIAkJ CQkgIHRydWUsIHRydWUsIH4wVUxMLCAmZGV2aWNlKTsKIAlpZiAocmV0KQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9kcnYuYwppbmRleCBjMDFhN2M2Li5hMGMxMWJkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9kcnYuYwpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2NvbnNv bGUuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9wbV9ydW50 aW1lLmg+CisjaW5jbHVkZSA8bGludXgvc3lzZmIuaD4KICNpbmNsdWRlIDxsaW51eC92Z2Ffc3dp dGNoZXJvby5oPgogI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+CiAKQEAgLTMwOSwyNyArMzEwLDYg QEAgTU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIHBjaWlkbGlzdCk7CiAKIHN0YXRpYyBzdHJ1Y3Qg ZHJtX2RyaXZlciBrbXNfZHJpdmVyOwogCi1zdGF0aWMgaW50IHJhZGVvbl9raWNrX291dF9maXJt d2FyZV9mYihzdHJ1Y3QgcGNpX2RldiAqcGRldikKLXsKLQlzdHJ1Y3QgYXBlcnR1cmVzX3N0cnVj dCAqYXA7Ci0JYm9vbCBwcmltYXJ5ID0gZmFsc2U7Ci0KLQlhcCA9IGFsbG9jX2FwZXJ0dXJlcygx KTsKLQlpZiAoIWFwKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWFwLT5yYW5nZXNbMF0uYmFzZSA9 IHBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCAwKTsKLQlhcC0+cmFuZ2VzWzBdLnNpemUgPSBwY2lf cmVzb3VyY2VfbGVuKHBkZXYsIDApOwotCi0jaWZkZWYgQ09ORklHX1g4NgotCXByaW1hcnkgPSBw ZGV2LT5yZXNvdXJjZVtQQ0lfUk9NX1JFU09VUkNFXS5mbGFncyAmIElPUkVTT1VSQ0VfUk9NX1NI QURPVzsKLSNlbmRpZgotCXJlbW92ZV9jb25mbGljdGluZ19mcmFtZWJ1ZmZlcnMoYXAsICJyYWRl b25kcm1mYiIsIHByaW1hcnkpOwotCWtmcmVlKGFwKTsKLQotCXJldHVybiAwOwotfQotCiBzdGF0 aWMgaW50IHJhZGVvbl9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsCiAJCQkgICAgY29u c3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkKIHsKQEAgLTM0Nyw3ICszMjcsNyBAQCBzdGF0 aWMgaW50IHJhZGVvbl9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsCiAJCXJldHVybiAt RVBST0JFX0RFRkVSOwogCiAJLyogR2V0IHJpZCBvZiB0aGluZ3MgbGlrZSBvZmZiICovCi0JcmV0 ID0gcmFkZW9uX2tpY2tfb3V0X2Zpcm13YXJlX2ZiKHBkZXYpOworCXJldCA9IHN5c2ZiX2V2aWN0 X2NvbmZsaWN0c19wY2kocGRldik7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJt L3N1bjRpL3N1bjRpX2Rydi5jCmluZGV4IDcwOTJkYWEuLmFjMzg4YjUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc3Vu NGkvc3VuNGlfZHJ2LmMKQEAgLTEyLDYgKzEyLDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2NvbXBv bmVudC5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2dyYXBoLmg+CisjaW5jbHVkZSA8bGludXgvc3lz ZmIuaD4KIAogI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hl bHBlci5oPgpAQCAtOTcsMjggKzk4LDE2IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBzdW40 aV9kcnZfZHJpdmVyID0gewogCS5kaXNhYmxlX3ZibGFuawkJPSBzdW40aV9kcnZfZGlzYWJsZV92 YmxhbmssCiB9OwogCi1zdGF0aWMgdm9pZCBzdW40aV9yZW1vdmVfZnJhbWVidWZmZXJzKHZvaWQp Ci17Ci0Jc3RydWN0IGFwZXJ0dXJlc19zdHJ1Y3QgKmFwOwotCi0JYXAgPSBhbGxvY19hcGVydHVy ZXMoMSk7Ci0JaWYgKCFhcCkKLQkJcmV0dXJuOwotCi0JLyogVGhlIGZyYW1lYnVmZmVyIGNhbiBi ZSBsb2NhdGVkIGFueXdoZXJlIGluIFJBTSAqLwotCWFwLT5yYW5nZXNbMF0uYmFzZSA9IDA7Ci0J YXAtPnJhbmdlc1swXS5zaXplID0gfjA7Ci0KLQlyZW1vdmVfY29uZmxpY3RpbmdfZnJhbWVidWZm ZXJzKGFwLCAic3VuNGktZHJtLWZiIiwgZmFsc2UpOwotCWtmcmVlKGFwKTsKLX0KLQogc3RhdGlj IGludCBzdW40aV9kcnZfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9k ZXZpY2UgKmRybTsKIAlzdHJ1Y3Qgc3VuNGlfZHJ2ICpkcnY7CiAJaW50IHJldDsKIAorCXJldCA9 IHN5c2ZiX2V2aWN0X2NvbmZsaWN0c19maXJtd2FyZSgpOworCWlmIChyZXQgPCAwKQorCQlyZXR1 cm4gcmV0OworCiAJZHJtID0gZHJtX2Rldl9hbGxvYygmc3VuNGlfZHJ2X2RyaXZlciwgZGV2KTsK IAlpZiAoIWRybSkKIAkJcmV0dXJuIC1FTk9NRU07CkBAIC0xNTYsOSArMTQ1LDYgQEAgc3RhdGlj IGludCBzdW40aV9kcnZfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJfQogCWRybS0+aXJxX2Vu YWJsZWQgPSB0cnVlOwogCi0JLyogUmVtb3ZlIGVhcmx5IGZyYW1lYnVmZmVycyAoaWUuIHNpbXBs ZWZiKSAqLwotCXN1bjRpX3JlbW92ZV9mcmFtZWJ1ZmZlcnMoKTsKLQogCS8qIENyZWF0ZSBvdXIg ZnJhbWVidWZmZXIgKi8KIAlkcnYtPmZiZGV2ID0gc3VuNGlfZnJhbWVidWZmZXJfaW5pdChkcm0p OwogCWlmIChJU19FUlIoZHJ2LT5mYmRldikpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS92YzQvdmM0X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmMKaW5kZXggOGI0 MmQzMS4uNjc5ZTY1YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmMKQEAgLTE1LDYgKzE1LDcgQEAKICNp bmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2Rl dmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KKyNpbmNsdWRlIDxsaW51eC9z eXNmYi5oPgogI2luY2x1ZGUgImRybV9mYl9jbWFfaGVscGVyLmgiCiAKICNpbmNsdWRlICJ1YXBp L2RybS92YzRfZHJtLmgiCkBAIC0yMDAsMjQgKzIwMSw2IEBAIHN0YXRpYyB2b2lkIHZjNF9tYXRj aF9hZGRfZHJpdmVycyhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJfQogfQogCi1zdGF0aWMgdm9pZCB2 YzRfa2lja19vdXRfZmlybXdhcmVfZmIodm9pZCkKLXsKLQlzdHJ1Y3QgYXBlcnR1cmVzX3N0cnVj dCAqYXA7Ci0KLQlhcCA9IGFsbG9jX2FwZXJ0dXJlcygxKTsKLQlpZiAoIWFwKQotCQlyZXR1cm47 Ci0KLQkvKiBTaW5jZSBWQzQgaXMgYSBVTUEgZGV2aWNlLCB0aGUgc2ltcGxlZmIgbm9kZSBtYXkg aGF2ZSBiZWVuCi0JICogbG9jYXRlZCBhbnl3aGVyZSBpbiBtZW1vcnkuCi0JICovCi0JYXAtPnJh bmdlc1swXS5iYXNlID0gMDsKLQlhcC0+cmFuZ2VzWzBdLnNpemUgPSB+MDsKLQotCXJlbW92ZV9j b25mbGljdGluZ19mcmFtZWJ1ZmZlcnMoYXAsICJ2YzRkcm1mYiIsIGZhbHNlKTsKLQlrZnJlZShh cCk7Ci19Ci0KIHN0YXRpYyBpbnQgdmM0X2RybV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldikKIHsK IAlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2ID0gdG9fcGxhdGZvcm1fZGV2aWNlKGRldik7 CkBAIC0yMjUsNiArMjA4LDEwIEBAIHN0YXRpYyBpbnQgdmM0X2RybV9iaW5kKHN0cnVjdCBkZXZp Y2UgKmRldikKIAlzdHJ1Y3QgdmM0X2RldiAqdmM0OwogCWludCByZXQgPSAwOwogCisJcmV0ID0g c3lzZmJfZXZpY3RfY29uZmxpY3RzX2Zpcm13YXJlKCk7CisJaWYgKHJldCA8IDApCisJCXJldHVy biByZXQ7CisKIAlkZXYtPmNvaGVyZW50X2RtYV9tYXNrID0gRE1BX0JJVF9NQVNLKDMyKTsKIAog CXZjNCA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqdmM0KSwgR0ZQX0tFUk5FTCk7CkBAIC0y NDgsOCArMjM1LDYgQEAgc3RhdGljIGludCB2YzRfZHJtX2JpbmQoc3RydWN0IGRldmljZSAqZGV2 KQogCWlmIChyZXQpCiAJCWdvdG8gZ2VtX2Rlc3Ryb3k7CiAKLQl2YzRfa2lja19vdXRfZmlybXdh cmVfZmIoKTsKLQogCXJldCA9IGRybV9kZXZfcmVnaXN0ZXIoZHJtLCAwKTsKIAlpZiAocmV0IDwg MCkKIAkJZ290byB1bmJpbmRfYWxsOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRp by92aXJ0Z3B1X2RybV9idXMuYyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9kcm1f YnVzLmMKaW5kZXggN2YwZTkzZjg3Li5kNmE4YTk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vdmlydGlvL3ZpcnRncHVfZHJtX2J1cy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8v dmlydGdwdV9kcm1fYnVzLmMKQEAgLTI0LDI5ICsyNCwxMCBAQAogICovCiAKICNpbmNsdWRlIDxs aW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9zeXNmYi5oPgogCiAjaW5jbHVkZSAidmlydGdw dV9kcnYuaCIKIAotc3RhdGljIHZvaWQgdmlydGlvX3BjaV9raWNrX291dF9maXJtd2FyZV9mYihz dHJ1Y3QgcGNpX2RldiAqcGNpX2RldikKLXsKLQlzdHJ1Y3QgYXBlcnR1cmVzX3N0cnVjdCAqYXA7 Ci0JYm9vbCBwcmltYXJ5OwotCi0JYXAgPSBhbGxvY19hcGVydHVyZXMoMSk7Ci0JaWYgKCFhcCkK LQkJcmV0dXJuOwotCi0JYXAtPnJhbmdlc1swXS5iYXNlID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBj aV9kZXYsIDApOwotCWFwLT5yYW5nZXNbMF0uc2l6ZSA9IHBjaV9yZXNvdXJjZV9sZW4ocGNpX2Rl diwgMCk7Ci0KLQlwcmltYXJ5ID0gcGNpX2Rldi0+cmVzb3VyY2VbUENJX1JPTV9SRVNPVVJDRV0u ZmxhZ3MKLQkJJiBJT1JFU09VUkNFX1JPTV9TSEFET1c7Ci0KLQlyZW1vdmVfY29uZmxpY3Rpbmdf ZnJhbWVidWZmZXJzKGFwLCAidmlydGlvZHJtZmIiLCBwcmltYXJ5KTsKLQotCWtmcmVlKGFwKTsK LX0KLQogaW50IGRybV92aXJ0aW9faW5pdChzdHJ1Y3QgZHJtX2RyaXZlciAqZHJpdmVyLCBzdHJ1 Y3QgdmlydGlvX2RldmljZSAqdmRldikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2OwpAQCAt NjUsOCArNDYsNyBAQCBpbnQgZHJtX3ZpcnRpb19pbml0KHN0cnVjdCBkcm1fZHJpdmVyICpkcml2 ZXIsIHN0cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2KQogCQlEUk1fSU5GTygicGNpOiAlcyBkZXRl Y3RlZFxuIiwKIAkJCSB2Z2EgPyAidmlydGlvLXZnYSIgOiAidmlydGlvLWdwdS1wY2kiKTsKIAkJ ZGV2LT5wZGV2ID0gcGRldjsKLQkJaWYgKHZnYSkKLQkJCXZpcnRpb19wY2lfa2lja19vdXRfZmly bXdhcmVfZmIocGRldik7CisJCXN5c2ZiX2V2aWN0X2NvbmZsaWN0c19wY2kocGRldik7CiAJfQog CiAJcmV0ID0gZHJtX2Rldl9yZWdpc3RlcihkZXYsIDApOwotLSAKMi45LjMKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=