From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tobias Jakobi Subject: Re: [PATCH v3] drm/exynos: mixer: configure layers once in mixer_atomic_flush() Date: Tue, 27 Sep 2016 13:22:12 +0200 Message-ID: <57EA5664.3040106@math.uni-bielefeld.de> References: <1474889789-26721-1-git-send-email-tjakobi@math.uni-bielefeld.de> <57EA0D68.401@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <57EA0D68.401@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Inki Dae , linux-samsung-soc@vger.kernel.org Cc: dri-devel@lists.freedesktop.org, m.szyprowski@samsung.com List-Id: linux-samsung-soc@vger.kernel.org SGVsbG8gSW5raSwKCgpJbmtpIERhZSB3cm90ZToKPiAyMDE264WEIDA57JuUIDI27J28IDIwOjM2 7JeQIFRvYmlhcyBKYWtvYmkg7J20KOqwgCkg7JO0IOq4gDoKPj4gT25seSBtYW5pcHVsYXRlIHRo ZSBNWFJfQ0ZHIGFuZCBNWFJfTEFZRVJfQ0ZHIHJlZ2lzdGVycyBvbmNlCj4+IGluIG1peGVyX2Nm Z19sYXllcigpLgo+PiBUcmlnZ2VyIHRoaXMgdmlhIGF0b21pYyBmbHVzaC4KPj4KPj4gQ2hhbmdl cyBpbiB2MjoKPj4gLSBpc3N1ZSBtaXhlcl9jZmdfbGF5ZXIoKSBpbiBtaXhlcl9kaXNhYmxlKCkK Pj4gLSByZW5hbWUgZmllbGRzIGFzIHN1Z2dlc3RlZCBieSBBbmRyemVqCj4+IC0gYWRkZWQgZG9j dSB0byBtaXhlciBjb250ZXh0IHN0cnVjdAo+PiAtIHNpbXBsaWZ5IG1peGVyX3dpbl9yZXNldCgp IGFzIHdlbGwKPj4KPj4gQ2hhbmdlcyBpbiB2MzoKPj4gLSBzaW1wbGlmeSBzb21lIGNvbmRpdGlv bnMgYXMgc3VnZ2VzdGVkIGJ5IElua2kKPj4gLSBhZGQgZG9jdSB0byBtaXhlcl9jZmdfbGF5ZXIo KQo+PiAtIGZvbGQgc3dpdGNoIHN0YXRlbWVudHMgaW50byBhIHNpbmdsZSBvbmUKPj4KPj4gU2ln bmVkLW9mZi1ieTogVG9iaWFzIEpha29iaSA8dGpha29iaUBtYXRoLnVuaS1iaWVsZWZlbGQuZGU+ Cj4+IC0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfbWl4ZXIuYyB8IDEzNSAr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vZXh5 bm9zL3JlZ3MtbWl4ZXIuaCAgIHwgICAyICsKPj4gIDIgZmlsZXMgY2hhbmdlZCwgOTIgaW5zZXJ0 aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZXh5bm9zL2V4eW5vc19taXhlci5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3Nf bWl4ZXIuYwo+PiBpbmRleCAxZTc4ZDU3Li40ZjA2ZjRkIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vZXh5bm9zL2V4eW5vc19taXhlci5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9l eHlub3MvZXh5bm9zX21peGVyLmMKPj4gQEAgLTkzLDEyICs5MywyNSBAQCBzdGF0aWMgY29uc3Qg dWludDMyX3QgdnBfZm9ybWF0c1tdID0gewo+PiAgCURSTV9GT1JNQVRfTlYyMSwKPj4gIH07Cj4+ ICAKPj4gKy8qCj4+ICsgKiBNaXhlciBjb250ZXh0IHN0cnVjdHVyZS4KPj4gKyAqCj4+ICsgKiBA Y3J0YzogVGhlIEhETUkgQ1JUQyBhdHRhY2hlZCB0byB0aGUgbWl4ZXIuCj4+ICsgKiBAcGxhbmVz OiBBcnJheSBvZiBwbGFuZSBvYmplY3RzIGZvciBlYWNoIG9mIHRoZSBtaXhlciB3aW5kb3dzLgo+ PiArICogQGFjdGl2ZV93aW5kb3dzOiBDYWNoZSBvZiB0aGUgbWl4ZXIncyBoYXJkd2FyZSBzdGF0 ZS4KPj4gKyAqICAgICAgIFRyYWNrcyB3aGljaCBtaXhlciB3aW5kb3dzIGFyZSBhY3RpdmUvaW5h Y3RpdmUuCj4+ICsgKiBAcGlwZTogVGhlIENSVEMgaW5kZXguCj4+ICsgKiBAZmxhZ3M6IEJpdGZp ZWxkIGJ1aWxkIGZyb20gdGhlIG1peGVyX2ZsYWdfYml0cyBlbnVtZXJhdG9yLgo+PiArICogQG1p eGVyX3Jlc291cmNlczogQSBzdHJ1Y3QgY29udGFpbmluZyByZWdpc3RlcnMsIGNsb2NrcywgZXRj Lgo+PiArICogQG14cl92ZXI6IFRoZSBoYXJkd2FyZSByZXZpc2lvbi92ZXJzaW9uIG9mIHRoZSBt aXhlci4KPj4gKyAqLwo+PiAgc3RydWN0IG1peGVyX2NvbnRleHQgewo+PiAgCXN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXY7Cj4+ICAJc3RydWN0IGRldmljZQkJKmRldjsKPj4gIAlzdHJ1Y3Qg ZHJtX2RldmljZQkqZHJtX2RldjsKPj4gIAlzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjCSpjcnRjOwo+ PiAgCXN0cnVjdCBleHlub3NfZHJtX3BsYW5lCXBsYW5lc1tNSVhFUl9XSU5fTlJdOwo+PiArCXVu c2lnbmVkIGxvbmcJCWFjdGl2ZV93aW5kb3dzOwo+PiAgCWludAkJCXBpcGU7Cj4+ICAJdW5zaWdu ZWQgbG9uZwkJZmxhZ3M7Cj4+ICAKPj4gQEAgLTQxOCwzNyArNDMxLDcwIEBAIHN0YXRpYyB2b2lk IG1peGVyX2NmZ19yZ2JfZm10KHN0cnVjdCBtaXhlcl9jb250ZXh0ICpjdHgsIHVuc2lnbmVkIGlu dCBoZWlnaHQpCj4+ICAJbWl4ZXJfcmVnX3dyaXRlbWFzayhyZXMsIE1YUl9DRkcsIHZhbCwgTVhS X0NGR19SR0JfRk1UX01BU0spOwo+PiAgfQo+PiAgCj4+IC1zdGF0aWMgdm9pZCBtaXhlcl9jZmdf bGF5ZXIoc3RydWN0IG1peGVyX2NvbnRleHQgKmN0eCwgdW5zaWduZWQgaW50IHdpbiwKPj4gLQkJ CSAgICB1bnNpZ25lZCBpbnQgcHJpb3JpdHksIGJvb2wgZW5hYmxlKQo+PiArLyoqCj4+ICsgKiBt aXhlcl9jZmdfbGF5ZXIgLSBhcHBseSBsYXllciBjb25maWd1cmF0aW9uIHRvIGhhcmR3YXJlCj4+ ICsgKiBAY3R4OiBtaXhlciBjb250ZXh0Cj4+ICsgKgo+PiArICogVGhpcyBjb25maWd1cmVzIHRo ZSBNWFJfQ0ZHIGFuZCBNWFJfTEFZRVJfQ0ZHIGhhcmR3YXJlIHJlZ2lzdGVycwo+PiArICogdXNp bmcgdGhlICdhY3RpdmVfd2luZG93cycgZmllbGQgb2YgdGhlIHRoZSBtaXhlciBjb250ZW50LCBh bmQKPj4gKyAqIHRoZSBwaXhlbCBmb3JtYXQgb2YgdGhlIGZyYW1lYnVmZmVycyBhc3NvY2lhdGVk IHdpdGggdGhlIGVuYWJsZWQKPj4gKyAqIHdpbmRvd3MuCj4+ICsgKgo+PiArICogSGFzIHRvIGJl IGNhbGxlZCB1bmRlciBtaXhlciBsb2NrLgo+PiArICovCj4+ICtzdGF0aWMgdm9pZCBtaXhlcl9j ZmdfbGF5ZXIoc3RydWN0IG1peGVyX2NvbnRleHQgKmN0eCkKPj4gIHsKPj4gIAlzdHJ1Y3QgbWl4 ZXJfcmVzb3VyY2VzICpyZXMgPSAmY3R4LT5taXhlcl9yZXM7Cj4+IC0JdTMyIHZhbCA9IGVuYWJs ZSA/IH4wIDogMDsKPj4gLQo+PiAtCXN3aXRjaCAod2luKSB7Cj4+IC0JY2FzZSAwOgo+PiAtCQlt aXhlcl9yZWdfd3JpdGVtYXNrKHJlcywgTVhSX0NGRywgdmFsLCBNWFJfQ0ZHX0dSUDBfRU5BQkxF KTsKPj4gLQkJbWl4ZXJfcmVnX3dyaXRlbWFzayhyZXMsIE1YUl9MQVlFUl9DRkcsCj4+IC0JCQkJ ICAgIE1YUl9MQVlFUl9DRkdfR1JQMF9WQUwocHJpb3JpdHkpLAo+PiAtCQkJCSAgICBNWFJfTEFZ RVJfQ0ZHX0dSUDBfTUFTSyk7Cj4+IC0JCWJyZWFrOwo+PiAtCWNhc2UgMToKPj4gLQkJbWl4ZXJf cmVnX3dyaXRlbWFzayhyZXMsIE1YUl9DRkcsIHZhbCwgTVhSX0NGR19HUlAxX0VOQUJMRSk7Cj4+ IC0JCW1peGVyX3JlZ193cml0ZW1hc2socmVzLCBNWFJfTEFZRVJfQ0ZHLAo+PiAtCQkJCSAgICBN WFJfTEFZRVJfQ0ZHX0dSUDFfVkFMKHByaW9yaXR5KSwKPj4gLQkJCQkgICAgTVhSX0xBWUVSX0NG R19HUlAxX01BU0spOwo+PiArCXVuc2lnbmVkIGludCB3aW47Cj4+ICAKPj4gLQkJYnJlYWs7Cj4+ IC0JY2FzZSBWUF9ERUZBVUxUX1dJTjoKPj4gLQkJaWYgKHRlc3RfYml0KE1YUl9CSVRfVlBfRU5B QkxFRCwgJmN0eC0+ZmxhZ3MpKSB7Cj4+IC0JCQl2cF9yZWdfd3JpdGVtYXNrKHJlcywgVlBfRU5B QkxFLCB2YWwsIFZQX0VOQUJMRV9PTik7Cj4+IC0JCQltaXhlcl9yZWdfd3JpdGVtYXNrKHJlcywg TVhSX0NGRywgdmFsLAo+PiAtCQkJCU1YUl9DRkdfVlBfRU5BQkxFKTsKPj4gLQkJCW1peGVyX3Jl Z193cml0ZW1hc2socmVzLCBNWFJfTEFZRVJfQ0ZHLAo+PiAtCQkJCQkgICAgTVhSX0xBWUVSX0NG R19WUF9WQUwocHJpb3JpdHkpLAo+PiAtCQkJCQkgICAgTVhSX0xBWUVSX0NGR19WUF9NQVNLKTsK Pj4gKwlzdHJ1Y3QgZXh5bm9zX2RybV9wbGFuZV9zdGF0ZSAqc3RhdGU7Cj4+ICsJc3RydWN0IGRy bV9mcmFtZWJ1ZmZlciAqZmI7Cj4+ICsJdW5zaWduZWQgaW50IHByaW9yaXR5Owo+PiArCXUzMiBt eHJfY2ZnID0gMCwgbXhyX2xheWVyX2NmZyA9IDAsIHZwX2VuYWJsZSA9IDA7Cj4+ICsJYm9vbCBl bmFibGU7Cj4+ICsKPj4gKwlmb3IgKHdpbiA9IDA7IHdpbiA8IE1JWEVSX1dJTl9OUjsgKyt3aW4p IHsKPj4gKwkJc3RhdGUgPSB0b19leHlub3NfcGxhbmVfc3RhdGUoY3R4LT5wbGFuZXNbd2luXS5i YXNlLnN0YXRlKTsKPj4gKwkJZmIgPSBzdGF0ZS0+ZmI7Cj4+ICsKPj4gKwkJcHJpb3JpdHkgPSBz dGF0ZS0+YmFzZS5ub3JtYWxpemVkX3pwb3MgKyAxOwo+PiArCQllbmFibGUgPSB0ZXN0X2JpdCh3 aW4sICZjdHgtPmFjdGl2ZV93aW5kb3dzKTsKPj4gKwo+PiArCQlpZiAoIWVuYWJsZSkKPj4gKwkJ CWNvbnRpbnVlOwo+PiArCj4+ICsJCUJVR19PTighZmIpOwo+PiArCj4+ICsJCS8qCj4+ICsJCSAq IFRPRE86IERvbid0IGVuYWJsZSBhbHBoYSBibGVuZGluZyBmb3IgdGhlIGJvdHRvbSB3aW5kb3cu Cj4+ICsJCSAqLwo+PiArCQlzd2l0Y2ggKHdpbikgewo+PiArCQljYXNlIDA6Cj4+ICsJCQlteHJf Y2ZnIHw9ICBNWFJfQ0ZHX0dSUDBfRU5BQkxFOwo+PiArCQkJbXhyX2xheWVyX2NmZyB8PSBNWFJf TEFZRVJfQ0ZHX0dSUDBfVkFMKHByaW9yaXR5KTsKPj4gKwkJCW1peGVyX2NmZ19nZnhfYmxlbmQo Y3R4LCB3aW4sIGlzX2FscGhhX2Zvcm1hdChmYi0+cGl4ZWxfZm9ybWF0KSk7Cj4+ICsJCQlicmVh azsKPj4gKwo+PiArCQljYXNlIDE6Cj4+ICsJCQlteHJfY2ZnIHw9ICBNWFJfQ0ZHX0dSUDFfRU5B QkxFOwo+PiArCQkJbXhyX2xheWVyX2NmZyB8PSBNWFJfTEFZRVJfQ0ZHX0dSUDFfVkFMKHByaW9y aXR5KTsKPj4gKwkJCW1peGVyX2NmZ19nZnhfYmxlbmQoY3R4LCB3aW4sIGlzX2FscGhhX2Zvcm1h dChmYi0+cGl4ZWxfZm9ybWF0KSk7Cj4+ICsJCQlicmVhazsKPj4gKwo+PiArCQljYXNlIFZQX0RF RkFVTFRfV0lOOgo+PiArCQkJdnBfZW5hYmxlID0gVlBfRU5BQkxFX09OOwo+PiArCQkJbXhyX2Nm ZyB8PSAgTVhSX0NGR19WUF9FTkFCTEU7Cj4+ICsJCQlteHJfbGF5ZXJfY2ZnIHw9IE1YUl9MQVlF Ul9DRkdfVlBfVkFMKHByaW9yaXR5KTsKPj4gKwkJCW1peGVyX2NmZ192cF9ibGVuZChjdHgpOwo+ PiArCQkJYnJlYWs7Cj4+ICAJCX0KPj4gLQkJYnJlYWs7Cj4+ICAJfQo+PiArCj4+ICsJaWYgKHRl c3RfYml0KE1YUl9CSVRfVlBfRU5BQkxFRCwgJmN0eC0+ZmxhZ3MpKQo+PiArCQl2cF9yZWdfd3Jp dGVtYXNrKHJlcywgVlBfRU5BQkxFLCB2cF9lbmFibGUsIFZQX0VOQUJMRV9PTik7Cj4+ICsKPj4g KwltaXhlcl9yZWdfd3JpdGVtYXNrKHJlcywgTVhSX0NGRywgbXhyX2NmZywgTVhSX0NGR19FTkFC TEVfTUFTSyk7Cj4+ICsJbWl4ZXJfcmVnX3dyaXRlbWFzayhyZXMsIE1YUl9MQVlFUl9DRkcsIG14 cl9sYXllcl9jZmcsIE1YUl9MQVlFUl9DRkdfTUFTSyk7Cj4+ICB9Cj4+ICAKPj4gIHN0YXRpYyB2 b2lkIG1peGVyX3J1bihzdHJ1Y3QgbWl4ZXJfY29udGV4dCAqY3R4KQo+PiBAQCAtNDc4LDcgKzUy NCw2IEBAIHN0YXRpYyB2b2lkIHZwX3ZpZGVvX2J1ZmZlcihzdHJ1Y3QgbWl4ZXJfY29udGV4dCAq Y3R4LAo+PiAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gJnN0YXRlLT5iYXNlLmNy dGMtPnN0YXRlLT5hZGp1c3RlZF9tb2RlOwo+PiAgCXN0cnVjdCBtaXhlcl9yZXNvdXJjZXMgKnJl cyA9ICZjdHgtPm1peGVyX3JlczsKPj4gIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0 YXRlLT5mYjsKPj4gLQl1bnNpZ25lZCBpbnQgcHJpb3JpdHkgPSBzdGF0ZS0+YmFzZS5ub3JtYWxp emVkX3pwb3MgKyAxOwo+PiAgCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4+ICAJZG1hX2FkZHJfdCBs dW1hX2FkZHJbMl0sIGNocm9tYV9hZGRyWzJdOwo+PiAgCWJvb2wgdGlsZWRfbW9kZSA9IGZhbHNl Owo+PiBAQCAtNTYzLDggKzYwOCw2IEBAIHN0YXRpYyB2b2lkIHZwX3ZpZGVvX2J1ZmZlcihzdHJ1 Y3QgbWl4ZXJfY29udGV4dCAqY3R4LAo+PiAgCj4+ICAJbWl4ZXJfY2ZnX3NjYW4oY3R4LCBtb2Rl LT52ZGlzcGxheSk7Cj4+ICAJbWl4ZXJfY2ZnX3JnYl9mbXQoY3R4LCBtb2RlLT52ZGlzcGxheSk7 Cj4+IC0JbWl4ZXJfY2ZnX2xheWVyKGN0eCwgcGxhbmUtPmluZGV4LCBwcmlvcml0eSwgdHJ1ZSk7 Cj4+IC0JbWl4ZXJfY2ZnX3ZwX2JsZW5kKGN0eCk7Cj4gCj4gWW91IHJlbW92ZWQgdGhlIGZ1bmN0 aW9uIGNhbGwgdG8gc2V0IE1YUl9DRkcgYW5kIE1YUl9MQVlFUl9DRkcgcmVnaXN0ZXJzIHNvIHdo YXQgaWYgbGFnYWN5IHNldCBwbGFuZSBpb2N0bCBpcyBjYWxsZWQgYnkgdXNlciB1c2VyIHNwYWNl PyBXaGVyZSB0aGVzZSByZWdpc3RlciBhcmUgdXBkYXRlZD8KeWVzLCB5b3UncmUgcmlnaHQuIEkg Y29tcGxldGx5IGZvcmdvdCBhYm91dCB0aGUgbGVnYWN5IGNvZGVwYXRocy4gU29ycnkKYWJvdXQg dGhhdCEKCgoKCj4+ICAJbWl4ZXJfcnVuKGN0eCk7Cj4+ICAKPj4gIAlzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZyZXMtPnJlZ19zbG9jaywgZmxhZ3MpOwo+PiBAQCAtNTg4LDcgKzYzMSw2IEBAIHN0 YXRpYyB2b2lkIG1peGVyX2dyYXBoX2J1ZmZlcihzdHJ1Y3QgbWl4ZXJfY29udGV4dCAqY3R4LAo+ PiAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gJnN0YXRlLT5iYXNlLmNydGMtPnN0 YXRlLT5hZGp1c3RlZF9tb2RlOwo+PiAgCXN0cnVjdCBtaXhlcl9yZXNvdXJjZXMgKnJlcyA9ICZj dHgtPm1peGVyX3JlczsKPj4gIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRlLT5m YjsKPj4gLQl1bnNpZ25lZCBpbnQgcHJpb3JpdHkgPSBzdGF0ZS0+YmFzZS5ub3JtYWxpemVkX3pw b3MgKyAxOwo+PiAgCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4+ICAJdW5zaWduZWQgaW50IHdpbiA9 IHBsYW5lLT5pbmRleDsKPj4gIAl1bnNpZ25lZCBpbnQgeF9yYXRpbyA9IDAsIHlfcmF0aW8gPSAw Owo+PiBAQCAtNjgwLDggKzcyMiw2IEBAIHN0YXRpYyB2b2lkIG1peGVyX2dyYXBoX2J1ZmZlcihz dHJ1Y3QgbWl4ZXJfY29udGV4dCAqY3R4LAo+PiAgCj4+ICAJbWl4ZXJfY2ZnX3NjYW4oY3R4LCBt b2RlLT52ZGlzcGxheSk7Cj4+ICAJbWl4ZXJfY2ZnX3JnYl9mbXQoY3R4LCBtb2RlLT52ZGlzcGxh eSk7Cj4+IC0JbWl4ZXJfY2ZnX2xheWVyKGN0eCwgd2luLCBwcmlvcml0eSwgdHJ1ZSk7Cj4+IC0J bWl4ZXJfY2ZnX2dmeF9ibGVuZChjdHgsIHdpbiwgaXNfYWxwaGFfZm9ybWF0KGZiLT5waXhlbF9m b3JtYXQpKTsKPiAKPiBkaXR0by4KPiAKPj4gIAo+PiAgCS8qIGxheWVyIHVwZGF0ZSBtYW5kYXRv cnkgZm9yIG1peGVyIDE2LjAuMzMuMCAqLwo+PiAgCWlmIChjdHgtPm14cl92ZXIgPT0gTVhSX1ZF Ul8xNl8wXzMzXzAgfHwKPj4gQEAgLTcyNiw5ICs3NjYsNiBAQCBzdGF0aWMgdm9pZCBtaXhlcl93 aW5fcmVzZXQoc3RydWN0IG1peGVyX2NvbnRleHQgKmN0eCkKPj4gIAltaXhlcl9yZWdfd3JpdGVt YXNrKHJlcywgTVhSX1NUQVRVUywgTVhSX1NUQVRVU18xNl9CVVJTVCwKPj4gIAkJTVhSX1NUQVRV U19CVVJTVF9NQVNLKTsKPj4gIAo+PiAtCS8qIHJlc2V0IGRlZmF1bHQgbGF5ZXIgcHJpb3JpdHkg Ki8KPj4gLQltaXhlcl9yZWdfd3JpdGUocmVzLCBNWFJfTEFZRVJfQ0ZHLCAwKTsKPj4gLQo+PiAg CS8qIHNldHRpbmcgYmFja2dyb3VuZCBjb2xvciAqLwo+PiAgCW1peGVyX3JlZ193cml0ZShyZXMs IE1YUl9CR19DT0xPUjAsIDB4MDA4MDgwKTsKPj4gIAltaXhlcl9yZWdfd3JpdGUocmVzLCBNWFJf QkdfQ09MT1IxLCAweDAwODA4MCk7Cj4+IEBAIC03NDAsMTEgKzc3Nyw5IEBAIHN0YXRpYyB2b2lk IG1peGVyX3dpbl9yZXNldChzdHJ1Y3QgbWl4ZXJfY29udGV4dCAqY3R4KQo+PiAgCQl2cF9kZWZh dWx0X2ZpbHRlcihyZXMpOwo+PiAgCX0KPj4gIAo+PiAtCS8qIGRpc2FibGUgYWxsIGxheWVycyAq Lwo+PiAtCW1peGVyX3JlZ193cml0ZW1hc2socmVzLCBNWFJfQ0ZHLCAwLCBNWFJfQ0ZHX0dSUDBf RU5BQkxFKTsKPj4gLQltaXhlcl9yZWdfd3JpdGVtYXNrKHJlcywgTVhSX0NGRywgMCwgTVhSX0NG R19HUlAxX0VOQUJMRSk7Cj4+IC0JaWYgKHRlc3RfYml0KE1YUl9CSVRfVlBfRU5BQkxFRCwgJmN0 eC0+ZmxhZ3MpKQo+PiAtCQltaXhlcl9yZWdfd3JpdGVtYXNrKHJlcywgTVhSX0NGRywgMCwgTVhS X0NGR19WUF9FTkFCTEUpOwo+PiArCS8qIGRpc2FibGUgYWxsIGxheWVycyBhbmQgcmVzZXQgbGF5 ZXIgcHJpb3JpdHkgdG8gZGVmYXVsdCAqLwo+PiArCWN0eC0+YWN0aXZlX3dpbmRvd3MgPSAwOwo+ PiArCW1peGVyX2NmZ19sYXllcihjdHgpOwo+PiAgCj4+ICAJc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmcmVzLT5yZWdfc2xvY2ssIGZsYWdzKTsKPj4gIH0KPj4gQEAgLTk5NCwzMiArMTAyOSwzNiBA QCBzdGF0aWMgdm9pZCBtaXhlcl91cGRhdGVfcGxhbmUoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAq Y3J0YywKPj4gIAkJdnBfdmlkZW9fYnVmZmVyKG1peGVyX2N0eCwgcGxhbmUpOwo+PiAgCWVsc2UK Pj4gIAkJbWl4ZXJfZ3JhcGhfYnVmZmVyKG1peGVyX2N0eCwgcGxhbmUpOwo+PiArCj4+ICsJX19z ZXRfYml0KHBsYW5lLT5pbmRleCwgJm1peGVyX2N0eC0+YWN0aXZlX3dpbmRvd3MpOwo+PiAgfQo+ PiAgCj4+ICBzdGF0aWMgdm9pZCBtaXhlcl9kaXNhYmxlX3BsYW5lKHN0cnVjdCBleHlub3NfZHJt X2NydGMgKmNydGMsCj4+ICAJCQkJc3RydWN0IGV4eW5vc19kcm1fcGxhbmUgKnBsYW5lKQo+PiAg ewo+PiAgCXN0cnVjdCBtaXhlcl9jb250ZXh0ICptaXhlcl9jdHggPSBjcnRjLT5jdHg7Cj4+IC0J c3RydWN0IG1peGVyX3Jlc291cmNlcyAqcmVzID0gJm1peGVyX2N0eC0+bWl4ZXJfcmVzOwo+PiAt CXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4+ICAKPj4gIAlEUk1fREVCVUdfS01TKCJ3aW46ICVkXG4i LCBwbGFuZS0+aW5kZXgpOwo+PiAgCj4+ICAJaWYgKCF0ZXN0X2JpdChNWFJfQklUX1BPV0VSRUQs ICZtaXhlcl9jdHgtPmZsYWdzKSkKPj4gIAkJcmV0dXJuOwo+PiAgCj4+IC0Jc3Bpbl9sb2NrX2ly cXNhdmUoJnJlcy0+cmVnX3Nsb2NrLCBmbGFncyk7Cj4+IC0JbWl4ZXJfY2ZnX2xheWVyKG1peGVy X2N0eCwgcGxhbmUtPmluZGV4LCAwLCBmYWxzZSk7Cj4+IC0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmcmVzLT5yZWdfc2xvY2ssIGZsYWdzKTsKPj4gKwlfX2NsZWFyX2JpdChwbGFuZS0+aW5kZXgs ICZtaXhlcl9jdHgtPmFjdGl2ZV93aW5kb3dzKTsKPj4gIH0KPj4gIAo+PiAgc3RhdGljIHZvaWQg bWl4ZXJfYXRvbWljX2ZsdXNoKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMpCj4+ICB7Cj4+ ICAJc3RydWN0IG1peGVyX2NvbnRleHQgKm1peGVyX2N0eCA9IGNydGMtPmN0eDsKPj4gKwlzdHJ1 Y3QgbWl4ZXJfcmVzb3VyY2VzICpyZXMgPSAmbWl4ZXJfY3R4LT5taXhlcl9yZXM7Cj4+ICsJdW5z aWduZWQgbG9uZyBmbGFnczsKPj4gIAo+PiAgCWlmICghdGVzdF9iaXQoTVhSX0JJVF9QT1dFUkVE LCAmbWl4ZXJfY3R4LT5mbGFncykpCj4+ICAJCXJldHVybjsKPj4gIAo+PiArCXNwaW5fbG9ja19p cnFzYXZlKCZyZXMtPnJlZ19zbG9jaywgZmxhZ3MpOwo+PiArCW1peGVyX2NmZ19sYXllcihtaXhl cl9jdHgpOwo+IAo+IGF0b21pY19mbHVzaCBjYWxsYmFjayB3aWxsIGJlIHVzZWQgdG8gbWFrZSBz dXJlIHJlZ2lzdGVycyB0byBiZSB1cGRhdGVkIHRvIHRoZSByZWFsIGhhcmR3YXJlLiBTbyBjYWxs aW5nIG1peGVyX2NmZ19sYXllciBmdW5jdGlvbiBoZXJlIHdvdWxkbid0IGJlIHJlYXNvbmFibGUu ClBsZWFzZSB0aGUgc2VlIGRpc2N1c3Npb24gd2l0aCBBbmRyemVqIGZvciByZWZlcmVuY2UuIFRo ZSBpZGVhIG9mIHRoZQpwYXRjaCB3YXMgdG8gbW92ZSByZWdpc3RlciBtYW5pcHVsYXRpb24gdG8g YXRvbWljX2ZsdXNoKCkuCgpGb3IgYXRvbWljIHdlIGhhdmU6CigxKSBhdG9taWNfYmVnaW4oKQoo MikgYXRvbWljX3tkaXNhYmxlLHVwZGF0ZX1fcGxhbmUoKSwgcHJvYmFibHkgbXVsdGlwbGUgY2Fs bHMKKDMpIGF0b21pY19mbHVzaCgpCgpIZW5jZSB0aGUgaWRlYSB0byBtb3ZlIChtb3N0KSBtYW5p cHVsYXRpb24gb2YgTVhSX0NGRyBhbmQgTVhSX0xBWUVSX0NGRwp0byBtaXhlcl9hdG9taWNfZmx1 c2goKS4KCk9mIGNvdXJzZSB0aGlzIGRvZXNuJ3Qgd29yayB3aXRoIHRoZSBsZWdhY3kgY29kZXBh dGhzLiBJIG5lZWQgdG8gdGhpbmsKYWJvdXQgdGhpcyBzb21lIG1vcmUuIEZvciBub3csIHBsZWFz ZSBkcm9wIHRoZSBwYXRjaC4KCldpdGggYmVzdCB3aXNoZXMsClRvYmlhcwoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==