From mboxrd@z Thu Jan 1 00:00:00 1970 From: CK Hu Subject: Re: [PATCH v3 1/2] drm/mediatek: Add gamma correction Date: Fri, 15 Jul 2016 17:11:48 +0800 Message-ID: <1468573908.25670.10.camel@mtksdaap41> References: <1467877029-45236-1-git-send-email-bibby.hsieh@mediatek.com> <1467877029-45236-2-git-send-email-bibby.hsieh@mediatek.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1467877029-45236-2-git-send-email-bibby.hsieh@mediatek.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Bibby Hsieh Cc: linux-kernel@vger.kernel.org, Sascha Hauer , Daniel Vetter , Cawa Cheng , dri-devel@lists.freedesktop.org, Mao Huang , linux-mediatek@lists.infradead.org, Matthias Brugger , Yingjoe Chen , linux-arm-kernel@lists.infradead.org List-Id: linux-mediatek@lists.infradead.org SGksIEJpYmJ5OgoKU29tZSBjb21tZW50cyBpbmxpbmUuCgpPbiBUaHUsIDIwMTYtMDctMDcgYXQg MTU6MzcgKzA4MDAsIEJpYmJ5IEhzaWVoIHdyb3RlOgo+IEFwcGx5IGdhbW1hIGZ1bmN0aW9uIHRv IGNvcnJlY3QgYnJpZ2h0bmVzcyB2YWx1ZXMuCj4gSXQgYXBwbGllcyBhcmJpdHJhcnkgbWFwcGlu ZyBjdXJ2ZSB0byBjb21wZW5zYXRlIHRoZQo+IGluY29ycmVjdCB0cmFuc2ZlciBmdW5jdGlvbiBv ZiB0aGUgcGFuZWwuCj4gCj4gU2lnbmVkLW9mZi1ieTogQmliYnkgSHNpZWggPGJpYmJ5LmhzaWVo QG1lZGlhdGVrLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1f Y3J0Yy5jICAgICB8ICAgIDggKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJt X2NydGMuaCAgICAgfCAgICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1f ZGRwX2NvbXAuYyB8ICAgODkgKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gIGRyaXZlcnMv Z3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmggfCAgIDEwICsrKwo+ICA0IGZpbGVz IGNoYW5nZWQsIDEwNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMgYi9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMKPiBpbmRleCAyNGFhM2JhLi5lZTIxOWJiIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuYwo+IEBAIC00MDksNiAr NDA5LDEwIEBAIHN0YXRpYyB2b2lkIG10a19kcm1fY3J0Y19hdG9taWNfZmx1c2goc3RydWN0IGRy bV9jcnRjICpjcnRjLAo+ICAJfQo+ICAJaWYgKHBlbmRpbmdfcGxhbmVzKQo+ICAJCW10a19jcnRj LT5wZW5kaW5nX3BsYW5lcyA9IHRydWU7Cj4gKwlpZiAoY3J0Yy0+c3RhdGUtPmNvbG9yX21nbXRf Y2hhbmdlZCkKPiArCQlmb3IgKGkgPSAwOyBpIDwgbXRrX2NydGMtPmRkcF9jb21wX25yOyBpKysp Cj4gKwkJCW10a19kZHBfZ2FtbWFfc2V0KG10a19jcnRjLT5kZHBfY29tcFtpXSwgY3J0Yy0+c3Rh dGUpOwo+ICsKPiAgfQo+ICAKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19mdW5jcyBt dGtfY3J0Y19mdW5jcyA9IHsKPiBAQCAtNDE4LDYgKzQyMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZHJtX2NydGNfZnVuY3MgbXRrX2NydGNfZnVuY3MgPSB7Cj4gIAkucmVzZXQJCQk9IG10a19k cm1fY3J0Y19yZXNldCwKPiAgCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlCT0gbXRrX2RybV9jcnRj X2R1cGxpY2F0ZV9zdGF0ZSwKPiAgCS5hdG9taWNfZGVzdHJveV9zdGF0ZQk9IG10a19kcm1fY3J0 Y19kZXN0cm95X3N0YXRlLAo+ICsJLmdhbW1hX3NldAkJPSBkcm1fYXRvbWljX2hlbHBlcl9sZWdh Y3lfZ2FtbWFfc2V0LAo+ICB9Owo+ICAKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19o ZWxwZXJfZnVuY3MgbXRrX2NydGNfaGVscGVyX2Z1bmNzID0gewo+IEBAIC01NjksNiArNTc0LDkg QEAgaW50IG10a19kcm1fY3J0Y19jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsCj4g IAlpZiAocmV0IDwgMCkKPiAgCQlnb3RvIHVucHJlcGFyZTsKPiAgCj4gKwlkcm1fbW9kZV9jcnRj X3NldF9nYW1tYV9zaXplKCZtdGtfY3J0Yy0+YmFzZSwgTVRLX0xVVF9TSVpFKTsKPiArCWRybV9o ZWxwZXJfY3J0Y19lbmFibGVfY29sb3JfbWdtdCgmbXRrX2NydGMtPmJhc2UsIE1US19MVVRfU0la RSwKPiArCQkJCQkgIE1US19MVVRfU0laRSk7Cj4gIAlwcml2LT5jcnRjW3BpcGVdID0gJm10a19j cnRjLT5iYXNlOwo+ICAJcHJpdi0+bnVtX3BpcGVzKys7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmggYi9kcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2RybV9jcnRjLmgKPiBpbmRleCA4MWU1NTY2Li5kMzMyNTY0IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuaAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuaAo+IEBAIC0xOSw2ICsxOSw3IEBACj4g ICNpbmNsdWRlICJtdGtfZHJtX3BsYW5lLmgiCj4gIAo+ICAjZGVmaW5lIE9WTF9MQVlFUl9OUgk0 Cj4gKyNkZWZpbmUgTVRLX0xVVF9TSVpFCTUxMgo+ICAKPiAgaW50IG10a19kcm1fY3J0Y19lbmFi bGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sIHVuc2lnbmVkIGludCBwaXBlKTsKPiAg dm9pZCBtdGtfZHJtX2NydGNfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRybSwg dW5zaWduZWQgaW50IHBpcGUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0 ZWsvbXRrX2RybV9kZHBfY29tcC5jIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1f ZGRwX2NvbXAuYwo+IGluZGV4IDM5NzBmY2YuLjU2YzU4OTQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmMKPiBAQCAtMjQsNiArMjQsNyBAQAo+ICAj aW5jbHVkZSAibXRrX2RybV9kcnYuaCIKPiAgI2luY2x1ZGUgIm10a19kcm1fcGxhbmUuaCIKPiAg I2luY2x1ZGUgIm10a19kcm1fZGRwX2NvbXAuaCIKPiArI2luY2x1ZGUgIm10a19kcm1fY3J0Yy5o Igo+ICAKPiAgI2RlZmluZSBESVNQX09EX0VOCQkJCTB4MDAwMAo+ICAjZGVmaW5lIERJU1BfT0Rf SU5URU4JCQkJMHgwMDA4Cj4gQEAgLTM4LDYgKzM5LDIxIEBACj4gICNkZWZpbmUgRElTUF9DT0xP Ul9XSURUSAkJCTB4MGM1MAo+ICAjZGVmaW5lIERJU1BfQ09MT1JfSEVJR0hUCQkJMHgwYzU0Cj4g IAo+ICsjZGVmaW5lIERJU1BfQUFMX0VOCQkJCTB4MDAwCj4gKyNkZWZpbmUgRElTUF9BQUxfU0la RQkJCQkweDAzMAo+ICsKPiArI2RlZmluZSBESVNQX0dBTU1BX0VOCQkJCTB4MDAwCj4gKyNkZWZp bmUgRElTUF9HQU1NQV9DRkcJCQkJMHgwMjAKPiArI2RlZmluZSBESVNQX0dBTU1BX1NJWkUJCQkJ MHgwMzAKPiArI2RlZmluZSBESVNQX0dBTU1BX0xVVAkJCQkweDcwMAoKSXQncyBiZXR0ZXIgdGhh dCB0aGUgZGlnaXRzIG9mIHJlZ2lzdGVyIGFkZHJlc3Mgb2YgT0QsIENPTE9SLCBBQUwsIGFuZApH QU1NQSBhcmUgdGhlIHNhbWUuIE1heWJlIHlvdSBjYW4gYWxpZ24gYWxsIHRvIDQgZGlnaXRzLgoK PiArCj4gKyNkZWZpbmUgTFVUXzEwQklUX01BU0sJCQkJMHgzZmYKPiArCj4gKyNkZWZpbmUgQUFM X0VOCQkJQklUKDApCj4gKwo+ICsjZGVmaW5lIEdBTU1BX0VOCQlCSVQoMCkKPiArI2RlZmluZSBH QU1NQV9MVVRfRU4JCUJJVCgxKQo+ICsKPiAgI2RlZmluZQlPRF9SRUxBWV9NT0RFCQlCSVQoMCkK PiAgCj4gICNkZWZpbmUJVUZPX0JZUEFTUwkJQklUKDIpCj4gQEAgLTc2LDYgKzkyLDYxIEBAIHN0 YXRpYyB2b2lkIG10a191Zm9lX3N0YXJ0KHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApCj4gIAl3 cml0ZWwoVUZPX0JZUEFTUywgY29tcC0+cmVncyArIERJU1BfUkVHX1VGT19TVEFSVCk7Cj4gIH0K PiAgCj4gK3N0YXRpYyB2b2lkIG10a19hYWxfY29uZmlnKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNv bXAsIHVuc2lnbmVkIGludCB3LAo+ICsJCQkgICB1bnNpZ25lZCBpbnQgaCwgdW5zaWduZWQgaW50 IHZyZWZyZXNoKQo+ICt7Cj4gKwl3cml0ZWwoaCA8PCAxNiB8IHcsIGNvbXAtPnJlZ3MgKyBESVNQ X0FBTF9TSVpFKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgbXRrX2FhbF9zdGFydChzdHJ1Y3Qg bXRrX2RkcF9jb21wICpjb21wKQo+ICt7Cj4gKwl3cml0ZWwoQUFMX0VOLCBjb21wLT5yZWdzICAr IERJU1BfQUFMX0VOKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgbXRrX2FhbF9zdG9wKHN0cnVj dCBtdGtfZGRwX2NvbXAgKmNvbXApCj4gK3sKPiArCXdyaXRlbF9yZWxheGVkKDB4MCwgY29tcC0+ cmVncyAgKyBESVNQX0FBTF9FTik7Cj4gK30KCkkgdGhpbmsgQUFMIGlzIHNvbWV3aGF0IGRpZmZl cmVudCBmcm9tIEdBTU1BIGFuZCB0aGlzIHBhdGNoIGluY2x1ZGUgMwptb2RpZmljYXRpb25zOgoK MS4gQUFMIGJhc2ljIGNvbmZpZwoyLiBHQU1NQSBiYXNpYyBjb25maWcKMy4gQWRkIGdhbW1hIGZ1 bmN0aW9uIG9mIEFBTCBhbmQgR0FNTUEKClNvIHlvdSBzaG91bGQgc3BsaXQgdGhpcyBwYXRjaCBp bnRvIDMgcGF0Y2hlcy4KCj4gKwo+ICtzdGF0aWMgdm9pZCBtdGtfZ2FtbWFfY29uZmlnKHN0cnVj dCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCB3LAo+ICsJCQkgICAgIHVuc2lnbmVk IGludCBoLCB1bnNpZ25lZCBpbnQgdnJlZnJlc2gpCj4gK3sKPiArCXdyaXRlbChoIDw8IDE2IHwg dywgY29tcC0+cmVncyArIERJU1BfR0FNTUFfU0laRSk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lk IG10a19nYW1tYV9zdGFydChzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wKQo+ICt7Cj4gKwl3cml0 ZWwoR0FNTUFfRU4sIGNvbXAtPnJlZ3MgICsgRElTUF9HQU1NQV9FTik7Cj4gK30KPiArCj4gK3N0 YXRpYyB2b2lkIG10a19nYW1tYV9zdG9wKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApCj4gK3sK PiArCXdyaXRlbF9yZWxheGVkKDB4MCwgY29tcC0+cmVncyAgKyBESVNQX0dBTU1BX0VOKTsKPiAr fQo+ICsKPiArc3RhdGljIHZvaWQgbXRrX2dhbW1hX3NldChzdHJ1Y3QgbXRrX2RkcF9jb21wICpj b21wLAo+ICsJCQkgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpCj4gK3sKPiArCXVuc2ln bmVkIGludCBpLCByZWc7Cj4gKwlzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0Owo+ICsJdm9pZCBf X2lvbWVtICpsdXRfYmFzZTsKPiArCXUzMiB3b3JkOwo+ICsKPiArCWlmIChzdGF0ZS0+Z2FtbWFf bHV0KSB7Cj4gKwkJcmVnID0gcmVhZGwoY29tcC0+cmVncyArIERJU1BfR0FNTUFfQ0ZHKTsKPiAr CQlyZWcgPSByZWcgfCBHQU1NQV9MVVRfRU47Cj4gKwkJd3JpdGVsKHJlZywgY29tcC0+cmVncyAr IERJU1BfR0FNTUFfQ0ZHKTsKPiArCQlsdXRfYmFzZSA9IGNvbXAtPnJlZ3MgKyBESVNQX0dBTU1B X0xVVDsKPiArCQlsdXQgPSAoc3RydWN0IGRybV9jb2xvcl9sdXQgKilzdGF0ZS0+Z2FtbWFfbHV0 LT5kYXRhOwo+ICsJCWZvciAoaSA9IDA7IGkgPCBNVEtfTFVUX1NJWkU7IGkrKykgewo+ICsJCQl3 b3JkID0gKCgobHV0W2ldLnJlZCA+PiA2KSAmIExVVF8xMEJJVF9NQVNLKSA8PCAyMCkgKwo+ICsJ CQkgICAgICAoKChsdXRbaV0uZ3JlZW4gPj4gNikgJiBMVVRfMTBCSVRfTUFTSykgPDwgMTApICsK PiArCQkJICAgICAgKChsdXRbaV0uYmx1ZSA+PiA2KSAmIExVVF8xMEJJVF9NQVNLKTsKPiArCQkJ d3JpdGVsKHdvcmQsIChsdXRfYmFzZSArIGkgKiA0KSk7Cj4gKwkJfQo+ICsJfQo+ICt9Cj4gKwo+ ICBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kZHBfY29tcF9mdW5jcyBkZHBfY29sb3IgPSB7Cj4g IAkuY29uZmlnID0gbXRrX2NvbG9yX2NvbmZpZywKPiAgCS5zdGFydCA9IG10a19jb2xvcl9zdGFy dCwKPiBAQCAtOTAsNiArMTYxLDIwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2RkcF9jb21w X2Z1bmNzIGRkcF91Zm9lID0gewo+ICAJLnN0YXJ0ID0gbXRrX3Vmb2Vfc3RhcnQsCj4gIH07Cj4g IAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kZHBfY29tcF9mdW5jcyBkZHBfYWFsID0gewo+ ICsJLmdhbW1hX3NldCA9IG10a19nYW1tYV9zZXQsCj4gKwkuY29uZmlnID0gbXRrX2FhbF9jb25m aWcsCj4gKwkuc3RhcnQgPSBtdGtfYWFsX3N0YXJ0LAo+ICsJLnN0b3AgPSBtdGtfYWFsX3N0b3As Cj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kZHBfY29tcF9mdW5jcyBkZHBf Z2FtbWEgPSB7Cj4gKwkuZ2FtbWFfc2V0ID0gbXRrX2dhbW1hX3NldCwKPiArCS5jb25maWcgPSBt dGtfZ2FtbWFfY29uZmlnLAo+ICsJLnN0YXJ0ID0gbXRrX2dhbW1hX3N0YXJ0LAo+ICsJLnN0b3Ag PSBtdGtfZ2FtbWFfc3RvcCwKPiArfTsKPiArCj4gIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg bXRrX2RkcF9jb21wX3N0ZW1bTVRLX0REUF9DT01QX1RZUEVfTUFYXSA9IHsKPiAgCVtNVEtfRElT UF9PVkxdID0gIm92bCIsCj4gIAlbTVRLX0RJU1BfUkRNQV0gPSAicmRtYSIsCj4gQEAgLTExMiwx MyArMTk3LDEzIEBAIHN0cnVjdCBtdGtfZGRwX2NvbXBfbWF0Y2ggewo+ICB9Owo+ICAKPiAgc3Rh dGljIGNvbnN0IHN0cnVjdCBtdGtfZGRwX2NvbXBfbWF0Y2ggbXRrX2RkcF9tYXRjaGVzW0REUF9D T01QT05FTlRfSURfTUFYXSA9IHsKPiAtCVtERFBfQ09NUE9ORU5UX0FBTF0JPSB7IE1US19ESVNQ X0FBTCwJMCwgTlVMTCB9LAo+ICsJW0REUF9DT01QT05FTlRfQUFMXQk9IHsgTVRLX0RJU1BfQUFM LAkwLCAmZGRwX2FhbCB9LAo+ICAJW0REUF9DT01QT05FTlRfQ09MT1IwXQk9IHsgTVRLX0RJU1Bf Q09MT1IsCTAsICZkZHBfY29sb3IgfSwKPiAgCVtERFBfQ09NUE9ORU5UX0NPTE9SMV0JPSB7IE1U S19ESVNQX0NPTE9SLAkxLCAmZGRwX2NvbG9yIH0sCj4gIAlbRERQX0NPTVBPTkVOVF9EUEkwXQk9 IHsgTVRLX0RQSSwJCTAsIE5VTEwgfSwKPiAgCVtERFBfQ09NUE9ORU5UX0RTSTBdCT0geyBNVEtf RFNJLAkJMCwgTlVMTCB9LAo+ICAJW0REUF9DT01QT05FTlRfRFNJMV0JPSB7IE1US19EU0ksCQkx LCBOVUxMIH0sCj4gLQlbRERQX0NPTVBPTkVOVF9HQU1NQV0JPSB7IE1US19ESVNQX0dBTU1BLAkw LCBOVUxMIH0sCj4gKwlbRERQX0NPTVBPTkVOVF9HQU1NQV0JPSB7IE1US19ESVNQX0dBTU1BLAkw LCAmZGRwX2dhbW1hIH0sCj4gIAlbRERQX0NPTVBPTkVOVF9PRF0JPSB7IE1US19ESVNQX09ELAkw LCAmZGRwX29kIH0sCj4gIAlbRERQX0NPTVBPTkVOVF9PVkwwXQk9IHsgTVRLX0RJU1BfT1ZMLAkw LCBOVUxMIH0sCj4gIAlbRERQX0NPTVBPTkVOVF9PVkwxXQk9IHsgTVRLX0RJU1BfT1ZMLAkxLCBO VUxMIH0sCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rk cF9jb21wLmggYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5oCj4g aW5kZXggNmIxM2JhOS4uMDdlMTdmZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2RybV9kZHBfY29tcC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kcm1fZGRwX2NvbXAuaAo+IEBAIC0yMCw2ICsyMCw3IEBAIHN0cnVjdCBkZXZpY2U7Cj4g IHN0cnVjdCBkZXZpY2Vfbm9kZTsKPiAgc3RydWN0IGRybV9jcnRjOwo+ICBzdHJ1Y3QgZHJtX2Rl dmljZTsKPiArc3RydWN0IGRybV9jcnRjX3N0YXRlOwo+ICBzdHJ1Y3QgbXRrX3BsYW5lX3N0YXRl Owo+ICAKPiAgZW51bSBtdGtfZGRwX2NvbXBfdHlwZSB7Cj4gQEAgLTczLDYgKzc0LDggQEAgc3Ry dWN0IG10a19kZHBfY29tcF9mdW5jcyB7Cj4gIAl2b2lkICgqbGF5ZXJfb2ZmKShzdHJ1Y3QgbXRr X2RkcF9jb21wICpjb21wLCB1bnNpZ25lZCBpbnQgaWR4KTsKPiAgCXZvaWQgKCpsYXllcl9jb25m aWcpKHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHVuc2lnbmVkIGludCBpZHgsCj4gIAkJCSAg ICAgc3RydWN0IG10a19wbGFuZV9zdGF0ZSAqc3RhdGUpOwo+ICsJdm9pZCAoKmdhbW1hX3NldCko c3RydWN0IG10a19kZHBfY29tcCAqY29tcCwKPiArCQkJICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg KnN0YXRlKTsKPiAgfTsKPiAgCj4gIHN0cnVjdCBtdGtfZGRwX2NvbXAgewo+IEBAIC0xMzksNiAr MTQyLDEzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBtdGtfZGRwX2NvbXBfbGF5ZXJfY29uZmlnKHN0 cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsCj4gIAkJY29tcC0+ZnVuY3MtPmxheWVyX2NvbmZpZyhj b21wLCBpZHgsIHN0YXRlKTsKPiAgfQo+ICAKPiArc3RhdGljIGlubGluZSB2b2lkIG10a19kZHBf Z2FtbWFfc2V0KHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsCj4gKwkJCQkgICAgIHN0cnVjdCBk cm1fY3J0Y19zdGF0ZSAqc3RhdGUpCj4gK3sKPiArCWlmIChjb21wLT5mdW5jcyAmJiBjb21wLT5m dW5jcy0+Z2FtbWFfc2V0KQo+ICsJCWNvbXAtPmZ1bmNzLT5nYW1tYV9zZXQoY29tcCwgc3RhdGUp Owo+ICt9Cj4gKwo+ICBpbnQgbXRrX2RkcF9jb21wX2dldF9pZChzdHJ1Y3QgZGV2aWNlX25vZGUg Km5vZGUsCj4gIAkJCWVudW0gbXRrX2RkcF9jb21wX3R5cGUgY29tcF90eXBlKTsKPiAgaW50IG10 a19kZHBfY29tcF9pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9ub2RlICpj b21wX25vZGUsCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs Cg==