From mboxrd@z Thu Jan 1 00:00:00 1970 From: YT Shen Subject: [PATCH v6 08/10] drm/mediatek: update DSI sub driver flow Date: Thu, 4 Aug 2016 19:07:22 +0800 Message-ID: <1470308844-20895-9-git-send-email-yt.shen@mediatek.com> References: <1470308844-20895-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: <1470308844-20895-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: Mark Rutland , Russell King , Mao Huang , yingjoe.chen@mediatek.com, devicetree@vger.kernel.org, Pawel Moll , Ian Campbell , Rob Herring , 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 , Kumar Gala List-Id: devicetree@vger.kernel.org VGhpcyBwYXRjaCB1cGRhdGUgZW5hYmxlL2Rpc2FibGUgZmxvdyBvZiBEU0kgbW9kdWxlIGFuZCBN SVBJIFRYIG1vZHVsZQoKU2lnbmVkLW9mZi1ieTogc2hhb21pbmcgY2hlbiA8c2hhb21pbmcuY2hl bkBtZWRpYXRlay5jb20+ClNpZ25lZC1vZmYtYnk6IFlUIFNoZW4gPHl0LnNoZW5AbWVkaWF0ZWsu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHNpLmMgICAgIHwgIDEwMyAr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19taXBpX3R4LmMgfCAgIDMyICsrKysrLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTAyIGlu c2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5j CmluZGV4IDQ1NDFmNTkuLjMzNzMwMTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfZHNpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kc2kuYwpA QCAtOTUsNiArOTUsOCBAQAogI2RlZmluZSBEU0lfUkFDSwkJMHg4NAogI2RlZmluZSBSQUNLCQkJ CUJJVCgwKQogCisjZGVmaW5lIERTSV9NRU1fQ09OVEkJCTB4OTAKKwogI2RlZmluZSBEU0lfUEhZ X0xDQ09OCQkweDEwNAogI2RlZmluZSBMQ19IU19UWF9FTgkJCUJJVCgwKQogI2RlZmluZSBMQ19V TFBNX0VOCQkJQklUKDEpCkBAIC0xMjcsNiArMTI5LDEwIEBACiAjZGVmaW5lIENMS19IU19QT1NU CQkJKDB4ZmYgPDwgOCkKICNkZWZpbmUgQ0xLX0hTX0VYSVQJCQkoMHhmZiA8PCAxNikKIAorI2Rl ZmluZSBEU0lfVk1fQ01EX0NPTgkJMHgxMzAKKyNkZWZpbmUgVk1fQ01EX0VOCQkJQklUKDApCisj ZGVmaW5lIFRTX1ZGUF9FTgkJCUJJVCg1KQorCiAjZGVmaW5lIERTSV9DTURRMAkJMHgxODAKIAog I2RlZmluZSBOU19UT19DWUNMRShuLCBjKSAgICAoKG4pIC8gKGMpICsgKCgobikgJSAoYykpID8g MSA6IDApKQpAQCAtMjYwLDcgKzI2Niw5IEBAIHN0YXRpYyBpbnQgbXRrX2RzaV9wb3dlcm9uKHN0 cnVjdCBtdGtfZHNpICpkc2kpCiAJICogbWlwaV9yYXRpbyBpcyBtaXBpIGNsayBjb2VmZmljaWVu dCBmb3IgYmFsYW5jZSB0aGUgcGl4ZWwgY2xrIGluIG1pcGkuCiAJICogd2Ugc2V0IG1pcGlfcmF0 aW8gaXMgMS4wNS4KIAkgKi8KLQlkc2ktPmRhdGFfcmF0ZSA9IGRzaS0+dm0ucGl4ZWxjbG9jayAq IDMgKiAyMSAvICgxICogMTAwMCAqIDEwKTsKKwlkc2ktPmRhdGFfcmF0ZSA9IGRzaS0+dm0ucGl4 ZWxjbG9jayAqIDEyICogMjE7CisJZHNpLT5kYXRhX3JhdGUgLz0gKGRzaS0+bGFuZXMgKiAxMDAw ICogMTApOworCWRldl9pbmZvKGRldiwgInNldCBtaXBpdHgncyBkYXRhIHJhdGU6ICVkTUh6XG4i LCBkc2ktPmRhdGFfcmF0ZSk7CiAKIAlyZXQgPSBjbGtfc2V0X3JhdGUoZHNpLT5oc19jbGssIGRz aS0+ZGF0YV9yYXRlICogMTAwMDAwMCk7CiAJaWYgKHJldCA8IDApIHsKQEAgLTI4MiwxMCArMjkw LDYgQEAgc3RhdGljIGludCBtdGtfZHNpX3Bvd2Vyb24oc3RydWN0IG10a19kc2kgKmRzaSkKIAkJ Z290byBlcnJfZGlzYWJsZV9lbmdpbmVfY2xrOwogCX0KIAotCW10a19kc2lfZW5hYmxlKGRzaSk7 Ci0JbXRrX2RzaV9yZXNldF9lbmdpbmUoZHNpKTsKLQltdGtfZHNpX3BoeV90aW1jb25maWcoZHNp KTsKLQogCXJldHVybiAwOwogCiBlcnJfZGlzYWJsZV9lbmdpbmVfY2xrOgpAQCAtMzAwLDcgKzMw NCw3IEBAIGVycl9yZWZjb3VudDoKIHN0YXRpYyB2b2lkIG10a19kc2lfY2xrX3VscF9tb2RlX2Vu dGVyKHN0cnVjdCBtdGtfZHNpICpkc2kpCiB7CiAJbXRrX2RzaV9tYXNrKGRzaSwgRFNJX1BIWV9M Q0NPTiwgTENfSFNfVFhfRU4sIDApOwotCW10a19kc2lfbWFzayhkc2ksIERTSV9QSFlfTENDT04s IExDX1VMUE1fRU4sIDApOworCW10a19kc2lfbWFzayhkc2ksIERTSV9QSFlfTENDT04sIExDX1VM UE1fRU4sIExDX1VMUE1fRU4pOwogfQogCiBzdGF0aWMgdm9pZCBtdGtfZHNpX2Nsa191bHBfbW9k ZV9sZWF2ZShzdHJ1Y3QgbXRrX2RzaSAqZHNpKQpAQCAtMzEzLDcgKzMxNyw3IEBAIHN0YXRpYyB2 b2lkIG10a19kc2lfY2xrX3VscF9tb2RlX2xlYXZlKHN0cnVjdCBtdGtfZHNpICpkc2kpCiBzdGF0 aWMgdm9pZCBtdGtfZHNpX2xhbmUwX3VscF9tb2RlX2VudGVyKHN0cnVjdCBtdGtfZHNpICpkc2kp CiB7CiAJbXRrX2RzaV9tYXNrKGRzaSwgRFNJX1BIWV9MRDBDT04sIExEMF9IU19UWF9FTiwgMCk7 Ci0JbXRrX2RzaV9tYXNrKGRzaSwgRFNJX1BIWV9MRDBDT04sIExEMF9VTFBNX0VOLCAwKTsKKwlt dGtfZHNpX21hc2soZHNpLCBEU0lfUEhZX0xEMENPTiwgTEQwX1VMUE1fRU4sIExEMF9VTFBNX0VO KTsKIH0KIAogc3RhdGljIHZvaWQgbXRrX2RzaV9sYW5lMF91bHBfbW9kZV9sZWF2ZShzdHJ1Y3Qg bXRrX2RzaSAqZHNpKQpAQCAtMzQ5LDExICszNTMsMjEgQEAgc3RhdGljIHZvaWQgbXRrX2RzaV9z ZXRfbW9kZShzdHJ1Y3QgbXRrX2RzaSAqZHNpKQogCQlpZiAoKGRzaS0+bW9kZV9mbGFncyAmIE1J UElfRFNJX01PREVfVklERU9fQlVSU1QpICYmCiAJCSAgICAhKGRzaS0+bW9kZV9mbGFncyAmIE1J UElfRFNJX01PREVfVklERU9fU1lOQ19QVUxTRSkpCiAJCQl2aWRfbW9kZSA9IEJVUlNUX01PREU7 CisJCWVsc2UKKwkJCXZpZF9tb2RlID0gU1lOQ19FVkVOVF9NT0RFOwogCX0KIAogCXdyaXRlbCh2 aWRfbW9kZSwgZHNpLT5yZWdzICsgRFNJX01PREVfQ1RSTCk7CiB9CiAKK3N0YXRpYyB2b2lkIG10 a19kc2lfc2V0X3ZtX2NtZChzdHJ1Y3QgbXRrX2RzaSAqZHNpKQoreworCXdyaXRlbCgweDNjLCBk c2ktPnJlZ3MgKyBEU0lfTUVNX0NPTlRJKTsKKworCW10a19kc2lfbWFzayhkc2ksIERTSV9WTV9D TURfQ09OLCBWTV9DTURfRU4sIFZNX0NNRF9FTik7CisJbXRrX2RzaV9tYXNrKGRzaSwgRFNJX1ZN X0NNRF9DT04sIFRTX1ZGUF9FTiwgVFNfVkZQX0VOKTsKK30KKwogc3RhdGljIHZvaWQgbXRrX2Rz aV9wc19jb250cm9sX3ZhY3Qoc3RydWN0IG10a19kc2kgKmRzaSkKIHsKIAlzdHJ1Y3QgdmlkZW9t b2RlICp2bSA9ICZkc2ktPnZtOwpAQCAtNDEwLDYgKzQyNCw5IEBAIHN0YXRpYyB2b2lkIG10a19k c2lfcnh0eF9jb250cm9sKHN0cnVjdCBtdGtfZHNpICpkc2kpCiAJCWJyZWFrOwogCX0KIAorCXRt cF9yZWcgfD0gKGRzaS0+bW9kZV9mbGFncyAmIE1JUElfRFNJX0NMT0NLX05PTl9DT05USU5VT1VT KSA8PCA2OworCXRtcF9yZWcgfD0gKGRzaS0+bW9kZV9mbGFncyAmIE1JUElfRFNJX01PREVfRU9U X1BBQ0tFVCkgPj4gMzsKKwogCXdyaXRlbCh0bXBfcmVnLCBkc2ktPnJlZ3MgKyBEU0lfVFhSWF9D VFJMKTsKIH0KIApAQCAtNDg4LDYgKzUwNSwxNiBAQCBzdGF0aWMgdm9pZCBtdGtfZHNpX3N0YXJ0 KHN0cnVjdCBtdGtfZHNpICpkc2kpCiAJd3JpdGVsKDEsIGRzaS0+cmVncyArIERTSV9TVEFSVCk7 CiB9CiAKK3N0YXRpYyB2b2lkIG10a19kc2lfc3RvcChzdHJ1Y3QgbXRrX2RzaSAqZHNpKQorewor CXdyaXRlbCgwLCBkc2ktPnJlZ3MgKyBEU0lfU1RBUlQpOworfQorCitzdGF0aWMgdm9pZCBtdGtf ZHNpX3NldF9jbWRfbW9kZShzdHJ1Y3QgbXRrX2RzaSAqZHNpKQoreworCXdyaXRlbChDTURfTU9E RSwgZHNpLT5yZWdzICsgRFNJX01PREVfQ1RSTCk7Cit9CisKIHN0YXRpYyB2b2lkIG10a19kc2lf c2V0X2ludGVycnVwdF9lbmFibGUoc3RydWN0IG10a19kc2kgKmRzaSkKIHsKIAl1MzIgaW50ZW4g PSBEU0lfSU5UX0FMTF9CSVRTOwpAQCAtNTI1LDYgKzU1MiwyNiBAQCBzdGF0aWMgaXJxcmV0dXJu X3QgbXRrX2RzaV9pcnEoaW50IGlycSwgdm9pZCAqZGV2X2lkKQogCXJldHVybiBJUlFfSEFORExF RDsKIH0KIAorc3RhdGljIHZvaWQgbXRrX2RzaV9zd2l0Y2hfdG9fY21kX21vZGUoc3RydWN0IG10 a19kc2kgKmRzaSkKK3sKKwlzMzIgcmV0ID0gMDsKKwl1bnNpZ25lZCBsb25nIHRpbWVvdXQgPSBt c2Vjc190b19qaWZmaWVzKDUwMCk7CisKKwlkc2ktPmlycV9kYXRhICY9IH5WTV9ET05FX0lOVF9G TEFHOworCisJbXRrX2RzaV9zZXRfY21kX21vZGUoZHNpKTsKKworCXJldCA9IHdhaXRfZXZlbnRf aW50ZXJydXB0aWJsZV90aW1lb3V0KF9kc2lfaXJxX3dhaXRfcXVldWUsCisJCQkJCSAgICAgICBk c2ktPmlycV9kYXRhICYgVk1fRE9ORV9JTlRfRkxBRywKKwkJCQkJICAgICAgIHRpbWVvdXQpOwor CWlmIChyZXQgPT0gMCkgeworCQlkZXZfaW5mbyhkc2ktPmRldiwgImRzaSB3YWl0IGVuZ2luZSBp ZGxlIHRpbWVvdXRcbiIpOworCisJCW10a19kc2lfZW5hYmxlKGRzaSk7CisJCW10a19kc2lfcmVz ZXRfZW5naW5lKGRzaSk7CisJfQorfQorCiBzdGF0aWMgdm9pZCBtdGtfZHNpX3Bvd2Vyb2ZmKHN0 cnVjdCBtdGtfZHNpICpkc2kpCiB7CiAJaWYgKFdBUk5fT04oZHNpLT5yZWZjb3VudCA9PSAwKSkK QEAgLTUzMyw2ICs1ODAsMTcgQEAgc3RhdGljIHZvaWQgbXRrX2RzaV9wb3dlcm9mZihzdHJ1Y3Qg bXRrX2RzaSAqZHNpKQogCWlmICgtLWRzaS0+cmVmY291bnQgIT0gMCkKIAkJcmV0dXJuOwogCisJ bXRrX2RzaV9zd2l0Y2hfdG9fY21kX21vZGUoZHNpKTsKKworCWlmIChkc2ktPnBhbmVsKSB7CisJ CWlmIChkcm1fcGFuZWxfdW5wcmVwYXJlKGRzaS0+cGFuZWwpKSB7CisJCQlEUk1fRVJST1IoImZh aWxlZCB0byB1bnByZXBhcmUgdGhlIHBhbmVsXG4iKTsKKwkJCXJldHVybjsKKwkJfQorCX0KKwor CW10a19kc2lfcmVzZXRfZW5naW5lKGRzaSk7CisKIAltdGtfZHNpX2xhbmUwX3VscF9tb2RlX2Vu dGVyKGRzaSk7CiAJbXRrX2RzaV9jbGtfdWxwX21vZGVfZW50ZXIoZHNpKTsKIApAQCAtNTUxLDI5 ICs2MDksMzcgQEAgc3RhdGljIHZvaWQgbXRrX291dHB1dF9kc2lfZW5hYmxlKHN0cnVjdCBtdGtf ZHNpICpkc2kpCiAJaWYgKGRzaS0+ZW5hYmxlZCkKIAkJcmV0dXJuOwogCi0JaWYgKGRzaS0+cGFu ZWwpIHsKLQkJaWYgKGRybV9wYW5lbF9wcmVwYXJlKGRzaS0+cGFuZWwpKSB7Ci0JCQlEUk1fRVJS T1IoImZhaWxlZCB0byBzZXR1cCB0aGUgcGFuZWxcbiIpOwotCQkJcmV0dXJuOwotCQl9Ci0JfQot CiAJcmV0ID0gbXRrX2RzaV9wb3dlcm9uKGRzaSk7CiAJaWYgKHJldCA8IDApIHsKIAkJRFJNX0VS Uk9SKCJmYWlsZWQgdG8gcG93ZXIgb24gZHNpXG4iKTsKIAkJcmV0dXJuOwogCX0KIAorCXVzbGVl cF9yYW5nZSgyMDAwMCwgMjEwMDApOworCiAJbXRrX2RzaV9yeHR4X2NvbnRyb2woZHNpKTsKKwlt dGtfZHNpX3BoeV90aW1jb25maWcoZHNpKTsKKwltdGtfZHNpX3BzX2NvbnRyb2xfdmFjdChkc2kp OworCW10a19kc2lfc2V0X3ZtX2NtZChkc2kpOworCW10a19kc2lfY29uZmlnX3Zkb190aW1pbmco ZHNpKTsKKwltdGtfZHNpX3NldF9pbnRlcnJ1cHRfZW5hYmxlKGRzaSk7CiAKKwltdGtfZHNpX2Vu YWJsZShkc2kpOwogCW10a19kc2lfY2xrX3VscF9tb2RlX2xlYXZlKGRzaSk7CiAJbXRrX2RzaV9s YW5lMF91bHBfbW9kZV9sZWF2ZShkc2kpOwogCW10a19kc2lfY2xrX2hzX21vZGUoZHNpLCAwKTsK LQltdGtfZHNpX3NldF9tb2RlKGRzaSk7CiAKLQltdGtfZHNpX3BzX2NvbnRyb2xfdmFjdChkc2kp OwotCW10a19kc2lfY29uZmlnX3Zkb190aW1pbmcoZHNpKTsKLQltdGtfZHNpX3NldF9pbnRlcnJ1 cHRfZW5hYmxlKGRzaSk7CisJaWYgKGRzaS0+cGFuZWwpIHsKKwkJaWYgKGRybV9wYW5lbF9wcmVw YXJlKGRzaS0+cGFuZWwpKSB7CisJCQlEUk1fRVJST1IoImZhaWxlZCB0byBwcmVwYXJlIHRoZSBw YW5lbFxuIik7CisJCQlyZXR1cm47CisJCX0KKworCQlpZiAoZHJtX3BhbmVsX2VuYWJsZShkc2kt PnBhbmVsKSkgeworCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gZW5hYmxlIHRoZSBwYW5lbFxuIik7 CisJCQlyZXR1cm47CisJCX0KKwl9CiAKIAltdGtfZHNpX3NldF9tb2RlKGRzaSk7CiAJbXRrX2Rz aV9jbGtfaHNfbW9kZShkc2ksIDEpOwpAQCAtNTk1LDYgKzY2MSw3IEBAIHN0YXRpYyB2b2lkIG10 a19vdXRwdXRfZHNpX2Rpc2FibGUoc3RydWN0IG10a19kc2kgKmRzaSkKIAkJfQogCX0KIAorCW10 a19kc2lfc3RvcChkc2kpOwogCW10a19kc2lfcG93ZXJvZmYoZHNpKTsKIAogCWRzaS0+ZW5hYmxl ZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19taXBp X3R4LmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX21pcGlfdHguYwppbmRleCAxOTQ4 MWM3Li4wNjY2ZjE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX21p cGlfdHguYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX21pcGlfdHguYwpAQCAt MTY4LDcgKzE2OCw5IEBAIHN0YXRpYyBpbnQgbXRrX21pcGlfdHhfcGxsX3ByZXBhcmUoc3RydWN0 IGNsa19odyAqaHcpCiAKIAlkZXZfZGJnKG1pcGlfdHgtPmRldiwgInByZXBhcmU6ICV1IEh6XG4i LCBtaXBpX3R4LT5kYXRhX3JhdGUpOwogCi0JaWYgKG1pcGlfdHgtPmRhdGFfcmF0ZSA+PSA1MDAw MDAwMDApIHsKKwlpZiAobWlwaV90eC0+ZGF0YV9yYXRlID4gMTI1MDAwMDAwMCkgeworCQlyZXR1 cm4gLUVJTlZBTDsKKwl9IGVsc2UgaWYgKG1pcGlfdHgtPmRhdGFfcmF0ZSA+PSA1MDAwMDAwMDAp IHsKIAkJdHhkaXYgPSAxOwogCQl0eGRpdjAgPSAwOwogCQl0eGRpdjEgPSAwOwpAQCAtMTkyLDYg KzE5NCwxMCBAQCBzdGF0aWMgaW50IG10a19taXBpX3R4X3BsbF9wcmVwYXJlKHN0cnVjdCBjbGtf aHcgKmh3KQogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKKwltdGtfbWlwaV90eF91cGRhdGVfYml0 cyhtaXBpX3R4LCBNSVBJVFhfRFNJX1RPUF9DT04sCisJCQkJUkdfRFNJX0xOVF9JTVBfQ0FMX0NP REUgfCBSR19EU0lfTE5UX0hTX0JJQVNfRU4sCisJCQkJKDggPDwgNCkgfCBSR19EU0lfTE5UX0hT X0JJQVNfRU4pOworCiAJbXRrX21pcGlfdHhfdXBkYXRlX2JpdHMobWlwaV90eCwgTUlQSVRYX0RT SV9CR19DT04sCiAJCQkJUkdfRFNJX1ZPVVRfTVNLIHwKIAkJCQlSR19EU0lfQkdfQ0tFTiB8IFJH X0RTSV9CR19DT1JFX0VOLApAQCAtMjAxLDI0ICsyMDcsMTggQEAgc3RhdGljIGludCBtdGtfbWlw aV90eF9wbGxfcHJlcGFyZShzdHJ1Y3QgY2xrX2h3ICpodykKIAogCXVzbGVlcF9yYW5nZSgzMCwg MTAwKTsKIAotCW10a19taXBpX3R4X3VwZGF0ZV9iaXRzKG1pcGlfdHgsIE1JUElUWF9EU0lfVE9Q X0NPTiwKLQkJCQlSR19EU0lfTE5UX0lNUF9DQUxfQ09ERSB8IFJHX0RTSV9MTlRfSFNfQklBU19F TiwKLQkJCQkoOCA8PCA0KSB8IFJHX0RTSV9MTlRfSFNfQklBU19FTik7Ci0KLQltdGtfbWlwaV90 eF9zZXRfYml0cyhtaXBpX3R4LCBNSVBJVFhfRFNJX0NPTiwKLQkJCSAgICAgUkdfRFNJX0NLR19M RE9PVVRfRU4gfCBSR19EU0lfTERPQ09SRV9FTik7CisJbXRrX21pcGlfdHhfdXBkYXRlX2JpdHMo bWlwaV90eCwgTUlQSVRYX0RTSV9DT04sCisJCQkJUkdfRFNJX0NLR19MRE9PVVRfRU4gfCBSR19E U0lfTERPQ09SRV9FTiwKKwkJCQlSR19EU0lfQ0tHX0xET09VVF9FTiB8IFJHX0RTSV9MRE9DT1JF X0VOKTsKIAogCW10a19taXBpX3R4X3VwZGF0ZV9iaXRzKG1pcGlfdHgsIE1JUElUWF9EU0lfUExM X1BXUiwKIAkJCQlSR19EU0lfTVBQTExfU0RNX1BXUl9PTiB8CiAJCQkJUkdfRFNJX01QUExMX1NE TV9JU09fRU4sCiAJCQkJUkdfRFNJX01QUExMX1NETV9QV1JfT04pOwogCi0JbXRrX21pcGlfdHhf Y2xlYXJfYml0cyhtaXBpX3R4LCBNSVBJVFhfRFNJX1BMTF9DT04wLAotCQkJICAgICAgIFJHX0RT SV9NUFBMTF9QTExfRU4pOwotCiAJbXRrX21pcGlfdHhfdXBkYXRlX2JpdHMobWlwaV90eCwgTUlQ SVRYX0RTSV9QTExfQ09OMCwKLQkJCQlSR19EU0lfTVBQTExfVFhESVYwIHwgUkdfRFNJX01QUExM X1RYRElWMSB8Ci0JCQkJUkdfRFNJX01QUExMX1BSRURJViwKKwkJCQlSR19EU0lfTVBQTExfUFJF RElWIHwgUkdfRFNJX01QUExMX1RYRElWMCB8CisJCQkJUkdfRFNJX01QUExMX1RYRElWMSB8IFJH X0RTSV9NUFBMTF9QT1NESVYsCiAJCQkJKHR4ZGl2MCA8PCAzKSB8ICh0eGRpdjEgPDwgNSkpOwog CiAJLyoKQEAgLTIzMywxMCArMjMzLDEyIEBAIHN0YXRpYyBpbnQgbXRrX21pcGlfdHhfcGxsX3By ZXBhcmUoc3RydWN0IGNsa19odyAqaHcpCiAJCSAgICAgIDI2MDAwMDAwKTsKIAl3cml0ZWwocGN3 LCBtaXBpX3R4LT5yZWdzICsgTUlQSVRYX0RTSV9QTExfQ09OMik7CiAKLQltdGtfbWlwaV90eF9z ZXRfYml0cyhtaXBpX3R4LCBNSVBJVFhfRFNJX1BMTF9DT04xLAotCQkJICAgICBSR19EU0lfTVBQ TExfU0RNX0ZSQV9FTik7CisJbXRrX21pcGlfdHhfdXBkYXRlX2JpdHMobWlwaV90eCwgTUlQSVRY X0RTSV9QTExfQ09OMSwKKwkJCQlSR19EU0lfTVBQTExfU0RNX0ZSQV9FTiwKKwkJCQlSR19EU0lf TVBQTExfU0RNX0ZSQV9FTik7CiAKLQltdGtfbWlwaV90eF9zZXRfYml0cyhtaXBpX3R4LCBNSVBJ VFhfRFNJX1BMTF9DT04wLCBSR19EU0lfTVBQTExfUExMX0VOKTsKKwltdGtfbWlwaV90eF91cGRh dGVfYml0cyhtaXBpX3R4LCBNSVBJVFhfRFNJX1BMTF9DT04wLAorCQkJCVJHX0RTSV9NUFBMTF9Q TExfRU4sIFJHX0RTSV9NUFBMTF9QTExfRU4pOwogCiAJdXNsZWVwX3JhbmdlKDIwLCAxMDApOwog Ci0tIAoxLjcuOS41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWwK