From mboxrd@z Thu Jan 1 00:00:00 1970 From: Inki Dae Subject: Re: [PATCH 6/7] drm/exynos/decon5433: use mode info stored in CRTC to detect i80 mode Date: Tue, 01 Aug 2017 19:02:08 +0900 Message-ID: <598051A0.50105@samsung.com> References: <1492519203-23537-1-git-send-email-a.hajda@samsung.com> <1492519203-23537-7-git-send-email-a.hajda@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-reply-to: <1492519203-23537-7-git-send-email-a.hajda@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Andrzej Hajda Cc: linux-samsung-soc@vger.kernel.org, Marek Szyprowski , dri-devel@lists.freedesktop.org, Bartlomiej Zolnierkiewicz List-Id: linux-samsung-soc@vger.kernel.org U2VlbXMgeW91IG1peGVkIHNvbWUgZGlmZmVyZW50IGNoYW5nZXMgYmVsb3cgd2l0aCBvbmUgcGF0 Y2guCgoxLiBhZGQgY2hlY2tpbmcgcGFuZWwgbW9kZSB3aXRoIGk4MF9tb2RlLgoyLiBjaGFuZ2Ug dGVfaXJxIHRvIGlycV90ZS4KMy4gYWRkIG5ldyBmdW5jdGlvbiwgZGVjb25fYXRvbWljX2NoZWNr LiAKNC4gYWRkIGNvbnNpZGVyaW5nIG1vcmUgZXJyb3IgY2FzZXMgaW4gZGVjb25fY29uZl9pcnEg ZnVuY3Rpb24uCjUuIHJlZ2lzdGVyIGNvbW1hbmQgYW5kIHZpZGVvIG1vZGUgaW50ZXJydXB0IGhh bmRsZXJzIHJlZ2FyZGxlc3Mgb2YgcGFuZWwgbW9kZS4KCkFuZCB0aGUgc3ViamVjdCBvZiB0aGlz IHBhdGNoIGRvZXNuJ3Qgc2F5IGV2ZXJ5dGhpbmcgdG8gYWJvdmUgY2hhbmdlcy4KClRoYW5rcywK SW5raSBEYWUKCjIwMTfrhYQgMDTsm5QgMTjsnbwgMjE6NDDsl5AgQW5kcnplaiBIYWpkYSDsnbQo 6rCAKSDsk7Qg6riAOgo+IFNpbmNlIHBhbmVsJ3MgbW9kZSBvZiB3b3JrIGlzIHByb3BhZ2F0ZWQg cHJvcGVybHkgZnJvbSBwYW5lbCB0byBERUNPTiwKPiB0aGVyZSBpcyBubyBuZWVkIHRvIHVzZSBy ZWR1bmRhbnQgcHJpdmF0ZSBwcm9wZXJ0eS4gVGhlIG9ubHkgaXNzdWUgd2l0aAo+IHN1Y2ggYXBw cm9hY2ggaXMgdGhhdCBjaGVjayBmb3IgcmVxdWlyZWQgaW50ZXJydXB0cyBzaG91bGQgYmUgcG9z dHBvbmVkCj4gdW50aWwgcGFuZWwgY29tbXVuaWNhdGUgaXRzIHJlcXVpcmVtZW50cyAtIGllIHRv IGF0b21pY19jaGVjay4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBBbmRyemVqIEhhamRhIDxhLmhhamRh QHNhbXN1bmcuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vczU0MzNf ZHJtX2RlY29uLmMgfCA5OCArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KPiAgMSBmaWxlIGNo YW5nZWQsIDU3IGluc2VydGlvbnMoKyksIDQxIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vczU0MzNfZHJtX2RlY29uLmMgYi9kcml2ZXJz L2dwdS9kcm0vZXh5bm9zL2V4eW5vczU0MzNfZHJtX2RlY29uLmMKPiBpbmRleCAyMzdiNGM5Li43 YTA5ZTAzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zNTQzM19k cm1fZGVjb24uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zNTQzM19kcm1f ZGVjb24uYwo+IEBAIC0zNCw5ICszNCw4IEBACj4gICNkZWZpbmUgV0lORE9XU19OUgkzCj4gICNk ZWZpbmUgTUlOX0ZCX1dJRFRIX0ZPUl8xNldPUkRfQlVSU1QJMTI4Cj4gIAo+IC0jZGVmaW5lIElG VFlQRV9JODAJKDEgPDwgMCkKPiAtI2RlZmluZSBJODBfSFdfVFJHCSgxIDw8IDEpCj4gLSNkZWZp bmUgSUZUWVBFX0hETUkJKDEgPDwgMikKPiArI2RlZmluZSBJODBfSFdfVFJHCSgxIDw8IDApCj4g KyNkZWZpbmUgSUZUWVBFX0hETUkJKDEgPDwgMSkKPiAgCj4gIHN0YXRpYyBjb25zdCBjaGFyICog Y29uc3QgZGVjb25fY2xrc19uYW1lW10gPSB7Cj4gIAkicGNsayIsCj4gQEAgLTU4LDcgKzU3LDkg QEAgc3RydWN0IGRlY29uX2NvbnRleHQgewo+ICAJc3RydWN0IHJlZ21hcAkJCSpzeXNyZWc7Cj4g IAlzdHJ1Y3QgY2xrCQkJKmNsa3NbQVJSQVlfU0laRShkZWNvbl9jbGtzX25hbWUpXTsKPiAgCXVu c2lnbmVkIGludAkJCWlycTsKPiAtCXVuc2lnbmVkIGludAkJCXRlX2lycTsKPiArCXVuc2lnbmVk IGludAkJCWlycV92c3luYzsKPiArCXVuc2lnbmVkIGludAkJCWlycV9sY2Rfc3lzOwo+ICsJdW5z aWduZWQgaW50CQkJaXJxX3RlOwo+ICAJdW5zaWduZWQgbG9uZwkJCW91dF90eXBlOwo+ICAJaW50 CQkJCWZpcnN0X3dpbjsKPiAgCXNwaW5sb2NrX3QJCQl2YmxhbmtfbG9jazsKPiBAQCAtOTEsNyAr OTIsNyBAQCBzdGF0aWMgaW50IGRlY29uX2VuYWJsZV92Ymxhbmsoc3RydWN0IGV4eW5vc19kcm1f Y3J0YyAqY3J0YykKPiAgCXUzMiB2YWw7Cj4gIAo+ICAJdmFsID0gVklESU5UQ09OMF9JTlRFTjsK PiAtCWlmIChjdHgtPm91dF90eXBlICYgSUZUWVBFX0k4MCkKPiArCWlmIChjcnRjLT5pODBfbW9k ZSkKPiAgCQl2YWwgfD0gVklESU5UQ09OMF9GUkFNRURPTkU7Cj4gIAllbHNlCj4gIAkJdmFsIHw9 IFZJRElOVENPTjBfSU5URlJNRU4gfCBWSURJTlRDT04wX0ZSQU1FU0VMX0ZQOwo+IEBAIC0xMDAs NyArMTAxLDcgQEAgc3RhdGljIGludCBkZWNvbl9lbmFibGVfdmJsYW5rKHN0cnVjdCBleHlub3Nf ZHJtX2NydGMgKmNydGMpCj4gIAo+ICAJZW5hYmxlX2lycShjdHgtPmlycSk7Cj4gIAlpZiAoIShj dHgtPm91dF90eXBlICYgSTgwX0hXX1RSRykpCj4gLQkJZW5hYmxlX2lycShjdHgtPnRlX2lycSk7 Cj4gKwkJZW5hYmxlX2lycShjdHgtPmlycV90ZSk7Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiBA QCAtMTEwLDcgKzExMSw3IEBAIHN0YXRpYyB2b2lkIGRlY29uX2Rpc2FibGVfdmJsYW5rKHN0cnVj dCBleHlub3NfZHJtX2NydGMgKmNydGMpCj4gIAlzdHJ1Y3QgZGVjb25fY29udGV4dCAqY3R4ID0g Y3J0Yy0+Y3R4Owo+ICAKPiAgCWlmICghKGN0eC0+b3V0X3R5cGUgJiBJODBfSFdfVFJHKSkKPiAt CQlkaXNhYmxlX2lycV9ub3N5bmMoY3R4LT50ZV9pcnEpOwo+ICsJCWRpc2FibGVfaXJxX25vc3lu YyhjdHgtPmlycV90ZSk7Cj4gIAlkaXNhYmxlX2lycV9ub3N5bmMoY3R4LT5pcnEpOwo+ICAKPiAg CXdyaXRlbCgwLCBjdHgtPmFkZHIgKyBERUNPTl9WSURJTlRDT04wKTsKPiBAQCAtMTQwLDcgKzE0 MSw3IEBAIHN0YXRpYyB1MzIgZGVjb25fZ2V0X2ZyYW1lX2NvdW50KHN0cnVjdCBkZWNvbl9jb250 ZXh0ICpjdHgsIGJvb2wgZW5kKQo+ICAKPiAgCXN3aXRjaCAoc3RhdHVzICYgKFZJRENPTjFfVlNU QVRVU19NQVNLIHwgVklEQ09OMV9JODBfQUNUSVZFKSkgewo+ICAJY2FzZSBWSURDT04xX1ZTVEFU VVNfVlM6Cj4gLQkJaWYgKCEoY3R4LT5vdXRfdHlwZSAmIElGVFlQRV9JODApKQo+ICsJCWlmICgh KGN0eC0+Y3J0Yy0+aTgwX21vZGUpKQo+ICAJCQktLWZybTsKPiAgCQlicmVhazsKPiAgCWNhc2Ug VklEQ09OMV9WU1RBVFVTX0JQOgo+IEBAIC0xNjcsNyArMTY4LDcgQEAgc3RhdGljIHUzMiBkZWNv bl9nZXRfdmJsYW5rX2NvdW50ZXIoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKPiAgCj4g IHN0YXRpYyB2b2lkIGRlY29uX3NldHVwX3RyaWdnZXIoc3RydWN0IGRlY29uX2NvbnRleHQgKmN0 eCkKPiAgewo+IC0JaWYgKCEoY3R4LT5vdXRfdHlwZSAmIChJRlRZUEVfSTgwIHwgSTgwX0hXX1RS RykpKQo+ICsJaWYgKCFjdHgtPmNydGMtPmk4MF9tb2RlICYmICEoY3R4LT5vdXRfdHlwZSAmIEk4 MF9IV19UUkcpKQo+ICAJCXJldHVybjsKPiAgCj4gIAlpZiAoIShjdHgtPm91dF90eXBlICYgSTgw X0hXX1RSRykpIHsKPiBAQCAtMjA3LDcgKzIwOCw3IEBAIHN0YXRpYyB2b2lkIGRlY29uX2NvbW1p dChzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQo+ICAJdmFsID0gVklET1VUX0xDRF9PTjsK PiAgCWlmIChpbnRlcmxhY2VkKQo+ICAJCXZhbCB8PSBWSURPVVRfSU5URVJMQUNFX0VOX0Y7Cj4g LQlpZiAoY3R4LT5vdXRfdHlwZSAmIElGVFlQRV9JODApIHsKPiArCWlmIChjcnRjLT5pODBfbW9k ZSkgewo+ICAJCXZhbCB8PSBWSURPVVRfQ09NTUFORF9JRjsKPiAgCX0gZWxzZSB7Cj4gIAkJdmFs IHw9IFZJRE9VVF9SR0JfSUY7Cj4gQEAgLTIyMyw3ICsyMjQsNyBAQCBzdGF0aWMgdm9pZCBkZWNv bl9jb21taXQoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKPiAgCQkJVklEVENPTjJfSE9a VkFMKG0tPmhkaXNwbGF5IC0gMSk7Cj4gIAl3cml0ZWwodmFsLCBjdHgtPmFkZHIgKyBERUNPTl9W SURUQ09OMik7Cj4gIAo+IC0JaWYgKCEoY3R4LT5vdXRfdHlwZSAmIElGVFlQRV9JODApKSB7Cj4g KwlpZiAoIWNydGMtPmk4MF9tb2RlKSB7Cj4gIAkJaW50IHZicCA9IG0tPmNydGNfdnRvdGFsIC0g bS0+Y3J0Y192c3luY19lbmQ7Cj4gIAkJaW50IHZmcCA9IG0tPmNydGNfdnN5bmNfc3RhcnQgLSBt LT5jcnRjX3ZkaXNwbGF5Owo+ICAKPiBAQCAtNDU2LDcgKzQ1Nyw3IEBAIHN0YXRpYyB2b2lkIGRl Y29uX2Rpc2FibGUoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKPiAgCWludCBpOwo+ICAK PiAgCWlmICghKGN0eC0+b3V0X3R5cGUgJiBJODBfSFdfVFJHKSkKPiAtCQlzeW5jaHJvbml6ZV9p cnEoY3R4LT50ZV9pcnEpOwo+ICsJCXN5bmNocm9uaXplX2lycShjdHgtPmlycV90ZSk7Cj4gIAlz eW5jaHJvbml6ZV9pcnEoY3R4LT5pcnEpOwo+ICAKPiAgCS8qCj4gQEAgLTUxMSw2ICs1MTIsMjIg QEAgc3RhdGljIHZvaWQgZGVjb25fY2xlYXJfY2hhbm5lbHMoc3RydWN0IGV4eW5vc19kcm1fY3J0 YyAqY3J0YykKPiAgCQljbGtfZGlzYWJsZV91bnByZXBhcmUoY3R4LT5jbGtzW2ldKTsKPiAgfQo+ ICAKPiArc3RhdGljIGludCBkZWNvbl9hdG9taWNfY2hlY2soc3RydWN0IGV4eW5vc19kcm1fY3J0 YyAqY3J0YywKPiArCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQo+ICt7Cj4gKwlzdHJ1 Y3QgZGVjb25fY29udGV4dCAqY3R4ID0gY3J0Yy0+Y3R4Owo+ICsKPiArCWN0eC0+aXJxID0gY3J0 Yy0+aTgwX21vZGUgPyBjdHgtPmlycV9sY2Rfc3lzIDogY3R4LT5pcnFfdnN5bmM7Cj4gKwo+ICsJ aWYgKGN0eC0+aXJxKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCWRldl9lcnIoY3R4LT5kZXYsICJQ YW5lbCByZXF1aXJlcyAlcyBtb2RlLCBidXQgYXBwcm9wcmlhdGUgaW50ZXJydXB0IGlzIG5vdCBw cm92aWRlZC5cbiIsCj4gKwkJCWNydGMtPmk4MF9tb2RlID8gImNvbW1hbmQiIDogInZpZGVvIik7 Cj4gKwo+ICsJcmV0dXJuIC1FSU5WQUw7Cj4gK30KPiArCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZXh5bm9zX2RybV9jcnRjX29wcyBkZWNvbl9jcnRjX29wcyA9IHsKPiAgCS5lbmFibGUJCQk9IGRl Y29uX2VuYWJsZSwKPiAgCS5kaXNhYmxlCQk9IGRlY29uX2Rpc2FibGUsCj4gQEAgLTUyMSw2ICs1 MzgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGV4eW5vc19kcm1fY3J0Y19vcHMgZGVjb25fY3J0 Y19vcHMgPSB7Cj4gIAkudXBkYXRlX3BsYW5lCQk9IGRlY29uX3VwZGF0ZV9wbGFuZSwKPiAgCS5k aXNhYmxlX3BsYW5lCQk9IGRlY29uX2Rpc2FibGVfcGxhbmUsCj4gIAkuYXRvbWljX2ZsdXNoCQk9 IGRlY29uX2F0b21pY19mbHVzaCwKPiArCS5hdG9taWNfY2hlY2sJCT0gZGVjb25fYXRvbWljX2No ZWNrLAo+ICB9Owo+ICAKPiAgc3RhdGljIGludCBkZWNvbl9iaW5kKHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQo+IEBAIC02NzAsMTkgKzY4OCwy MiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBleHlub3M1NDMzX2RlY29uX2Ry aXZlcl9kdF9tYXRjaFtdID0gewo+ICBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBleHlub3M1NDMz X2RlY29uX2RyaXZlcl9kdF9tYXRjaCk7Cj4gIAo+ICBzdGF0aWMgaW50IGRlY29uX2NvbmZfaXJx KHN0cnVjdCBkZWNvbl9jb250ZXh0ICpjdHgsIGNvbnN0IGNoYXIgKm5hbWUsCj4gLQkJaXJxX2hh bmRsZXJfdCBoYW5kbGVyLCB1bnNpZ25lZCBsb25nIGludCBmbGFncywgYm9vbCByZXF1aXJlZCkK PiArCQlpcnFfaGFuZGxlcl90IGhhbmRsZXIsIHVuc2lnbmVkIGxvbmcgaW50IGZsYWdzKQo+ICB7 Cj4gIAlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2ID0gdG9fcGxhdGZvcm1fZGV2aWNlKGN0 eC0+ZGV2KTsKPiAgCWludCByZXQsIGlycSA9IHBsYXRmb3JtX2dldF9pcnFfYnluYW1lKHBkZXYs IG5hbWUpOwo+ICAKPiAgCWlmIChpcnEgPCAwKSB7Cj4gLQkJaWYgKGlycSA9PSAtRVBST0JFX0RF RkVSKQo+ICsJCXN3aXRjaCAoaXJxKSB7Cj4gKwkJY2FzZSAtRVBST0JFX0RFRkVSOgo+ICsJCQly ZXR1cm4gaXJxOwo+ICsJCWNhc2UgLUVOT0RBVEE6Cj4gKwkJY2FzZSAtRU5YSU86Cj4gKwkJCXJl dHVybiAwOwo+ICsJCWRlZmF1bHQ6Cj4gKwkJCWRldl9lcnIoY3R4LT5kZXYsICJJUlEgJXMgZ2V0 IGZhaWxlZCwgJWRcbiIsIG5hbWUsIGlycSk7Cj4gIAkJCXJldHVybiBpcnE7Cj4gLQkJaWYgKHJl cXVpcmVkKQo+IC0JCQlkZXZfZXJyKGN0eC0+ZGV2LCAiY2Fubm90IGdldCAlcyBJUlFcbiIsIG5h bWUpOwo+IC0JCWVsc2UKPiAtCQkJaXJxID0gMDsKPiAtCQlyZXR1cm4gaXJxOwo+ICsJCX0KPiAg CX0KPiAgCWlycV9zZXRfc3RhdHVzX2ZsYWdzKGlycSwgSVJRX05PQVVUT0VOKTsKPiAgCXJldCA9 IGRldm1fcmVxdWVzdF9pcnEoY3R4LT5kZXYsIGlycSwgaGFuZGxlciwgZmxhZ3MsICJkcm1fZGVj b24iLCBjdHgpOwo+IEBAIC03MTAsMTEgKzczMSw4IEBAIHN0YXRpYyBpbnQgZXh5bm9zNTQzM19k ZWNvbl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAJY3R4LT5vdXRfdHlw ZSA9ICh1bnNpZ25lZCBsb25nKW9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YShkZXYpOwo+ICAJc3Bp bl9sb2NrX2luaXQoJmN0eC0+dmJsYW5rX2xvY2spOwo+ICAKPiAtCWlmIChjdHgtPm91dF90eXBl ICYgSUZUWVBFX0hETUkpIHsKPiArCWlmIChjdHgtPm91dF90eXBlICYgSUZUWVBFX0hETUkpCj4g IAkJY3R4LT5maXJzdF93aW4gPSAxOwo+IC0JfSBlbHNlIGlmIChvZl9nZXRfY2hpbGRfYnlfbmFt ZShkZXYtPm9mX25vZGUsICJpODAtaWYtdGltaW5ncyIpKSB7Cj4gLQkJY3R4LT5vdXRfdHlwZSB8 PSBJRlRZUEVfSTgwOwo+IC0JfQo+ICAKPiAgCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGRl Y29uX2Nsa3NfbmFtZSk7IGkrKykgewo+ICAJCXN0cnVjdCBjbGsgKmNsazsKPiBAQCAtNzM4LDI1 ICs3NTYsMjMgQEAgc3RhdGljIGludCBleHlub3M1NDMzX2RlY29uX3Byb2JlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAkJcmV0dXJuIFBUUl9FUlIoY3R4LT5hZGRyKTsKPiAgCX0K PiAgCj4gLQlpZiAoY3R4LT5vdXRfdHlwZSAmIElGVFlQRV9JODApIHsKPiAtCQlyZXQgPSBkZWNv bl9jb25mX2lycShjdHgsICJsY2Rfc3lzIiwgZGVjb25faXJxX2hhbmRsZXIsIDAsIHRydWUpOwo+ IC0JCWlmIChyZXQgPCAwKQo+IC0JCQlyZXR1cm4gcmV0Owo+IC0JCWN0eC0+aXJxID0gcmV0Owo+ ICsJcmV0ID0gZGVjb25fY29uZl9pcnEoY3R4LCAidnN5bmMiLCBkZWNvbl9pcnFfaGFuZGxlciwg MCk7Cj4gKwlpZiAocmV0IDwgMCkKPiArCQlyZXR1cm4gcmV0Owo+ICsJY3R4LT5pcnFfdnN5bmMg PSByZXQ7Cj4gIAo+IC0JCXJldCA9IGRlY29uX2NvbmZfaXJxKGN0eCwgInRlIiwgZGVjb25fdGVf aXJxX2hhbmRsZXIsCj4gLQkJCQkgICAgIElSUUZfVFJJR0dFUl9SSVNJTkcsIGZhbHNlKTsKPiAt CQlpZiAocmV0IDwgMCkKPiAtCQkJcmV0dXJuIHJldDsKPiAtCQlpZiAocmV0KSB7Cj4gLQkJCWN0 eC0+dGVfaXJxID0gcmV0Owo+IC0JCQljdHgtPm91dF90eXBlICY9IH5JODBfSFdfVFJHOwo+IC0J CX0KPiAtCX0gZWxzZSB7Cj4gLQkJcmV0ID0gZGVjb25fY29uZl9pcnEoY3R4LCAidnN5bmMiLCBk ZWNvbl9pcnFfaGFuZGxlciwgMCwgdHJ1ZSk7Cj4gLQkJaWYgKHJldCA8IDApCj4gLQkJCXJldHVy biByZXQ7Cj4gLQkJY3R4LT5pcnEgPSByZXQ7Cj4gKwlyZXQgPSBkZWNvbl9jb25mX2lycShjdHgs ICJsY2Rfc3lzIiwgZGVjb25faXJxX2hhbmRsZXIsIDApOwo+ICsJaWYgKHJldCA8IDApCj4gKwkJ cmV0dXJuIHJldDsKPiArCWN0eC0+aXJxX2xjZF9zeXMgPSByZXQ7Cj4gKwo+ICsJcmV0ID0gZGVj b25fY29uZl9pcnEoY3R4LCAidGUiLCBkZWNvbl90ZV9pcnFfaGFuZGxlciwKPiArCQkJSVJRRl9U UklHR0VSX1JJU0lORyk7Cj4gKwlpZiAocmV0IDwgMCkKPiArCQlyZXR1cm4gcmV0Owo+ICsJaWYg KHJldCkgewo+ICsJCWN0eC0+aXJxX3RlID0gcmV0Owo+ICsJCWN0eC0+b3V0X3R5cGUgJj0gfkk4 MF9IV19UUkc7Cj4gIAl9Cj4gIAo+ICAJaWYgKGN0eC0+b3V0X3R5cGUgJiBJODBfSFdfVFJHKSB7 Cj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=