From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kumar, Shobhit" Subject: Re: [RFC v2 3/4] drm/panel: Add new panel driver based on crystal cove pmic Date: Mon, 12 Jan 2015 13:56:50 +0530 Message-ID: <54B3854A.1020309@linux.intel.com> References: <1420206085-2913-1-git-send-email-shobhit.kumar@intel.com> <1420206085-2913-4-git-send-email-shobhit.kumar@intel.com> <877fwwyucg.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id CB5396E319 for ; Mon, 12 Jan 2015 00:26:53 -0800 (PST) In-Reply-To: <877fwwyucg.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula , Shobhit Kumar , intel-gfx Cc: Daniel Vetter , jacob.jun.pan@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gMS85LzIwMTUgNjozOCBQTSwgSmFuaSBOaWt1bGEgd3JvdGU6Cj4gT24gRnJpLCAwMiBKYW4g MjAxNSwgU2hvYmhpdCBLdW1hciA8c2hvYmhpdC5rdW1hckBpbnRlbC5jb20+IHdyb3RlOgo+PiBU aGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUgImNyeXN0YWxfY292ZV9wYW5lbCIg Y2VsbCBkZXZpY2UuCj4+IE9uIEJZVC1UIHBtaWMgaGFzIHRvIGJlIHVzZWQgdG8gZW5hYmxlL2Rp c2FibGUgcGFuZWwuCj4KPiBUaGlzIG5lZWRzIHRvIGJlIHNlbnQgdG8gZHJpLWRldmVsLgoKV2ls bCBkbyBmb3IgdGhlIHVwZGF0ZWQgcGF0Y2ggYWZ0ZXIgYWRkcmVzc2luZyBhbGwgeW91ciBjb21t ZW50cy4KCj4KPiBXaXRoIHRoZSBjb21tZW50cyBiZWxvdyBhZGRyZXNzZWQsIGFuZCB3aXRoIHRo ZSBkaXNjbGFpbWVyIHRoYXQgSSBoYXZlCj4gbm8gaWRlYSBhYm91dCB0aGUgcG1pYyByZWdpc3Rl cnMgb3IgcmVxdWlyZWQgc2xlZXBzLCB0aGlzIGlzCj4KPiBSZXZpZXdlZC1ieTogSmFuaSBOaWt1 bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBTaG9iaGl0 IEt1bWFyIDxzaG9iaGl0Lmt1bWFyQGludGVsLmNvbT4KPj4gLS0tCj4+ICAgZHJpdmVycy9ncHUv ZHJtL3BhbmVsL0tjb25maWcgICAgICAgICAgICAgfCAgIDcgKysKPj4gICBkcml2ZXJzL2dwdS9k cm0vcGFuZWwvTWFrZWZpbGUgICAgICAgICAgICB8ICAgMSArCj4+ICAgZHJpdmVycy9ncHUvZHJt L3BhbmVsL3BhbmVsLWNyeXN0YWxjb3ZlLmMgfCAxOTEgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCj4+ICAgMyBmaWxlcyBjaGFuZ2VkLCAxOTkgaW5zZXJ0aW9ucygrKQo+PiAgIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtY3J5c3RhbGNvdmUuYwo+ Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcgYi9kcml2ZXJz L2dwdS9kcm0vcGFuZWwvS2NvbmZpZwo+PiBpbmRleCAwMjRlOThlLi5kODEzYmQxIDEwMDY0NAo+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvS2NvbmZpZwo+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vcGFuZWwvS2NvbmZpZwo+PiBAQCAtNDAsNCArNDAsMTEgQEAgY29uZmlnIERSTV9QQU5F TF9TSEFSUF9MUTEwMVIxU1gwMQo+PiAgIAkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBt b2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUKPj4gICAJICB3aWxsIGJlIGNhbGxlZCBw YW5lbC1zaGFycC1scTEwMXIxc3gwMS4KPj4KPj4gK2NvbmZpZyBEUk1fUEFORUxfQ1JZU1RBTENP VkUKPj4gKwl0cmlzdGF0ZSAiQ3J5c3RhbGNvdmUgUE1JQyBjb250cm9sbGVkIHBhbmVsIgo+PiAr CWRlcGVuZHMgb24gSU5URUxfU09DX1BNSUMKPgo+IElOVEVMX1NPQ19QTUlDIGlzIHN0aWxsIGEg Ym9vbCAoYW5kIHJlcXVpcmVzIEkyQz15KSwgYW5kIElNTyBzaG91bGQgYmUKPiBmaXhlZCB0byBz dXBwb3J0IHRyaXN0YXRlLiBPciBhcmUgdGhlcmUgZnVuZGFtZW50YWwgcmVhc29ucyB0aGlzIGNh bid0Cj4gYmUgZG9uZT8KCkphY29iLCBjYW4geW91IGFuc3dlciB0aGlzIG9uZSBmb3IgdGhlIFBN SUMgZHJpdmVyLiBUaGlzIGhhcyBjb21lIHVwIAptdWx0aXBsZSB0aW1lcyBlYXJsaWVyIGFsc28g aW4gc29tZSBkaXNjdXNzaW9ucy4KCj4KPj4gKwloZWxwCj4+ICsJICBTYXkgWSBoZXJlIGlmIHlv dSB3YW50IHRvIGVuYWJsZSBzdXBwb3J0IGZvciBEU0kgcGFuZWwgYW5kIGJhY2tsaWdodAo+PiAr CSAgY29udHJvbCB1c2luZyBjcnlzdGFsY292ZSBwbWljLiBUaGlzIGlzIHVzZWQgZm9yIEJZVCBD UiBjb25maWd1cmF0aW9ucwo+PiArCj4+ICAgZW5kbWVudQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxl Cj4+IGluZGV4IDRiMmEwNDMuLmMwNTgyNGUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9NYWtlZmlsZQo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvTWFrZWZpbGUK Pj4gQEAgLTIsMyArMiw0IEBAIG9iai0kKENPTkZJR19EUk1fUEFORUxfU0lNUExFKSArPSBwYW5l bC1zaW1wbGUubwo+PiAgIG9iai0kKENPTkZJR19EUk1fUEFORUxfTEQ5MDQwKSArPSBwYW5lbC1s ZDkwNDAubwo+PiAgIG9iai0kKENPTkZJR19EUk1fUEFORUxfUzZFOEFBMCkgKz0gcGFuZWwtczZl OGFhMC5vCj4+ICAgb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9TSEFSUF9MUTEwMVIxU1gwMSkgKz0g cGFuZWwtc2hhcnAtbHExMDFyMXN4MDEubwo+PiArb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9DUllT VEFMQ09WRSkgKz0gcGFuZWwtY3J5c3RhbGNvdmUubwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLWNyeXN0YWxjb3ZlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv cGFuZWwtY3J5c3RhbGNvdmUuYwo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAw MDAwLi4yMmY3ZmY1Cj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Bh bmVsL3BhbmVsLWNyeXN0YWxjb3ZlLmMKPj4gQEAgLTAsMCArMSwxOTEgQEAKPj4gKy8qCj4+ICsg KiBDb3B5cmlnaHQgwqkgMjAwNi0yMDE0IEludGVsIENvcnBvcmF0aW9uCj4KPiAyMDA2PyEKPgo+ PiArICoKPj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUg YW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+PiAr ICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5n IHdpdGhvdXQgbGltaXRhdGlvbgo+PiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlm eSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4+ICsgKiBhbmQvb3Ig c2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hv bSB0aGUKPj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0 aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4+ICsgKgo+PiArICogVGhlIGFib3ZlIGNvcHlyaWdo dCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAo+ PiArICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0 YW50aWFsIHBvcnRpb25zIG9mIHRoZQo+PiArICogU29mdHdhcmUuCj4+ICsgKgo+PiArICogVEhF IFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJ TkQsIEVYUFJFU1MgT1IKPj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQg VE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+PiArICogRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNI QUxMCj4+ICsgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9S IEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgo+PiArICogTElBQklMSVRZLCBXSEVUSEVSIElO IEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPj4gKyAq IEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBV U0UgT1IgT1RIRVIKPj4gKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KPj4gKyAqCj4+ICsg KiBBdXRob3JzOgo+PiArICoJU2hvYmhpdCBLdW1hciA8c2hvYmhpdC5rdW1hckBpbnRlbC5jb20+ Cj4+ICsgKi8KPj4gKwo+PiArI2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4+ICsjaW5jbHVkZSA8ZHJt L2RybV9jcnRjLmg+Cj4+ICsjaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgo+PiArI2luY2x1ZGUg PGxpbnV4L21mZC9pbnRlbF9zb2NfcG1pYy5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3Jt X2RldmljZS5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgo+PiArCj4+ICsjZGVmaW5l IFBNSUNfUEFORUxfRU4JCTB4NTIKPj4gKyNkZWZpbmUgUE1JQ19QV01fRU4JCTB4NTEKPj4gKyNk ZWZpbmUgUE1JQ19CS0xfRU4JCTB4NEIKPj4gKyNkZWZpbmUgUE1JQ19QV01fTEVWRUwJCTB4NEUK Pj4gKwo+PiArc3RydWN0IGNyeXN0YWxjb3ZlX3BhbmVsIHsKPj4gKwlzdHJ1Y3QgZHJtX3BhbmVs IGJhc2U7Cj4+ICsJY2hhciBuYW1lW05BTUVfTUFYXTsKPgo+IFVudXNlZC4KPgo+PiArCWJvb2wg cHJlcGFyZWQ7Cj4+ICsJYm9vbCBlbmFibGVkOwo+PiArCj4+ICsJc3RydWN0IG11dGV4IGxvY2s7 Cj4KPiBVbnVzZWQuCj4KPj4gKwo+PiArCS8qIGNyeXN0YWwgY292ZSBwbWljIHJlZ21hcCAqLwo+ PiArCXN0cnVjdCByZWdtYXAgKnJlZ21hcDsKPj4gK307Cj4+ICsKPj4gK3N0YXRpYyBpbmxpbmUg c3RydWN0IGNyeXN0YWxjb3ZlX3BhbmVsICp0b19jcnlzdGFsY292ZV9wYW5lbChzdHJ1Y3QgZHJt X3BhbmVsICpwYW5lbCkKPj4gK3sKPj4gKwlyZXR1cm4gY29udGFpbmVyX29mKHBhbmVsLCBzdHJ1 Y3QgY3J5c3RhbGNvdmVfcGFuZWwsIGJhc2UpOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgaW50IGNy eXN0YWxjb3ZlX3BhbmVsX2Rpc2FibGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCj4+ICt7Cj4+ ICsJc3RydWN0IGNyeXN0YWxjb3ZlX3BhbmVsICpwID0gdG9fY3J5c3RhbGNvdmVfcGFuZWwocGFu ZWwpOwo+PiArCj4+ICsJaWYgKCFwLT5lbmFibGVkKQo+PiArCQlyZXR1cm4gMDsKPj4gKwo+PiAr CURSTV9ERUJVR19LTVMoIlxuIik7Cj4+ICsKPj4gKwkvKiBpbnZva2UgdGhlIHBtaWMgZHJpdmVy ICovCj4+ICsJcmVnbWFwX3dyaXRlKHAtPnJlZ21hcCwgUE1JQ19QQU5FTF9FTiwgMHgwMCk7Cj4+ ICsKPj4gKwkvKiBEaXNhYmxlIGJhY2tsaWdodCBhcyB3ZWxsICovCj4+ICsJcmVnbWFwX3dyaXRl KHAtPnJlZ21hcCwgUE1JQ19QV01fTEVWRUwsIDApOwo+PiArCW1zbGVlcCgyMCk7Cj4KPiBTZWVt cyBsaWtlIGEgbG9uZyBkZWxheS4KPgo+PiArCXJlZ21hcF93cml0ZShwLT5yZWdtYXAsIFBNSUNf UFdNX0VOLCAweDAwKTsKPj4gKwlyZWdtYXBfd3JpdGUocC0+cmVnbWFwLCBQTUlDX0JLTF9FTiwg MHg3Rik7Cj4+ICsKPj4gKwlwLT5lbmFibGVkID0gZmFsc2U7Cj4+ICsKPj4gKwlyZXR1cm4gMDsK Pj4gK30KPj4gKwo+PiArc3RhdGljIGludCBjcnlzdGFsY292ZV9wYW5lbF91bnByZXBhcmUoc3Ry dWN0IGRybV9wYW5lbCAqcGFuZWwpCj4+ICt7Cj4+ICsJc3RydWN0IGNyeXN0YWxjb3ZlX3BhbmVs ICpwID0gdG9fY3J5c3RhbGNvdmVfcGFuZWwocGFuZWwpOwo+PiArCj4+ICsJaWYgKCFwLT5wcmVw YXJlZCkKPj4gKwkJcmV0dXJuIDA7Cj4+ICsKPj4gKwkvKiBOb3RoaW5nIG5lZWRlZCAqLwo+PiAr CXAtPnByZXBhcmVkID0gZmFsc2U7Cj4+ICsKPj4gKwlyZXR1cm4gMDsKPj4gK30KPj4gKwo+PiAr c3RhdGljIGludCBjcnlzdGFsY292ZV9wYW5lbF9wcmVwYXJlKHN0cnVjdCBkcm1fcGFuZWwgKnBh bmVsKQo+PiArewo+PiArCXN0cnVjdCBjcnlzdGFsY292ZV9wYW5lbCAqcCA9IHRvX2NyeXN0YWxj b3ZlX3BhbmVsKHBhbmVsKTsKPj4gKwo+PiArCWlmIChwLT5wcmVwYXJlZCkKPj4gKwkJcmV0dXJu IDA7Cj4+ICsKPj4gKwkvKiBOb3RoaW5nIG5lZWRlZCAqLwo+PiArCXAtPnByZXBhcmVkID0gdHJ1 ZTsKPj4gKwo+PiArCXJldHVybiAwOwo+PiArfQo+Cj4gSWYgeW91IGRvbid0IG5lZWQgcHJlcGFy ZS91bnByZXBhcmUsIHlvdSBjYW4ganVzdCBsZWF2ZSB0aGVtIG91dAo+IGFsdG9nZXRoZXIuIEl0 J3MgZWFzeSB0byBhZGQgdGhlbSBpZiB5b3UgbmVlZCB0aGVtIGxhdGVyLgo+Cj4+ICsKPj4gK3N0 YXRpYyBpbnQgY3J5c3RhbGNvdmVfcGFuZWxfZW5hYmxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVs KQo+PiArewo+PiArCXN0cnVjdCBjcnlzdGFsY292ZV9wYW5lbCAqcCA9IHRvX2NyeXN0YWxjb3Zl X3BhbmVsKHBhbmVsKTsKPj4gKwo+PiArCWlmIChwLT5lbmFibGVkKQo+PiArCQlyZXR1cm4gMDsK Pj4gKwo+PiArCURSTV9ERUJVR19LTVMoIlxuIik7Cj4+ICsKPj4gKwkvKiBpbnZva2UgdGhlIHBt aWMgZHJpdmVyICovCj4+ICsJcmVnbWFwX3dyaXRlKHAtPnJlZ21hcCwgUE1JQ19QQU5FTF9FTiwg MHgwMSk7Cj4+ICsKPj4gKwkvKiBFbmFibGUgQktMIGFzIHdlbGwgKi8KPj4gKwlyZWdtYXBfd3Jp dGUocC0+cmVnbWFwLCBQTUlDX0JLTF9FTiwgMHhGRik7Cj4+ICsJcmVnbWFwX3dyaXRlKHAtPnJl Z21hcCwgUE1JQ19QV01fRU4sIDB4MDEpOwo+PiArCW1zbGVlcCgyMCk7Cj4+ICsJcmVnbWFwX3dy aXRlKHAtPnJlZ21hcCwgUE1JQ19QV01fTEVWRUwsIDI1NSk7Cj4+ICsKPj4gKwlwLT5lbmFibGVk ID0gdHJ1ZTsKPj4gKwo+PiArCXJldHVybiAwOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgY29uc3Qg c3RydWN0IGRybV9wYW5lbF9mdW5jcyBjcnlzdGFsY292ZV9wYW5lbF9mdW5jcyA9IHsKPj4gKwku ZGlzYWJsZSA9IGNyeXN0YWxjb3ZlX3BhbmVsX2Rpc2FibGUsCj4+ICsJLnVucHJlcGFyZSA9IGNy eXN0YWxjb3ZlX3BhbmVsX3VucHJlcGFyZSwKPj4gKwkucHJlcGFyZSA9IGNyeXN0YWxjb3ZlX3Bh bmVsX3ByZXBhcmUsCj4+ICsJLmVuYWJsZSA9IGNyeXN0YWxjb3ZlX3BhbmVsX2VuYWJsZSwKPj4g K307Cj4+ICsKPj4gK3N0YXRpYyBpbnQgY3J5c3RhbGNvdmVfcGFuZWxfcHJvYmUoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldikKPj4gK3sKPj4gKwlzdHJ1Y3QgY3J5c3RhbGNvdmVfcGFuZWwg KnBhbmVsOwo+PiArCWludCByZXR2YWw7Cj4+ICsJc3RydWN0IGRldmljZSAqZGV2ID0gcGRldi0+ ZGV2LnBhcmVudDsKPj4gKwlzdHJ1Y3QgaW50ZWxfc29jX3BtaWMgKnBtaWMgPSBkZXZfZ2V0X2Ry dmRhdGEoZGV2KTsKPj4gKwo+PiArCXBhbmVsID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNp emVvZigqcGFuZWwpLCBHRlBfS0VSTkVMKTsKPj4gKwlpZiAoIXBhbmVsKQo+PiArCQlyZXR1cm4g LUVOT01FTTsKPj4gKwo+PiArCURSTV9ERUJVR19LTVMoIlxuIik7Cj4+ICsKPj4gKwlwbGF0Zm9y bV9zZXRfZHJ2ZGF0YShwZGV2LCBwYW5lbCk7Cj4+ICsKPj4gKwlzdHJjcHkocGFuZWwtPmJhc2Uu bmFtZSwgImNyeXN0YWxfY292ZV9wYW5lbCIpOwo+PiArCXBhbmVsLT5yZWdtYXAgPSBwbWljLT5y ZWdtYXA7Cj4+ICsKPj4gKwlyZWdtYXBfcmVhZChwYW5lbC0+cmVnbWFwLCBQTUlDX1BBTkVMX0VO LCAmcmV0dmFsKTsKPj4gKwlwYW5lbC0+ZW5hYmxlZCA9IHBhbmVsLT5wcmVwYXJlZCA9IHJldHZh bCA/IHRydWUgOiBmYWxzZTsKPgo+IEZvciBib29scyB5b3UgY2FuIGp1c3QgYXNzaWduIHJldHZh bCwgb3IgaWYgeW91IHdhbnQgdG8gZW1waGFzaXMgaXQncyBhCj4gYm9vbCB5b3UgY2FuIHVzZSAh IXJldHZhbC4KPgo+PiArCj4+ICsJZHJtX3BhbmVsX2luaXQoJnBhbmVsLT5iYXNlKTsKPj4gKwlw YW5lbC0+YmFzZS5kZXYgPSBkZXY7Cj4+ICsJcGFuZWwtPmJhc2UuZnVuY3MgPSAmY3J5c3RhbGNv dmVfcGFuZWxfZnVuY3M7Cj4+ICsKPj4gKwlkcm1fcGFuZWxfYWRkKCZwYW5lbC0+YmFzZSk7Cj4+ ICsKPj4gKwlyZXR1cm4gMDsKPj4gK30KPj4gKwo+PiArc3RhdGljIGludCBjcnlzdGFsY292ZV9w YW5lbF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPj4gK3sKPj4gKwlzdHJ1 Y3QgY3J5c3RhbGNvdmVfcGFuZWwgKnBhbmVsID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7 Cj4+ICsKPj4gKwlEUk1fREVCVUdfS01TKCJcbiIpOwo+PiArCj4+ICsJZHJtX3BhbmVsX2RldGFj aCgmcGFuZWwtPmJhc2UpOwo+PiArCWRybV9wYW5lbF9yZW1vdmUoJnBhbmVsLT5iYXNlKTsKPj4g Kwo+PiArCWNyeXN0YWxjb3ZlX3BhbmVsX2Rpc2FibGUoJnBhbmVsLT5iYXNlKTsKPj4gKwo+PiAr CXJldHVybiAwOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBj cnlzdGFsY292ZV9wYW5lbF9kcml2ZXIgPSB7Cj4+ICsJLnByb2JlID0gY3J5c3RhbGNvdmVfcGFu ZWxfcHJvYmUsCj4+ICsJLnJlbW92ZSA9IGNyeXN0YWxjb3ZlX3BhbmVsX3JlbW92ZSwKPj4gKwku ZHJpdmVyID0gewo+PiArCQkubmFtZSA9ICJjcnlzdGFsX2NvdmVfcGFuZWwiLAo+PiArCX0sCj4+ ICt9Owo+PiArCj4+ICttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGNyeXN0YWxjb3ZlX3BhbmVsX2Ry aXZlcik7Cj4+ICsKPj4gK01PRFVMRV9BVVRIT1IoIlNob2JoaXQgS3VtYXIgPHNob2JoaXQua3Vt YXJAbGludXguaW50ZWwuY29tIik7Cj4+ICtNT0RVTEVfREVTQ1JJUFRJT04oIkludGVsIENyeXN0 YWwgQ292ZSBQYW5lbCBEcml2ZXIiKTsKPj4gK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKPgo+ IFRoaXMgY29uZmxpY3RzIHdpdGggdGhlIGNvcHlyaWdodCBoZWFkZXIgb2YgdGhlIGZpbGUuCj4K Pgo+PiAtLQo+PiAxLjkuMQo+Pgo+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==