From mboxrd@z Thu Jan 1 00:00:00 1970 From: YT Shen Subject: [PATCH v10 06/13] drm/mediatek: cleaning up and refine Date: Fri, 25 Nov 2016 18:34:29 +0800 Message-ID: <1480070076-6196-7-git-send-email-yt.shen@mediatek.com> References: <1480070076-6196-1-git-send-email-yt.shen@mediatek.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1480070076-6196-1-git-send-email-yt.shen@mediatek.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, Philipp Zabel Cc: Daniel Vetter , Jie Qiu , Mao Huang , yingjoe.chen@mediatek.com, Dan Carpenter , Jitao Shi , linux-mediatek@lists.infradead.org, Matthias Brugger , shaoming chen , linux-arm-kernel@lists.infradead.org, srv_heupstream@mediatek.com, emil.l.velikov@gmail.com, linux-kernel@vger.kernel.org, Sascha Hauer , Maxime Ripard List-Id: linux-mediatek@lists.infradead.org Y2xlYW5pbmcgdXAgdW51c2VkIGRlZmluZSBhbmQgcmVmaW5lIGZ1bmN0aW9uIG5hbWUgYW5kIHZh cmlhYmxlCgpTaWduZWQtb2ZmLWJ5OiBzaGFvbWluZyBjaGVuIDxzaGFvbWluZy5jaGVuQG1lZGlh dGVrLmNvbT4KU2lnbmVkLW9mZi1ieTogWVQgU2hlbiA8eXQuc2hlbkBtZWRpYXRlay5jb20+Ci0t LQogZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kc2kuYyAgICAgfCA3NyArKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX21p cGlfdHguYyB8ICA4ICsrLS0KIDIgZmlsZXMgY2hhbmdlZCwgNDEgaW5zZXJ0aW9ucygrKSwgNDQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19k c2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHNpLmMKaW5kZXggMjhiMjA0NC4u NGVmZWIzOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kc2kuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5jCkBAIC0yNyw5ICsyNyw2IEBA CiAKICNpbmNsdWRlICJtdGtfZHJtX2RkcF9jb21wLmgiCiAKLSNkZWZpbmUgRFNJX1ZJREVPX0ZJ Rk9fREVQVEgJKDE5MjAgLyA0KQotI2RlZmluZSBEU0lfSE9TVF9GSUZPX0RFUFRICTY0Ci0KICNk ZWZpbmUgRFNJX1NUQVJUCQkweDAwCiAKICNkZWZpbmUgRFNJX0NPTl9DVFJMCQkweDEwCkBAIC00 Niw3ICs0Myw3IEBACiAjZGVmaW5lIE1JWF9NT0RFCQkJQklUKDE3KQogCiAjZGVmaW5lIERTSV9U WFJYX0NUUkwJCTB4MTgKLSNkZWZpbmUgVkNfTlVNCQkJCSgyIDw8IDApCisjZGVmaW5lIFZDX05V TQkJCQlCSVQoMSkKICNkZWZpbmUgTEFORV9OVU0JCQkoMHhmIDw8IDIpCiAjZGVmaW5lIERJU19F T1QJCQkJQklUKDYpCiAjZGVmaW5lIE5VTExfRU4JCQkJQklUKDcpCkBAIC0xNTgsMTEgKzE1NSwx MSBAQCBzdGF0aWMgdm9pZCBtdGtfZHNpX21hc2soc3RydWN0IG10a19kc2kgKmRzaSwgdTMyIG9m ZnNldCwgdTMyIG1hc2ssIHUzMiBkYXRhKQogCXdyaXRlbCgodGVtcCAmIH5tYXNrKSB8IChkYXRh ICYgbWFzayksIGRzaS0+cmVncyArIG9mZnNldCk7CiB9CiAKLXN0YXRpYyB2b2lkIGRzaV9waHlf dGltY29uZmlnKHN0cnVjdCBtdGtfZHNpICpkc2kpCitzdGF0aWMgdm9pZCBtdGtfZHNpX3BoeV90 aW1jb25maWcoc3RydWN0IG10a19kc2kgKmRzaSkKIHsKIAl1MzIgdGltY29uMCwgdGltY29uMSwg dGltY29uMiwgdGltY29uMzsKLQl1bnNpZ25lZCBpbnQgdWksIGN5Y2xlX3RpbWU7Ci0JdW5zaWdu ZWQgaW50IGxweDsKKwl1MzIgdWksIGN5Y2xlX3RpbWU7CisJdTMyIGxweDsKIAogCXVpID0gMTAw MCAvIGRzaS0+ZGF0YV9yYXRlICsgMHgwMTsKIAljeWNsZV90aW1lID0gODAwMCAvIGRzaS0+ZGF0 YV9yYXRlICsgMHgwMTsKQEAgLTE5Miw3ICsxODksNyBAQCBzdGF0aWMgdm9pZCBtdGtfZHNpX2Rp c2FibGUoc3RydWN0IG10a19kc2kgKmRzaSkKIAltdGtfZHNpX21hc2soZHNpLCBEU0lfQ09OX0NU UkwsIERTSV9FTiwgMCk7CiB9CiAKLXN0YXRpYyB2b2lkIG10a19kc2lfcmVzZXQoc3RydWN0IG10 a19kc2kgKmRzaSkKK3N0YXRpYyB2b2lkIG10a19kc2lfcmVzZXRfZW5naW5lKHN0cnVjdCBtdGtf ZHNpICpkc2kpCiB7CiAJbXRrX2RzaV9tYXNrKGRzaSwgRFNJX0NPTl9DVFJMLCBEU0lfUkVTRVQs IERTSV9SRVNFVCk7CiAJbXRrX2RzaV9tYXNrKGRzaSwgRFNJX0NPTl9DVFJMLCBEU0lfUkVTRVQs IDApOwpAQCAtMjM1LDggKzIzMiw4IEBAIHN0YXRpYyBpbnQgbXRrX2RzaV9wb3dlcm9uKHN0cnVj dCBtdGtfZHNpICpkc2kpCiAJfQogCiAJbXRrX2RzaV9lbmFibGUoZHNpKTsKLQltdGtfZHNpX3Jl c2V0KGRzaSk7Ci0JZHNpX3BoeV90aW1jb25maWcoZHNpKTsKKwltdGtfZHNpX3Jlc2V0X2VuZ2lu ZShkc2kpOworCW10a19kc2lfcGh5X3RpbWNvbmZpZyhkc2kpOwogCiAJcmV0dXJuIDA7CiAKQEAg LTI0OSwzMyArMjQ2LDMzIEBAIHN0YXRpYyBpbnQgbXRrX2RzaV9wb3dlcm9uKHN0cnVjdCBtdGtf ZHNpICpkc2kpCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHZvaWQgZHNpX2Nsa191bHBfbW9k ZV9lbnRlcihzdHJ1Y3QgbXRrX2RzaSAqZHNpKQorc3RhdGljIHZvaWQgbXRrX2RzaV9jbGtfdWxw X21vZGVfZW50ZXIoc3RydWN0IG10a19kc2kgKmRzaSkKIHsKIAltdGtfZHNpX21hc2soZHNpLCBE U0lfUEhZX0xDQ09OLCBMQ19IU19UWF9FTiwgMCk7CiAJbXRrX2RzaV9tYXNrKGRzaSwgRFNJX1BI WV9MQ0NPTiwgTENfVUxQTV9FTiwgMCk7CiB9CiAKLXN0YXRpYyB2b2lkIGRzaV9jbGtfdWxwX21v ZGVfbGVhdmUoc3RydWN0IG10a19kc2kgKmRzaSkKK3N0YXRpYyB2b2lkIG10a19kc2lfY2xrX3Vs cF9tb2RlX2xlYXZlKHN0cnVjdCBtdGtfZHNpICpkc2kpCiB7CiAJbXRrX2RzaV9tYXNrKGRzaSwg RFNJX1BIWV9MQ0NPTiwgTENfVUxQTV9FTiwgMCk7CiAJbXRrX2RzaV9tYXNrKGRzaSwgRFNJX1BI WV9MQ0NPTiwgTENfV0FLRVVQX0VOLCBMQ19XQUtFVVBfRU4pOwogCW10a19kc2lfbWFzayhkc2ks IERTSV9QSFlfTENDT04sIExDX1dBS0VVUF9FTiwgMCk7CiB9CiAKLXN0YXRpYyB2b2lkIGRzaV9s YW5lMF91bHBfbW9kZV9lbnRlcihzdHJ1Y3QgbXRrX2RzaSAqZHNpKQorc3RhdGljIHZvaWQgbXRr X2RzaV9sYW5lMF91bHBfbW9kZV9lbnRlcihzdHJ1Y3QgbXRrX2RzaSAqZHNpKQogewogCW10a19k c2lfbWFzayhkc2ksIERTSV9QSFlfTEQwQ09OLCBMRDBfSFNfVFhfRU4sIDApOwogCW10a19kc2lf bWFzayhkc2ksIERTSV9QSFlfTEQwQ09OLCBMRDBfVUxQTV9FTiwgMCk7CiB9CiAKLXN0YXRpYyB2 b2lkIGRzaV9sYW5lMF91bHBfbW9kZV9sZWF2ZShzdHJ1Y3QgbXRrX2RzaSAqZHNpKQorc3RhdGlj IHZvaWQgbXRrX2RzaV9sYW5lMF91bHBfbW9kZV9sZWF2ZShzdHJ1Y3QgbXRrX2RzaSAqZHNpKQog ewogCW10a19kc2lfbWFzayhkc2ksIERTSV9QSFlfTEQwQ09OLCBMRDBfVUxQTV9FTiwgMCk7CiAJ bXRrX2RzaV9tYXNrKGRzaSwgRFNJX1BIWV9MRDBDT04sIExEMF9XQUtFVVBfRU4sIExEMF9XQUtF VVBfRU4pOwogCW10a19kc2lfbWFzayhkc2ksIERTSV9QSFlfTEQwQ09OLCBMRDBfV0FLRVVQX0VO LCAwKTsKIH0KIAotc3RhdGljIGJvb2wgZHNpX2Nsa19oc19zdGF0ZShzdHJ1Y3QgbXRrX2RzaSAq ZHNpKQorc3RhdGljIGJvb2wgbXRrX2RzaV9jbGtfaHNfc3RhdGUoc3RydWN0IG10a19kc2kgKmRz aSkKIHsKIAl1MzIgdG1wX3JlZzE7CiAKQEAgLTI4MywxNSArMjgwLDE1IEBAIHN0YXRpYyBib29s IGRzaV9jbGtfaHNfc3RhdGUoc3RydWN0IG10a19kc2kgKmRzaSkKIAlyZXR1cm4gKCh0bXBfcmVn MSAmIExDX0hTX1RYX0VOKSA9PSAxKSA/IHRydWUgOiBmYWxzZTsKIH0KIAotc3RhdGljIHZvaWQg ZHNpX2Nsa19oc19tb2RlKHN0cnVjdCBtdGtfZHNpICpkc2ksIGJvb2wgZW50ZXIpCitzdGF0aWMg dm9pZCBtdGtfZHNpX2Nsa19oc19tb2RlKHN0cnVjdCBtdGtfZHNpICpkc2ksIGJvb2wgZW50ZXIp CiB7Ci0JaWYgKGVudGVyICYmICFkc2lfY2xrX2hzX3N0YXRlKGRzaSkpCisJaWYgKGVudGVyICYm ICFtdGtfZHNpX2Nsa19oc19zdGF0ZShkc2kpKQogCQltdGtfZHNpX21hc2soZHNpLCBEU0lfUEhZ X0xDQ09OLCBMQ19IU19UWF9FTiwgTENfSFNfVFhfRU4pOwotCWVsc2UgaWYgKCFlbnRlciAmJiBk c2lfY2xrX2hzX3N0YXRlKGRzaSkpCisJZWxzZSBpZiAoIWVudGVyICYmIG10a19kc2lfY2xrX2hz X3N0YXRlKGRzaSkpCiAJCW10a19kc2lfbWFzayhkc2ksIERTSV9QSFlfTENDT04sIExDX0hTX1RY X0VOLCAwKTsKIH0KIAotc3RhdGljIHZvaWQgZHNpX3NldF9tb2RlKHN0cnVjdCBtdGtfZHNpICpk c2kpCitzdGF0aWMgdm9pZCBtdGtfZHNpX3NldF9tb2RlKHN0cnVjdCBtdGtfZHNpICpkc2kpCiB7 CiAJdTMyIHZpZF9tb2RlID0gQ01EX01PREU7CiAKQEAgLTMwNiw3ICszMDMsNyBAQCBzdGF0aWMg dm9pZCBkc2lfc2V0X21vZGUoc3RydWN0IG10a19kc2kgKmRzaSkKIAl3cml0ZWwodmlkX21vZGUs IGRzaS0+cmVncyArIERTSV9NT0RFX0NUUkwpOwogfQogCi1zdGF0aWMgdm9pZCBkc2lfcHNfY29u dHJvbF92YWN0KHN0cnVjdCBtdGtfZHNpICpkc2kpCitzdGF0aWMgdm9pZCBtdGtfZHNpX3BzX2Nv bnRyb2xfdmFjdChzdHJ1Y3QgbXRrX2RzaSAqZHNpKQogewogCXN0cnVjdCB2aWRlb21vZGUgKnZt ID0gJmRzaS0+dm07CiAJdTMyIGRzaV9idWZfYnBwLCBwc193YzsKQEAgLTM0MCw3ICszMzcsNyBA QCBzdGF0aWMgdm9pZCBkc2lfcHNfY29udHJvbF92YWN0KHN0cnVjdCBtdGtfZHNpICpkc2kpCiAJ d3JpdGVsKHBzX3djLCBkc2ktPnJlZ3MgKyBEU0lfSFNUWF9DS0xfV0MpOwogfQogCi1zdGF0aWMg dm9pZCBkc2lfcnh0eF9jb250cm9sKHN0cnVjdCBtdGtfZHNpICpkc2kpCitzdGF0aWMgdm9pZCBt dGtfZHNpX3J4dHhfY29udHJvbChzdHJ1Y3QgbXRrX2RzaSAqZHNpKQogewogCXUzMiB0bXBfcmVn OwogCkBAIC0zNjUsOSArMzYyLDkgQEAgc3RhdGljIHZvaWQgZHNpX3J4dHhfY29udHJvbChzdHJ1 Y3QgbXRrX2RzaSAqZHNpKQogCXdyaXRlbCh0bXBfcmVnLCBkc2ktPnJlZ3MgKyBEU0lfVFhSWF9D VFJMKTsKIH0KIAotc3RhdGljIHZvaWQgZHNpX3BzX2NvbnRyb2woc3RydWN0IG10a19kc2kgKmRz aSkKK3N0YXRpYyB2b2lkIG10a19kc2lfcHNfY29udHJvbChzdHJ1Y3QgbXRrX2RzaSAqZHNpKQog ewotCXVuc2lnbmVkIGludCBkc2lfdG1wX2J1Zl9icHA7CisJdTMyIGRzaV90bXBfYnVmX2JwcDsK IAl1MzIgdG1wX3JlZzsKIAogCXN3aXRjaCAoZHNpLT5mb3JtYXQpIHsKQEAgLTM5NywxMiArMzk0 LDEyIEBAIHN0YXRpYyB2b2lkIGRzaV9wc19jb250cm9sKHN0cnVjdCBtdGtfZHNpICpkc2kpCiAJ d3JpdGVsKHRtcF9yZWcsIGRzaS0+cmVncyArIERTSV9QU0NUUkwpOwogfQogCi1zdGF0aWMgdm9p ZCBkc2lfY29uZmlnX3Zkb190aW1pbmcoc3RydWN0IG10a19kc2kgKmRzaSkKK3N0YXRpYyB2b2lk IG10a19kc2lfY29uZmlnX3Zkb190aW1pbmcoc3RydWN0IG10a19kc2kgKmRzaSkKIHsKLQl1bnNp Z25lZCBpbnQgaG9yaXpvbnRhbF9zeW5jX2FjdGl2ZV9ieXRlOwotCXVuc2lnbmVkIGludCBob3Jp em9udGFsX2JhY2twb3JjaF9ieXRlOwotCXVuc2lnbmVkIGludCBob3Jpem9udGFsX2Zyb250cG9y Y2hfYnl0ZTsKLQl1bnNpZ25lZCBpbnQgZHNpX3RtcF9idWZfYnBwOworCXUzMiBob3Jpem9udGFs X3N5bmNfYWN0aXZlX2J5dGU7CisJdTMyIGhvcml6b250YWxfYmFja3BvcmNoX2J5dGU7CisJdTMy IGhvcml6b250YWxfZnJvbnRwb3JjaF9ieXRlOworCXUzMiBkc2lfdG1wX2J1Zl9icHA7CiAKIAlz dHJ1Y3QgdmlkZW9tb2RlICp2bSA9ICZkc2ktPnZtOwogCkBAIC00MzEsNyArNDI4LDcgQEAgc3Rh dGljIHZvaWQgZHNpX2NvbmZpZ192ZG9fdGltaW5nKHN0cnVjdCBtdGtfZHNpICpkc2kpCiAJd3Jp dGVsKGhvcml6b250YWxfYmFja3BvcmNoX2J5dGUsIGRzaS0+cmVncyArIERTSV9IQlBfV0MpOwog CXdyaXRlbChob3Jpem9udGFsX2Zyb250cG9yY2hfYnl0ZSwgZHNpLT5yZWdzICsgRFNJX0hGUF9X Qyk7CiAKLQlkc2lfcHNfY29udHJvbChkc2kpOworCW10a19kc2lfcHNfY29udHJvbChkc2kpOwog fQogCiBzdGF0aWMgdm9pZCBtdGtfZHNpX3N0YXJ0KHN0cnVjdCBtdGtfZHNpICpkc2kpCkBAIC00 NDgsOCArNDQ1LDggQEAgc3RhdGljIHZvaWQgbXRrX2RzaV9wb3dlcm9mZihzdHJ1Y3QgbXRrX2Rz aSAqZHNpKQogCWlmICgtLWRzaS0+cmVmY291bnQgIT0gMCkKIAkJcmV0dXJuOwogCi0JZHNpX2xh bmUwX3VscF9tb2RlX2VudGVyKGRzaSk7Ci0JZHNpX2Nsa191bHBfbW9kZV9lbnRlcihkc2kpOwor CW10a19kc2lfbGFuZTBfdWxwX21vZGVfZW50ZXIoZHNpKTsKKwltdGtfZHNpX2Nsa191bHBfbW9k ZV9lbnRlcihkc2kpOwogCiAJbXRrX2RzaV9kaXNhYmxlKGRzaSk7CiAKQEAgLTQ3OSwxOCArNDc2 LDE4IEBAIHN0YXRpYyB2b2lkIG10a19vdXRwdXRfZHNpX2VuYWJsZShzdHJ1Y3QgbXRrX2RzaSAq ZHNpKQogCQlyZXR1cm47CiAJfQogCi0JZHNpX3J4dHhfY29udHJvbChkc2kpOworCW10a19kc2lf cnh0eF9jb250cm9sKGRzaSk7CiAKLQlkc2lfY2xrX3VscF9tb2RlX2xlYXZlKGRzaSk7Ci0JZHNp X2xhbmUwX3VscF9tb2RlX2xlYXZlKGRzaSk7Ci0JZHNpX2Nsa19oc19tb2RlKGRzaSwgMCk7Ci0J ZHNpX3NldF9tb2RlKGRzaSk7CisJbXRrX2RzaV9jbGtfdWxwX21vZGVfbGVhdmUoZHNpKTsKKwlt dGtfZHNpX2xhbmUwX3VscF9tb2RlX2xlYXZlKGRzaSk7CisJbXRrX2RzaV9jbGtfaHNfbW9kZShk c2ksIDApOworCW10a19kc2lfc2V0X21vZGUoZHNpKTsKIAotCWRzaV9wc19jb250cm9sX3ZhY3Qo ZHNpKTsKLQlkc2lfY29uZmlnX3Zkb190aW1pbmcoZHNpKTsKKwltdGtfZHNpX3BzX2NvbnRyb2xf dmFjdChkc2kpOworCW10a19kc2lfY29uZmlnX3Zkb190aW1pbmcoZHNpKTsKIAotCWRzaV9zZXRf bW9kZShkc2kpOwotCWRzaV9jbGtfaHNfbW9kZShkc2ksIDEpOworCW10a19kc2lfc2V0X21vZGUo ZHNpKTsKKwltdGtfZHNpX2Nsa19oc19tb2RlKGRzaSwgMSk7CiAKIAltdGtfZHNpX3N0YXJ0KGRz aSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfbWlwaV90eC5j IGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19taXBpX3R4LmMKaW5kZXggYzRhMDE2NS4u ZmQ4NDkxNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19taXBpX3R4 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19taXBpX3R4LmMKQEAgLTEzNCw3 ICsxMzQsNyBAQCBzdHJ1Y3QgbXRrX21pcGl0eF9kYXRhIHsKIHN0cnVjdCBtdGtfbWlwaV90eCB7 CiAJc3RydWN0IGRldmljZSAqZGV2OwogCXZvaWQgX19pb21lbSAqcmVnczsKLQl1bnNpZ25lZCBp bnQgZGF0YV9yYXRlOworCXUzMiBkYXRhX3JhdGU7CiAJY29uc3Qgc3RydWN0IG10a19taXBpdHhf ZGF0YSAqZHJpdmVyX2RhdGE7CiAJc3RydWN0IGNsa19odyBwbGxfaHc7CiAJc3RydWN0IGNsayAq cGxsOwpAQCAtMTcyLDcgKzE3Miw3IEBAIHN0YXRpYyB2b2lkIG10a19taXBpX3R4X3VwZGF0ZV9i aXRzKHN0cnVjdCBtdGtfbWlwaV90eCAqbWlwaV90eCwgdTMyIG9mZnNldCwKIHN0YXRpYyBpbnQg bXRrX21pcGlfdHhfcGxsX3ByZXBhcmUoc3RydWN0IGNsa19odyAqaHcpCiB7CiAJc3RydWN0IG10 a19taXBpX3R4ICptaXBpX3R4ID0gbXRrX21pcGlfdHhfZnJvbV9jbGtfaHcoaHcpOwotCXVuc2ln bmVkIGludCB0eGRpdiwgdHhkaXYwLCB0eGRpdjE7CisJdTggdHhkaXYsIHR4ZGl2MCwgdHhkaXYx OwogCXU2NCBwY3c7CiAKIAlkZXZfZGJnKG1pcGlfdHgtPmRldiwgInByZXBhcmU6ICV1IEh6XG4i LCBtaXBpX3R4LT5kYXRhX3JhdGUpOwpAQCAtMzI2LDcgKzMyNiw3IEBAIHN0YXRpYyB1bnNpZ25l ZCBsb25nIG10a19taXBpX3R4X3BsbF9yZWNhbGNfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywKIHN0 YXRpYyBpbnQgbXRrX21pcGlfdHhfcG93ZXJfb25fc2lnbmFsKHN0cnVjdCBwaHkgKnBoeSkKIHsK IAlzdHJ1Y3QgbXRrX21pcGlfdHggKm1pcGlfdHggPSBwaHlfZ2V0X2RydmRhdGEocGh5KTsKLQl1 bnNpZ25lZCBpbnQgcmVnOworCXUzMiByZWc7CiAKIAlmb3IgKHJlZyA9IE1JUElUWF9EU0lfQ0xP Q0tfTEFORTsKIAkgICAgIHJlZyA8PSBNSVBJVFhfRFNJX0RBVEFfTEFORTM7IHJlZyArPSA0KQpA QCAtMzU3LDcgKzM1Nyw3IEBAIHN0YXRpYyBpbnQgbXRrX21pcGlfdHhfcG93ZXJfb24oc3RydWN0 IHBoeSAqcGh5KQogc3RhdGljIHZvaWQgbXRrX21pcGlfdHhfcG93ZXJfb2ZmX3NpZ25hbChzdHJ1 Y3QgcGh5ICpwaHkpCiB7CiAJc3RydWN0IG10a19taXBpX3R4ICptaXBpX3R4ID0gcGh5X2dldF9k cnZkYXRhKHBoeSk7Ci0JdW5zaWduZWQgaW50IHJlZzsKKwl1MzIgcmVnOwogCiAJbXRrX21pcGlf dHhfc2V0X2JpdHMobWlwaV90eCwgTUlQSVRYX0RTSV9UT1BfQ09OLAogCQkJICAgICBSR19EU0lf UEFEX1RJRV9MT1dfRU4pOwotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo=