From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: [PATCH v2 02/28] drm: omapdrm: Drop support for non-DT devices Date: Mon, 8 May 2017 14:32:37 +0300 Message-ID: <20170508113303.27521-3-laurent.pinchart@ideasonboard.com> References: <20170508113303.27521-1-laurent.pinchart@ideasonboard.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from galahad.ideasonboard.com (galahad.ideasonboard.com [185.26.127.97]) by gabe.freedesktop.org (Postfix) with ESMTPS id 814266E212 for ; Mon, 8 May 2017 11:33:11 +0000 (UTC) In-Reply-To: <20170508113303.27521-1-laurent.pinchart@ideasonboard.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 Cc: Tomi Valkeinen List-Id: dri-devel@lists.freedesktop.org QWxsIE9NQVAgcGxhdGZvcm1zIHVzZSBEVCBub3dhZGF5cywgZHJvcCBzdXBwb3J0IGZvciBub24t RFQgZGV2aWNlcy4KClNpZ25lZC1vZmYtYnk6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGlu Y2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3Mv ZGlzcGxheS5jIHwgMTkgKystLS0tLQogZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL2RzaS5j ICAgICB8IDkzICsrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dw dS9kcm0vb21hcGRybS9kc3MvaGRtaTQuYyAgIHwgIDggKystCiBkcml2ZXJzL2dwdS9kcm0vb21h cGRybS9kc3MvaGRtaTUuYyAgIHwgIDggKystCiBkcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3Mv dmVuYy5jICAgIHwgMTYgKystLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDM1IGluc2VydGlvbnMoKyks IDEwOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9k c3MvZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL2Rpc3BsYXkuYwppbmRl eCA0MjVhNWE4ZGZmOGIuLmNmNWY2YzJhZDM0NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L29tYXBkcm0vZHNzL2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3Mv ZGlzcGxheS5jCkBAIC04OCwyNiArODgsMTcgQEAgaW50IG9tYXBkc3NfcmVnaXN0ZXJfZGlzcGxh eShzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3NkZXYpCiAJaW50IGlkOwogCiAJLyoKLQkgKiBO b3RlOiB0aGlzIHByZXN1bWVzIGFsbCB0aGUgZGlzcGxheXMgYXJlIGVpdGhlciB1c2luZyBEVCBv ciBub24tRFQsCi0JICogd2hpY2ggbm9ybWFsbHkgc2hvdWxkIGJlIHRoZSBjYXNlLiBUaGlzIGFs c28gcHJlc3VtZXMgdGhhdCBhbGwKLQkgKiBkaXNwbGF5cyBlaXRoZXIgaGF2ZSBhbiBEVCBhbGlh cywgb3Igbm9uZSBoYXMuCisJICogTm90ZTogdGhpcyBwcmVzdW1lcyB0aGF0IGFsbCBkaXNwbGF5 cyBlaXRoZXIgaGF2ZSBhbiBEVCBhbGlhcywgb3IKKwkgKiBub25lIGhhcy4KIAkgKi8KLQotCWlm IChkc3NkZXYtPmRldi0+b2Zfbm9kZSkgewotCQlpZCA9IG9mX2FsaWFzX2dldF9pZChkc3NkZXYt PmRldi0+b2Zfbm9kZSwgImRpc3BsYXkiKTsKLQotCQlpZiAoaWQgPCAwKQotCQkJaWQgPSBkaXNw X251bV9jb3VudGVyKys7Ci0JfSBlbHNlIHsKKwlpZCA9IG9mX2FsaWFzX2dldF9pZChkc3NkZXYt PmRldi0+b2Zfbm9kZSwgImRpc3BsYXkiKTsKKwlpZiAoaWQgPCAwKQogCQlpZCA9IGRpc3BfbnVt X2NvdW50ZXIrKzsKLQl9CiAKIAlzbnByaW50Zihkc3NkZXYtPmFsaWFzLCBzaXplb2YoZHNzZGV2 LT5hbGlhcyksICJkaXNwbGF5JWQiLCBpZCk7CiAKIAkvKiBVc2UgJ2xhYmVsJyBwcm9wZXJ0eSBm b3IgbmFtZSwgaWYgaXQgZXhpc3RzICovCi0JaWYgKGRzc2Rldi0+ZGV2LT5vZl9ub2RlKQotCQlv Zl9wcm9wZXJ0eV9yZWFkX3N0cmluZyhkc3NkZXYtPmRldi0+b2Zfbm9kZSwgImxhYmVsIiwKLQkJ CSZkc3NkZXYtPm5hbWUpOworCW9mX3Byb3BlcnR5X3JlYWRfc3RyaW5nKGRzc2Rldi0+ZGV2LT5v Zl9ub2RlLCAibGFiZWwiLCAmZHNzZGV2LT5uYW1lKTsKIAogCWlmIChkc3NkZXYtPm5hbWUgPT0g TlVMTCkKIAkJZHNzZGV2LT5uYW1lID0gZHNzZGV2LT5hbGlhczsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rz cy9kc2kuYwppbmRleCA1OGYyMWYyYjMyYzIuLjNlZGQxOTRkNmYzNiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL2RzaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFw ZHJtL2Rzcy9kc2kuYwpAQCAtNTI3NiwxMiArNTI3NiwxMiBAQCBzdGF0aWMgaW50IGRzaV9pbml0 X3BsbF9kYXRhKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRzaWRldikKIHN0YXRpYyBpbnQgZHNp X2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRh dGEpCiB7CiAJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZHNpZGV2ID0gdG9fcGxhdGZvcm1fZGV2 aWNlKGRldik7CisJY29uc3Qgc3RydWN0IGRzaV9tb2R1bGVfaWRfZGF0YSAqZDsKIAl1MzIgcmV2 OwogCWludCByLCBpOwogCXN0cnVjdCBkc2lfZGF0YSAqZHNpOwogCXN0cnVjdCByZXNvdXJjZSAq ZHNpX21lbTsKIAlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKLQlzdHJ1Y3QgcmVzb3VyY2UgdGVtcF9y ZXM7CiAKIAlkc2kgPSBkZXZtX2t6YWxsb2MoJmRzaWRldi0+ZGV2LCBzaXplb2YoKmRzaSksIEdG UF9LRVJORUwpOwogCWlmICghZHNpKQpAQCAtNTMxMSw1NSArNTMxMSwxNyBAQCBzdGF0aWMgaW50 IGRzaV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lk ICpkYXRhKQogCWRzaS0+dGVfdGltZXIuZGF0YSA9IDA7CiAjZW5kaWYKIAotCXJlcyA9IHBsYXRm b3JtX2dldF9yZXNvdXJjZV9ieW5hbWUoZHNpZGV2LCBJT1JFU09VUkNFX01FTSwgInByb3RvIik7 Ci0JaWYgKCFyZXMpIHsKLQkJcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKGRzaWRldiwgSU9S RVNPVVJDRV9NRU0sIDApOwotCQlpZiAoIXJlcykgewotCQkJRFNTRVJSKCJjYW4ndCBnZXQgSU9S RVNPVVJDRV9NRU0gRFNJXG4iKTsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0KLQkJdGVtcF9y ZXMuc3RhcnQgPSByZXMtPnN0YXJ0OwotCQl0ZW1wX3Jlcy5lbmQgPSB0ZW1wX3Jlcy5zdGFydCAr IERTSV9QUk9UT19TWiAtIDE7Ci0JCXJlcyA9ICZ0ZW1wX3JlczsKLQl9Ci0KLQlkc2lfbWVtID0g cmVzOwotCi0JZHNpLT5wcm90b19iYXNlID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKCZkc2lkZXYt PmRldiwgcmVzKTsKKwlkc2lfbWVtID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlX2J5bmFtZShkc2lk ZXYsIElPUkVTT1VSQ0VfTUVNLCAicHJvdG8iKTsKKwlkc2ktPnByb3RvX2Jhc2UgPSBkZXZtX2lv cmVtYXBfcmVzb3VyY2UoJmRzaWRldi0+ZGV2LCBkc2lfbWVtKTsKIAlpZiAoIWRzaS0+cHJvdG9f YmFzZSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2Vf YnluYW1lKGRzaWRldiwgSU9SRVNPVVJDRV9NRU0sICJwaHkiKTsKLQlpZiAoIXJlcykgewotCQly ZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UoZHNpZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7Ci0J CWlmICghcmVzKSB7Ci0JCQlEU1NFUlIoImNhbid0IGdldCBJT1JFU09VUkNFX01FTSBEU0lcbiIp OwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQotCQl0ZW1wX3Jlcy5zdGFydCA9IHJlcy0+c3Rh cnQgKyBEU0lfUEhZX09GRlNFVDsKLQkJdGVtcF9yZXMuZW5kID0gdGVtcF9yZXMuc3RhcnQgKyBE U0lfUEhZX1NaIC0gMTsKLQkJcmVzID0gJnRlbXBfcmVzOwotCX0KLQogCWRzaS0+cGh5X2Jhc2Ug PSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoJmRzaWRldi0+ZGV2LCByZXMpOwogCWlmICghZHNpLT5w aHlfYmFzZSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3Vy Y2VfYnluYW1lKGRzaWRldiwgSU9SRVNPVVJDRV9NRU0sICJwbGwiKTsKLQlpZiAoIXJlcykgewot CQlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UoZHNpZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7 Ci0JCWlmICghcmVzKSB7Ci0JCQlEU1NFUlIoImNhbid0IGdldCBJT1JFU09VUkNFX01FTSBEU0lc biIpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQotCQl0ZW1wX3Jlcy5zdGFydCA9IHJlcy0+ c3RhcnQgKyBEU0lfUExMX09GRlNFVDsKLQkJdGVtcF9yZXMuZW5kID0gdGVtcF9yZXMuc3RhcnQg KyBEU0lfUExMX1NaIC0gMTsKLQkJcmVzID0gJnRlbXBfcmVzOwotCX0KLQogCWRzaS0+cGxsX2Jh c2UgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoJmRzaWRldi0+ZGV2LCByZXMpOwogCWlmICghZHNp LT5wbGxfYmFzZSkKIAkJcmV0dXJuIC1FTk9NRU07CkBAIC01Mzc3LDMxICs1MzM5LDE3IEBAIHN0 YXRpYyBpbnQgZHNpX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0 ZXIsIHZvaWQgKmRhdGEpCiAJCXJldHVybiByOwogCX0KIAotCWlmIChkc2lkZXYtPmRldi5vZl9u b2RlKSB7Ci0JCWNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKm1hdGNoOwotCQljb25zdCBzdHJ1 Y3QgZHNpX21vZHVsZV9pZF9kYXRhICpkOwotCi0JCW1hdGNoID0gb2ZfbWF0Y2hfbm9kZShkc2lf b2ZfbWF0Y2gsIGRzaWRldi0+ZGV2Lm9mX25vZGUpOwotCQlpZiAoIW1hdGNoKSB7Ci0JCQlEU1NF UlIoInVuc3VwcG9ydGVkIERTSSBtb2R1bGVcbiIpOwotCQkJcmV0dXJuIC1FTk9ERVY7Ci0JCX0K LQotCQlkID0gbWF0Y2gtPmRhdGE7CisJZCA9IG9mX21hdGNoX25vZGUoZHNpX29mX21hdGNoLCBk c2lkZXYtPmRldi5vZl9ub2RlKS0+ZGF0YTsKKwl3aGlsZSAoZC0+YWRkcmVzcyAhPSAwICYmIGQt PmFkZHJlc3MgIT0gZHNpX21lbS0+c3RhcnQpCisJCWQrKzsKIAotCQl3aGlsZSAoZC0+YWRkcmVz cyAhPSAwICYmIGQtPmFkZHJlc3MgIT0gZHNpX21lbS0+c3RhcnQpCi0JCQlkKys7Ci0KLQkJaWYg KGQtPmFkZHJlc3MgPT0gMCkgewotCQkJRFNTRVJSKCJ1bnN1cHBvcnRlZCBEU0kgbW9kdWxlXG4i KTsKLQkJCXJldHVybiAtRU5PREVWOwotCQl9Ci0KLQkJZHNpLT5tb2R1bGVfaWQgPSBkLT5pZDsK LQl9IGVsc2UgewotCQlkc2ktPm1vZHVsZV9pZCA9IGRzaWRldi0+aWQ7CisJaWYgKGQtPmFkZHJl c3MgPT0gMCkgeworCQlEU1NFUlIoInVuc3VwcG9ydGVkIERTSSBtb2R1bGVcbiIpOworCQlyZXR1 cm4gLUVOT0RFVjsKIAl9CiAKKwlkc2ktPm1vZHVsZV9pZCA9IGQtPmlkOworCiAJLyogRFNJIFZD cyBpbml0aWFsaXphdGlvbiAqLwogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGRzaS0+dmMp OyBpKyspIHsKIAkJZHNpLT52Y1tpXS5zb3VyY2UgPSBEU0lfVkNfU09VUkNFX0w0OwpAQCAtNTQz NywxOSArNTM4NSwxNiBAQCBzdGF0aWMgaW50IGRzaV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwg c3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQogCiAJZHNpX2luaXRfb3V0cHV0KGRz aWRldik7CiAKLQlpZiAoZHNpZGV2LT5kZXYub2Zfbm9kZSkgewotCQlyID0gZHNpX3Byb2JlX29m KGRzaWRldik7Ci0JCWlmIChyKSB7Ci0JCQlEU1NFUlIoIkludmFsaWQgRFNJIERUIGRhdGFcbiIp OwotCQkJZ290byBlcnJfcHJvYmVfb2Y7Ci0JCX0KLQotCQlyID0gb2ZfcGxhdGZvcm1fcG9wdWxh dGUoZHNpZGV2LT5kZXYub2Zfbm9kZSwgTlVMTCwgTlVMTCwKLQkJCSZkc2lkZXYtPmRldik7Ci0J CWlmIChyKQotCQkJRFNTRVJSKCJGYWlsZWQgdG8gcG9wdWxhdGUgRFNJIGNoaWxkIGRldmljZXM6 ICVkXG4iLCByKTsKKwlyID0gZHNpX3Byb2JlX29mKGRzaWRldik7CisJaWYgKHIpIHsKKwkJRFNT RVJSKCJJbnZhbGlkIERTSSBEVCBkYXRhXG4iKTsKKwkJZ290byBlcnJfcHJvYmVfb2Y7CiAJfQog CisJciA9IG9mX3BsYXRmb3JtX3BvcHVsYXRlKGRzaWRldi0+ZGV2Lm9mX25vZGUsIE5VTEwsIE5V TEwsICZkc2lkZXYtPmRldik7CisJaWYgKHIpCisJCURTU0VSUigiRmFpbGVkIHRvIHBvcHVsYXRl IERTSSBjaGlsZCBkZXZpY2VzOiAlZFxuIiwgcik7CisKIAlkc2lfcnVudGltZV9wdXQoZHNpZGV2 KTsKIAogCWlmIChkc2ktPm1vZHVsZV9pZCA9PSAwKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL29tYXBkcm0vZHNzL2hkbWk0LmMgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvaGRt aTQuYwppbmRleCBlNzE2MmMxNmRlMmUuLmZmNGEwYzA0YTIyYyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL29tYXBkcm0vZHNzL2hkbWk0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBk cm0vZHNzL2hkbWk0LmMKQEAgLTY5NSwxMSArNjk1LDkgQEAgc3RhdGljIGludCBoZG1pNF9iaW5k KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQog CW11dGV4X2luaXQoJmhkbWkubG9jayk7CiAJc3Bpbl9sb2NrX2luaXQoJmhkbWkuYXVkaW9fcGxh eWluZ19sb2NrKTsKIAotCWlmIChwZGV2LT5kZXYub2Zfbm9kZSkgewotCQlyID0gaGRtaV9wcm9i ZV9vZihwZGV2KTsKLQkJaWYgKHIpCi0JCQlyZXR1cm4gcjsKLQl9CisJciA9IGhkbWlfcHJvYmVf b2YocGRldik7CisJaWYgKHIpCisJCXJldHVybiByOwogCiAJciA9IGhkbWlfd3BfaW5pdChwZGV2 LCAmaGRtaS53cCk7CiAJaWYgKHIpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRy bS9kc3MvaGRtaTUuYyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9oZG1pNS5jCmluZGV4 IDY3OGRmYjAyNzY0YS4uYzAzN2I2MWY3OTIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v b21hcGRybS9kc3MvaGRtaTUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvaGRt aTUuYwpAQCAtNzI3LDExICs3MjcsOSBAQCBzdGF0aWMgaW50IGhkbWk1X2JpbmQoc3RydWN0IGRl dmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEpCiAJbXV0ZXhfaW5p dCgmaGRtaS5sb2NrKTsKIAlzcGluX2xvY2tfaW5pdCgmaGRtaS5hdWRpb19wbGF5aW5nX2xvY2sp OwogCi0JaWYgKHBkZXYtPmRldi5vZl9ub2RlKSB7Ci0JCXIgPSBoZG1pX3Byb2JlX29mKHBkZXYp OwotCQlpZiAocikKLQkJCXJldHVybiByOwotCX0KKwlyID0gaGRtaV9wcm9iZV9vZihwZGV2KTsK KwlpZiAocikKKwkJcmV0dXJuIHI7CiAKIAlyID0gaGRtaV93cF9pbml0KHBkZXYsICZoZG1pLndw KTsKIAlpZiAocikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy92ZW5j LmMgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvdmVuYy5jCmluZGV4IGJmMzlmZTYyYzg0 Ny4uZTUwYjEzNTRiMTMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3Mv dmVuYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy92ZW5jLmMKQEAgLTY0Miwx MSArNjQyLDcgQEAgc3RhdGljIGludCB2ZW5jX2luaXRfcmVndWxhdG9yKHZvaWQpCiAJaWYgKHZl bmMudmRkYV9kYWNfcmVnICE9IE5VTEwpCiAJCXJldHVybiAwOwogCi0JaWYgKHZlbmMucGRldi0+ ZGV2Lm9mX25vZGUpCi0JCXZkZGFfZGFjID0gZGV2bV9yZWd1bGF0b3JfZ2V0KCZ2ZW5jLnBkZXYt PmRldiwgInZkZGEiKTsKLQllbHNlCi0JCXZkZGFfZGFjID0gZGV2bV9yZWd1bGF0b3JfZ2V0KCZ2 ZW5jLnBkZXYtPmRldiwgInZkZGFfZGFjIik7Ci0KKwl2ZGRhX2RhYyA9IGRldm1fcmVndWxhdG9y X2dldCgmdmVuYy5wZGV2LT5kZXYsICJ2ZGRhIik7CiAJaWYgKElTX0VSUih2ZGRhX2RhYykpIHsK IAkJaWYgKFBUUl9FUlIodmRkYV9kYWMpICE9IC1FUFJPQkVfREVGRVIpCiAJCQlEU1NFUlIoImNh bid0IGdldCBWRERBX0RBQyByZWd1bGF0b3JcbiIpOwpAQCAtODg3LDEyICs4ODMsMTAgQEAgc3Rh dGljIGludCB2ZW5jX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0 ZXIsIHZvaWQgKmRhdGEpCiAKIAl2ZW5jX3J1bnRpbWVfcHV0KCk7CiAKLQlpZiAocGRldi0+ZGV2 Lm9mX25vZGUpIHsKLQkJciA9IHZlbmNfcHJvYmVfb2YocGRldik7Ci0JCWlmIChyKSB7Ci0JCQlE U1NFUlIoIkludmFsaWQgRFQgZGF0YVxuIik7Ci0JCQlnb3RvIGVycl9wcm9iZV9vZjsKLQkJfQor CXIgPSB2ZW5jX3Byb2JlX29mKHBkZXYpOworCWlmIChyKSB7CisJCURTU0VSUigiSW52YWxpZCBE VCBkYXRhXG4iKTsKKwkJZ290byBlcnJfcHJvYmVfb2Y7CiAJfQogCiAJZHNzX2RlYnVnZnNfY3Jl YXRlX2ZpbGUoInZlbmMiLCB2ZW5jX2R1bXBfcmVncyk7Ci0tIApSZWdhcmRzLAoKTGF1cmVudCBQ aW5jaGFydAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==