From mboxrd@z Thu Jan 1 00:00:00 1970 From: CK Hu Subject: Re: [PATCH v11 07/12] drm/mediatek: cleaning up and refine Date: Wed, 18 Jan 2017 13:55:32 +0800 Message-ID: <1484718932.26941.1.camel@mtksdaap41> References: <1484117473-46644-1-git-send-email-yt.shen@mediatek.com> <1484117473-46644-8-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: <1484117473-46644-8-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: YT Shen Cc: Mark Rutland , devicetree@vger.kernel.org, srv_heupstream@mediatek.com, emil.l.velikov@gmail.com, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Rob Herring , linux-mediatek@lists.infradead.org, Matthias Brugger , yingjoe.chen@mediatek.com, shaoming chen , linux-arm-kernel@lists.infradead.org List-Id: devicetree@vger.kernel.org SGksIFlUOgoKT24gV2VkLCAyMDE3LTAxLTExIGF0IDE0OjUxICswODAwLCBZVCBTaGVuIHdyb3Rl Ogo+IGNsZWFuaW5nIHVwIHVudXNlZCBkZWZpbmUgYW5kIHJlZmluZSBmdW5jdGlvbiBuYW1lIGFu ZCB2YXJpYWJsZQo+IAo+IFNpZ25lZC1vZmYtYnk6IHNoYW9taW5nIGNoZW4gPHNoYW9taW5nLmNo ZW5AbWVkaWF0ZWsuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFlUIFNoZW4gPHl0LnNoZW5AbWVkaWF0 ZWsuY29tPgoKQWNrZWQtYnk6IENLIEh1IDxjay5odUBtZWRpYXRlay5jb20+Cgo+IC0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5jICAgICB8IDczICsrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19taXBp X3R4LmMgfCAgOCArKy0tCj4gIDIgZmlsZXMgY2hhbmdlZCwgMzkgaW5zZXJ0aW9ucygrKSwgNDIg ZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9t dGtfZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5jCj4gaW5kZXggMmM0 MmY5MC4uNmY0YjNiYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRr X2RzaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kc2kuYwo+IEBAIC0y Nyw5ICsyNyw2IEBACj4gIAo+ICAjaW5jbHVkZSAibXRrX2RybV9kZHBfY29tcC5oIgo+ICAKPiAt I2RlZmluZSBEU0lfVklERU9fRklGT19ERVBUSAkoMTkyMCAvIDQpCj4gLSNkZWZpbmUgRFNJX0hP U1RfRklGT19ERVBUSAk2NAo+IC0KPiAgI2RlZmluZSBEU0lfU1RBUlQJCTB4MDAKPiAgCj4gICNk ZWZpbmUgRFNJX0NPTl9DVFJMCQkweDEwCj4gQEAgLTQ2LDcgKzQzLDcgQEAKPiAgI2RlZmluZSBN SVhfTU9ERQkJCUJJVCgxNykKPiAgCj4gICNkZWZpbmUgRFNJX1RYUlhfQ1RSTAkJMHgxOAo+IC0j ZGVmaW5lIFZDX05VTQkJCQkoMiA8PCAwKQo+ICsjZGVmaW5lIFZDX05VTQkJCQlCSVQoMSkKPiAg I2RlZmluZSBMQU5FX05VTQkJCSgweGYgPDwgMikKPiAgI2RlZmluZSBESVNfRU9UCQkJCUJJVCg2 KQo+ICAjZGVmaW5lIE5VTExfRU4JCQkJQklUKDcpCj4gQEAgLTE2NCw3ICsxNjEsNyBAQCBzdGF0 aWMgdm9pZCBtdGtfZHNpX21hc2soc3RydWN0IG10a19kc2kgKmRzaSwgdTMyIG9mZnNldCwgdTMy IG1hc2ssIHUzMiBkYXRhKQo+ICAJd3JpdGVsKCh0ZW1wICYgfm1hc2spIHwgKGRhdGEgJiBtYXNr KSwgZHNpLT5yZWdzICsgb2Zmc2V0KTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgZHNpX3BoeV90 aW1jb25maWcoc3RydWN0IG10a19kc2kgKmRzaSkKPiArc3RhdGljIHZvaWQgbXRrX2RzaV9waHlf dGltY29uZmlnKHN0cnVjdCBtdGtfZHNpICpkc2kpCj4gIHsKPiAgCXUzMiB0aW1jb24wLCB0aW1j b24xLCB0aW1jb24yLCB0aW1jb24zOwo+ICAJdTMyIHVpLCBjeWNsZV90aW1lOwo+IEBAIC0xOTYs NyArMTkzLDcgQEAgc3RhdGljIHZvaWQgbXRrX2RzaV9kaXNhYmxlKHN0cnVjdCBtdGtfZHNpICpk c2kpCj4gIAltdGtfZHNpX21hc2soZHNpLCBEU0lfQ09OX0NUUkwsIERTSV9FTiwgMCk7Cj4gIH0K PiAgCj4gLXN0YXRpYyB2b2lkIG10a19kc2lfcmVzZXQoc3RydWN0IG10a19kc2kgKmRzaSkKPiAr c3RhdGljIHZvaWQgbXRrX2RzaV9yZXNldF9lbmdpbmUoc3RydWN0IG10a19kc2kgKmRzaSkKPiAg ewo+ICAJbXRrX2RzaV9tYXNrKGRzaSwgRFNJX0NPTl9DVFJMLCBEU0lfUkVTRVQsIERTSV9SRVNF VCk7Cj4gIAltdGtfZHNpX21hc2soZHNpLCBEU0lfQ09OX0NUUkwsIERTSV9SRVNFVCwgMCk7Cj4g QEAgLTI2Nyw4ICsyNjQsOCBAQCBzdGF0aWMgaW50IG10a19kc2lfcG93ZXJvbihzdHJ1Y3QgbXRr X2RzaSAqZHNpKQo+ICAJfQo+ICAKPiAgCW10a19kc2lfZW5hYmxlKGRzaSk7Cj4gLQltdGtfZHNp X3Jlc2V0KGRzaSk7Cj4gLQlkc2lfcGh5X3RpbWNvbmZpZyhkc2kpOwo+ICsJbXRrX2RzaV9yZXNl dF9lbmdpbmUoZHNpKTsKPiArCW10a19kc2lfcGh5X3RpbWNvbmZpZyhkc2kpOwo+ICAKPiAgCXJl dHVybiAwOwo+ICAKPiBAQCAtMjgxLDMzICsyNzgsMzMgQEAgc3RhdGljIGludCBtdGtfZHNpX3Bv d2Vyb24oc3RydWN0IG10a19kc2kgKmRzaSkKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gLXN0 YXRpYyB2b2lkIGRzaV9jbGtfdWxwX21vZGVfZW50ZXIoc3RydWN0IG10a19kc2kgKmRzaSkKPiAr c3RhdGljIHZvaWQgbXRrX2RzaV9jbGtfdWxwX21vZGVfZW50ZXIoc3RydWN0IG10a19kc2kgKmRz aSkKPiAgewo+ICAJbXRrX2RzaV9tYXNrKGRzaSwgRFNJX1BIWV9MQ0NPTiwgTENfSFNfVFhfRU4s IDApOwo+ICAJbXRrX2RzaV9tYXNrKGRzaSwgRFNJX1BIWV9MQ0NPTiwgTENfVUxQTV9FTiwgMCk7 Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGRzaV9jbGtfdWxwX21vZGVfbGVhdmUoc3RydWN0IG10 a19kc2kgKmRzaSkKPiArc3RhdGljIHZvaWQgbXRrX2RzaV9jbGtfdWxwX21vZGVfbGVhdmUoc3Ry dWN0IG10a19kc2kgKmRzaSkKPiAgewo+ICAJbXRrX2RzaV9tYXNrKGRzaSwgRFNJX1BIWV9MQ0NP TiwgTENfVUxQTV9FTiwgMCk7Cj4gIAltdGtfZHNpX21hc2soZHNpLCBEU0lfUEhZX0xDQ09OLCBM Q19XQUtFVVBfRU4sIExDX1dBS0VVUF9FTik7Cj4gIAltdGtfZHNpX21hc2soZHNpLCBEU0lfUEhZ X0xDQ09OLCBMQ19XQUtFVVBfRU4sIDApOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBkc2lfbGFu ZTBfdWxwX21vZGVfZW50ZXIoc3RydWN0IG10a19kc2kgKmRzaSkKPiArc3RhdGljIHZvaWQgbXRr X2RzaV9sYW5lMF91bHBfbW9kZV9lbnRlcihzdHJ1Y3QgbXRrX2RzaSAqZHNpKQo+ICB7Cj4gIAlt dGtfZHNpX21hc2soZHNpLCBEU0lfUEhZX0xEMENPTiwgTEQwX0hTX1RYX0VOLCAwKTsKPiAgCW10 a19kc2lfbWFzayhkc2ksIERTSV9QSFlfTEQwQ09OLCBMRDBfVUxQTV9FTiwgMCk7Cj4gIH0KPiAg Cj4gLXN0YXRpYyB2b2lkIGRzaV9sYW5lMF91bHBfbW9kZV9sZWF2ZShzdHJ1Y3QgbXRrX2RzaSAq ZHNpKQo+ICtzdGF0aWMgdm9pZCBtdGtfZHNpX2xhbmUwX3VscF9tb2RlX2xlYXZlKHN0cnVjdCBt dGtfZHNpICpkc2kpCj4gIHsKPiAgCW10a19kc2lfbWFzayhkc2ksIERTSV9QSFlfTEQwQ09OLCBM RDBfVUxQTV9FTiwgMCk7Cj4gIAltdGtfZHNpX21hc2soZHNpLCBEU0lfUEhZX0xEMENPTiwgTEQw X1dBS0VVUF9FTiwgTEQwX1dBS0VVUF9FTik7Cj4gIAltdGtfZHNpX21hc2soZHNpLCBEU0lfUEhZ X0xEMENPTiwgTEQwX1dBS0VVUF9FTiwgMCk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBib29sIGRzaV9j bGtfaHNfc3RhdGUoc3RydWN0IG10a19kc2kgKmRzaSkKPiArc3RhdGljIGJvb2wgbXRrX2RzaV9j bGtfaHNfc3RhdGUoc3RydWN0IG10a19kc2kgKmRzaSkKPiAgewo+ICAJdTMyIHRtcF9yZWcxOwo+ ICAKPiBAQCAtMzE1LDE1ICszMTIsMTUgQEAgc3RhdGljIGJvb2wgZHNpX2Nsa19oc19zdGF0ZShz dHJ1Y3QgbXRrX2RzaSAqZHNpKQo+ICAJcmV0dXJuICgodG1wX3JlZzEgJiBMQ19IU19UWF9FTikg PT0gMSkgPyB0cnVlIDogZmFsc2U7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGRzaV9jbGtfaHNf bW9kZShzdHJ1Y3QgbXRrX2RzaSAqZHNpLCBib29sIGVudGVyKQo+ICtzdGF0aWMgdm9pZCBtdGtf ZHNpX2Nsa19oc19tb2RlKHN0cnVjdCBtdGtfZHNpICpkc2ksIGJvb2wgZW50ZXIpCj4gIHsKPiAt CWlmIChlbnRlciAmJiAhZHNpX2Nsa19oc19zdGF0ZShkc2kpKQo+ICsJaWYgKGVudGVyICYmICFt dGtfZHNpX2Nsa19oc19zdGF0ZShkc2kpKQo+ICAJCW10a19kc2lfbWFzayhkc2ksIERTSV9QSFlf TENDT04sIExDX0hTX1RYX0VOLCBMQ19IU19UWF9FTik7Cj4gLQllbHNlIGlmICghZW50ZXIgJiYg ZHNpX2Nsa19oc19zdGF0ZShkc2kpKQo+ICsJZWxzZSBpZiAoIWVudGVyICYmIG10a19kc2lfY2xr X2hzX3N0YXRlKGRzaSkpCj4gIAkJbXRrX2RzaV9tYXNrKGRzaSwgRFNJX1BIWV9MQ0NPTiwgTENf SFNfVFhfRU4sIDApOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBkc2lfc2V0X21vZGUoc3RydWN0 IG10a19kc2kgKmRzaSkKPiArc3RhdGljIHZvaWQgbXRrX2RzaV9zZXRfbW9kZShzdHJ1Y3QgbXRr X2RzaSAqZHNpKQo+ICB7Cj4gIAl1MzIgdmlkX21vZGUgPSBDTURfTU9ERTsKPiAgCj4gQEAgLTMz OCw3ICszMzUsNyBAQCBzdGF0aWMgdm9pZCBkc2lfc2V0X21vZGUoc3RydWN0IG10a19kc2kgKmRz aSkKPiAgCXdyaXRlbCh2aWRfbW9kZSwgZHNpLT5yZWdzICsgRFNJX01PREVfQ1RSTCk7Cj4gIH0K PiAgCj4gLXN0YXRpYyB2b2lkIGRzaV9wc19jb250cm9sX3ZhY3Qoc3RydWN0IG10a19kc2kgKmRz aSkKPiArc3RhdGljIHZvaWQgbXRrX2RzaV9wc19jb250cm9sX3ZhY3Qoc3RydWN0IG10a19kc2kg KmRzaSkKPiAgewo+ICAJc3RydWN0IHZpZGVvbW9kZSAqdm0gPSAmZHNpLT52bTsKPiAgCXUzMiBk c2lfYnVmX2JwcCwgcHNfd2M7Cj4gQEAgLTM3Miw3ICszNjksNyBAQCBzdGF0aWMgdm9pZCBkc2lf cHNfY29udHJvbF92YWN0KHN0cnVjdCBtdGtfZHNpICpkc2kpCj4gIAl3cml0ZWwocHNfd2MsIGRz aS0+cmVncyArIERTSV9IU1RYX0NLTF9XQyk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGRzaV9y eHR4X2NvbnRyb2woc3RydWN0IG10a19kc2kgKmRzaSkKPiArc3RhdGljIHZvaWQgbXRrX2RzaV9y eHR4X2NvbnRyb2woc3RydWN0IG10a19kc2kgKmRzaSkKPiAgewo+ICAJdTMyIHRtcF9yZWc7Cj4g IAo+IEBAIC0zOTcsOSArMzk0LDkgQEAgc3RhdGljIHZvaWQgZHNpX3J4dHhfY29udHJvbChzdHJ1 Y3QgbXRrX2RzaSAqZHNpKQo+ICAJd3JpdGVsKHRtcF9yZWcsIGRzaS0+cmVncyArIERTSV9UWFJY X0NUUkwpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBkc2lfcHNfY29udHJvbChzdHJ1Y3QgbXRr X2RzaSAqZHNpKQo+ICtzdGF0aWMgdm9pZCBtdGtfZHNpX3BzX2NvbnRyb2woc3RydWN0IG10a19k c2kgKmRzaSkKPiAgewo+IC0JdW5zaWduZWQgaW50IGRzaV90bXBfYnVmX2JwcDsKPiArCXUzMiBk c2lfdG1wX2J1Zl9icHA7Cj4gIAl1MzIgdG1wX3JlZzsKPiAgCj4gIAlzd2l0Y2ggKGRzaS0+Zm9y bWF0KSB7Cj4gQEAgLTQyOSwxMiArNDI2LDEyIEBAIHN0YXRpYyB2b2lkIGRzaV9wc19jb250cm9s KHN0cnVjdCBtdGtfZHNpICpkc2kpCj4gIAl3cml0ZWwodG1wX3JlZywgZHNpLT5yZWdzICsgRFNJ X1BTQ1RSTCk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGRzaV9jb25maWdfdmRvX3RpbWluZyhz dHJ1Y3QgbXRrX2RzaSAqZHNpKQo+ICtzdGF0aWMgdm9pZCBtdGtfZHNpX2NvbmZpZ192ZG9fdGlt aW5nKHN0cnVjdCBtdGtfZHNpICpkc2kpCj4gIHsKPiAtCXVuc2lnbmVkIGludCBob3Jpem9udGFs X3N5bmNfYWN0aXZlX2J5dGU7Cj4gLQl1bnNpZ25lZCBpbnQgaG9yaXpvbnRhbF9iYWNrcG9yY2hf Ynl0ZTsKPiAtCXVuc2lnbmVkIGludCBob3Jpem9udGFsX2Zyb250cG9yY2hfYnl0ZTsKPiAtCXVu c2lnbmVkIGludCBkc2lfdG1wX2J1Zl9icHA7Cj4gKwl1MzIgaG9yaXpvbnRhbF9zeW5jX2FjdGl2 ZV9ieXRlOwo+ICsJdTMyIGhvcml6b250YWxfYmFja3BvcmNoX2J5dGU7Cj4gKwl1MzIgaG9yaXpv bnRhbF9mcm9udHBvcmNoX2J5dGU7Cj4gKwl1MzIgZHNpX3RtcF9idWZfYnBwOwo+ICAKPiAgCXN0 cnVjdCB2aWRlb21vZGUgKnZtID0gJmRzaS0+dm07Cj4gIAo+IEBAIC00NjMsNyArNDYwLDcgQEAg c3RhdGljIHZvaWQgZHNpX2NvbmZpZ192ZG9fdGltaW5nKHN0cnVjdCBtdGtfZHNpICpkc2kpCj4g IAl3cml0ZWwoaG9yaXpvbnRhbF9iYWNrcG9yY2hfYnl0ZSwgZHNpLT5yZWdzICsgRFNJX0hCUF9X Qyk7Cj4gIAl3cml0ZWwoaG9yaXpvbnRhbF9mcm9udHBvcmNoX2J5dGUsIGRzaS0+cmVncyArIERT SV9IRlBfV0MpOwo+ICAKPiAtCWRzaV9wc19jb250cm9sKGRzaSk7Cj4gKwltdGtfZHNpX3BzX2Nv bnRyb2woZHNpKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgbXRrX2RzaV9zdGFydChzdHJ1Y3Qg bXRrX2RzaSAqZHNpKQo+IEBAIC00ODAsOCArNDc3LDggQEAgc3RhdGljIHZvaWQgbXRrX2RzaV9w b3dlcm9mZihzdHJ1Y3QgbXRrX2RzaSAqZHNpKQo+ICAJaWYgKC0tZHNpLT5yZWZjb3VudCAhPSAw KQo+ICAJCXJldHVybjsKPiAgCj4gLQlkc2lfbGFuZTBfdWxwX21vZGVfZW50ZXIoZHNpKTsKPiAt CWRzaV9jbGtfdWxwX21vZGVfZW50ZXIoZHNpKTsKPiArCW10a19kc2lfbGFuZTBfdWxwX21vZGVf ZW50ZXIoZHNpKTsKPiArCW10a19kc2lfY2xrX3VscF9tb2RlX2VudGVyKGRzaSk7Cj4gIAo+ICAJ bXRrX2RzaV9kaXNhYmxlKGRzaSk7Cj4gIAo+IEBAIC01MTEsMTggKzUwOCwxOCBAQCBzdGF0aWMg dm9pZCBtdGtfb3V0cHV0X2RzaV9lbmFibGUoc3RydWN0IG10a19kc2kgKmRzaSkKPiAgCQlyZXR1 cm47Cj4gIAl9Cj4gIAo+IC0JZHNpX3J4dHhfY29udHJvbChkc2kpOwo+ICsJbXRrX2RzaV9yeHR4 X2NvbnRyb2woZHNpKTsKPiAgCj4gLQlkc2lfY2xrX3VscF9tb2RlX2xlYXZlKGRzaSk7Cj4gLQlk c2lfbGFuZTBfdWxwX21vZGVfbGVhdmUoZHNpKTsKPiAtCWRzaV9jbGtfaHNfbW9kZShkc2ksIDAp Owo+IC0JZHNpX3NldF9tb2RlKGRzaSk7Cj4gKwltdGtfZHNpX2Nsa191bHBfbW9kZV9sZWF2ZShk c2kpOwo+ICsJbXRrX2RzaV9sYW5lMF91bHBfbW9kZV9sZWF2ZShkc2kpOwo+ICsJbXRrX2RzaV9j bGtfaHNfbW9kZShkc2ksIDApOwo+ICsJbXRrX2RzaV9zZXRfbW9kZShkc2kpOwo+ICAKPiAtCWRz aV9wc19jb250cm9sX3ZhY3QoZHNpKTsKPiAtCWRzaV9jb25maWdfdmRvX3RpbWluZyhkc2kpOwo+ ICsJbXRrX2RzaV9wc19jb250cm9sX3ZhY3QoZHNpKTsKPiArCW10a19kc2lfY29uZmlnX3Zkb190 aW1pbmcoZHNpKTsKPiAgCj4gLQlkc2lfc2V0X21vZGUoZHNpKTsKPiAtCWRzaV9jbGtfaHNfbW9k ZShkc2ksIDEpOwo+ICsJbXRrX2RzaV9zZXRfbW9kZShkc2kpOwo+ICsJbXRrX2RzaV9jbGtfaHNf bW9kZShkc2ksIDEpOwo+ICAKPiAgCW10a19kc2lfc3RhcnQoZHNpKTsKPiAgCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfbWlwaV90eC5jIGIvZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19taXBpX3R4LmMKPiBpbmRleCBjNGEwMTY1Li5mZDg0OTE0IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfbWlwaV90eC5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19taXBpX3R4LmMKPiBAQCAtMTM0LDcgKzEzNCw3 IEBAIHN0cnVjdCBtdGtfbWlwaXR4X2RhdGEgewo+ICBzdHJ1Y3QgbXRrX21pcGlfdHggewo+ICAJ c3RydWN0IGRldmljZSAqZGV2Owo+ICAJdm9pZCBfX2lvbWVtICpyZWdzOwo+IC0JdW5zaWduZWQg aW50IGRhdGFfcmF0ZTsKPiArCXUzMiBkYXRhX3JhdGU7Cj4gIAljb25zdCBzdHJ1Y3QgbXRrX21p cGl0eF9kYXRhICpkcml2ZXJfZGF0YTsKPiAgCXN0cnVjdCBjbGtfaHcgcGxsX2h3Owo+ICAJc3Ry dWN0IGNsayAqcGxsOwo+IEBAIC0xNzIsNyArMTcyLDcgQEAgc3RhdGljIHZvaWQgbXRrX21pcGlf dHhfdXBkYXRlX2JpdHMoc3RydWN0IG10a19taXBpX3R4ICptaXBpX3R4LCB1MzIgb2Zmc2V0LAo+ ICBzdGF0aWMgaW50IG10a19taXBpX3R4X3BsbF9wcmVwYXJlKHN0cnVjdCBjbGtfaHcgKmh3KQo+ ICB7Cj4gIAlzdHJ1Y3QgbXRrX21pcGlfdHggKm1pcGlfdHggPSBtdGtfbWlwaV90eF9mcm9tX2Ns a19odyhodyk7Cj4gLQl1bnNpZ25lZCBpbnQgdHhkaXYsIHR4ZGl2MCwgdHhkaXYxOwo+ICsJdTgg dHhkaXYsIHR4ZGl2MCwgdHhkaXYxOwo+ICAJdTY0IHBjdzsKPiAgCj4gIAlkZXZfZGJnKG1pcGlf dHgtPmRldiwgInByZXBhcmU6ICV1IEh6XG4iLCBtaXBpX3R4LT5kYXRhX3JhdGUpOwo+IEBAIC0z MjYsNyArMzI2LDcgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgbXRrX21pcGlfdHhfcGxsX3JlY2Fs Y19yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LAo+ICBzdGF0aWMgaW50IG10a19taXBpX3R4X3Bvd2Vy X29uX3NpZ25hbChzdHJ1Y3QgcGh5ICpwaHkpCj4gIHsKPiAgCXN0cnVjdCBtdGtfbWlwaV90eCAq bWlwaV90eCA9IHBoeV9nZXRfZHJ2ZGF0YShwaHkpOwo+IC0JdW5zaWduZWQgaW50IHJlZzsKPiAr CXUzMiByZWc7Cj4gIAo+ICAJZm9yIChyZWcgPSBNSVBJVFhfRFNJX0NMT0NLX0xBTkU7Cj4gIAkg ICAgIHJlZyA8PSBNSVBJVFhfRFNJX0RBVEFfTEFORTM7IHJlZyArPSA0KQo+IEBAIC0zNTcsNyAr MzU3LDcgQEAgc3RhdGljIGludCBtdGtfbWlwaV90eF9wb3dlcl9vbihzdHJ1Y3QgcGh5ICpwaHkp Cj4gIHN0YXRpYyB2b2lkIG10a19taXBpX3R4X3Bvd2VyX29mZl9zaWduYWwoc3RydWN0IHBoeSAq cGh5KQo+ICB7Cj4gIAlzdHJ1Y3QgbXRrX21pcGlfdHggKm1pcGlfdHggPSBwaHlfZ2V0X2RydmRh dGEocGh5KTsKPiAtCXVuc2lnbmVkIGludCByZWc7Cj4gKwl1MzIgcmVnOwo+ICAKPiAgCW10a19t aXBpX3R4X3NldF9iaXRzKG1pcGlfdHgsIE1JUElUWF9EU0lfVE9QX0NPTiwKPiAgCQkJICAgICBS R19EU0lfUEFEX1RJRV9MT1dfRU4pOwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAo=