From mboxrd@z Thu Jan 1 00:00:00 1970 From: Inki Dae Subject: Re: [PATCH v3] drm/exynos: mixer: configure layers once in mixer_atomic_flush() Date: Thu, 29 Sep 2016 01:04:24 +0900 Message-ID: References: <1474889789-26721-1-git-send-email-tjakobi@math.uni-bielefeld.de> <57EA0D68.401@samsung.com> <57EA5664.3040106@math.uni-bielefeld.de> <130cf67d-4082-1e29-8f14-7c952c8a8012@samsung.com> <57EAA3C2.5000409@math.uni-bielefeld.de> <57EB014D.6010908@samsung.com> <57EB08B4.4070201@math.uni-bielefeld.de> <57EB1C37.9020905@samsung.com> <57EB8831.2000508@math.uni-bielefeld.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <57EB8831.2000508@math.uni-bielefeld.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Tobias Jakobi Cc: "linux-samsung-soc@vger.kernel.org" , DRI mailing list , Marek Szyprowski List-Id: linux-samsung-soc@vger.kernel.org MjAxNi0wOS0yOCAxODowNiBHTVQrMDk6MDAgVG9iaWFzIEpha29iaSA8dGpha29iaUBtYXRoLnVu aS1iaWVsZWZlbGQuZGU+Ogo+IEhlbGxvIElua2ksCj4KPgo+IElua2kgRGFlIHdyb3RlOgo+Pgo+ Pgo+PiAyMDE264WEIDA57JuUIDI47J28IDA5OjAz7JeQIFRvYmlhcyBKYWtvYmkg7J20KOqwgCkg 7JO0IOq4gDoKPj4+IEhleSBJbmtpLAo+Pj4KPj4+Cj4+PiBJbmtpIERhZSB3cm90ZToKPj4+Pgo+ Pj4+Cj4+Pj4gMjAxNuuFhCAwOeyblCAyOOydvCAwMTo1MuyXkCBUb2JpYXMgSmFrb2JpIOydtCjq sIApIOyTtCDquIA6Cj4+Pj4+IEhlbGxvIEFuZHJ6ZWosCj4+Pj4+Cj4+Pj4+Cj4+Pj4+IEFuZHJ6 ZWogSGFqZGEgd3JvdGU6Cj4+Pj4+PiBPbiAyNy4wOS4yMDE2IDEzOjIyLCBUb2JpYXMgSmFrb2Jp IHdyb3RlOgo+Pj4+Pj4+IEhlbGxvIElua2ksCj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+IElua2kg RGFlIHdyb3RlOgo+Pj4+Pj4+PiAyMDE264WEIDA57JuUIDI27J28IDIwOjM27JeQIFRvYmlhcyBK YWtvYmkg7J20KOqwgCkg7JO0IOq4gDoKPj4+Pj4+Pj4+IE9ubHkgbWFuaXB1bGF0ZSB0aGUgTVhS X0NGRyBhbmQgTVhSX0xBWUVSX0NGRyByZWdpc3RlcnMgb25jZQo+Pj4+Pj4+Pj4gaW4gbWl4ZXJf Y2ZnX2xheWVyKCkuCj4+Pj4+Pj4+PiBUcmlnZ2VyIHRoaXMgdmlhIGF0b21pYyBmbHVzaC4KPj4+ Pj4+Pj4+Cj4+Pj4+Pj4+PiBDaGFuZ2VzIGluIHYyOgo+Pj4+Pj4+Pj4gLSBpc3N1ZSBtaXhlcl9j ZmdfbGF5ZXIoKSBpbiBtaXhlcl9kaXNhYmxlKCkKPj4+Pj4+Pj4+IC0gcmVuYW1lIGZpZWxkcyBh cyBzdWdnZXN0ZWQgYnkgQW5kcnplago+Pj4+Pj4+Pj4gLSBhZGRlZCBkb2N1IHRvIG1peGVyIGNv bnRleHQgc3RydWN0Cj4+Pj4+Pj4+PiAtIHNpbXBsaWZ5IG1peGVyX3dpbl9yZXNldCgpIGFzIHdl bGwKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBDaGFuZ2VzIGluIHYzOgo+Pj4+Pj4+Pj4gLSBzaW1wbGlm eSBzb21lIGNvbmRpdGlvbnMgYXMgc3VnZ2VzdGVkIGJ5IElua2kKPj4+Pj4+Pj4+IC0gYWRkIGRv Y3UgdG8gbWl4ZXJfY2ZnX2xheWVyKCkKPj4+Pj4+Pj4+IC0gZm9sZCBzd2l0Y2ggc3RhdGVtZW50 cyBpbnRvIGEgc2luZ2xlIG9uZQo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFRv YmlhcyBKYWtvYmkgPHRqYWtvYmlAbWF0aC51bmktYmllbGVmZWxkLmRlPgo+Pj4+Pj4+Pj4gLS0t Cj4+Pj4+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfbWl4ZXIuYyB8IDEzNSAr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCj4+Pj4+Pj4+PiAgZHJpdmVycy9ncHUv ZHJtL2V4eW5vcy9yZWdzLW1peGVyLmggICB8ICAgMiArCj4+Pj4+Pj4+PiAgMiBmaWxlcyBjaGFu Z2VkLCA5MiBpbnNlcnRpb25zKCspLCA0NSBkZWxldGlvbnMoLSkKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfbWl4ZXIuYyBiL2Ry aXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX21peGVyLmMKPj4+Pj4+Pj4+IGluZGV4IDFlNzhk NTcuLjRmMDZmNGQgMTAwNjQ0Cj4+Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9z L2V4eW5vc19taXhlci5jCj4+Pj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4 eW5vc19taXhlci5jCj4+Pj4+Pj4+PiBAQCAtOTMsMTIgKzkzLDI1IEBAIHN0YXRpYyBjb25zdCB1 aW50MzJfdCB2cF9mb3JtYXRzW10gPSB7Cj4+Pj4+Pj4+PiAgICAgICAgRFJNX0ZPUk1BVF9OVjIx LAo+Pj4+Pj4+Pj4gIH07Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gKy8qCj4+Pj4+Pj4+PiArICogTWl4 ZXIgY29udGV4dCBzdHJ1Y3R1cmUuCj4+Pj4+Pj4+PiArICoKPj4+Pj4+Pj4+ICsgKiBAY3J0Yzog VGhlIEhETUkgQ1JUQyBhdHRhY2hlZCB0byB0aGUgbWl4ZXIuCj4+Pj4+Pj4+PiArICogQHBsYW5l czogQXJyYXkgb2YgcGxhbmUgb2JqZWN0cyBmb3IgZWFjaCBvZiB0aGUgbWl4ZXIgd2luZG93cy4K Pj4+Pj4+Pj4+ICsgKiBAYWN0aXZlX3dpbmRvd3M6IENhY2hlIG9mIHRoZSBtaXhlcidzIGhhcmR3 YXJlIHN0YXRlLgo+Pj4+Pj4+Pj4gKyAqICAgICAgIFRyYWNrcyB3aGljaCBtaXhlciB3aW5kb3dz IGFyZSBhY3RpdmUvaW5hY3RpdmUuCj4+Pj4+Pj4+PiArICogQHBpcGU6IFRoZSBDUlRDIGluZGV4 Lgo+Pj4+Pj4+Pj4gKyAqIEBmbGFnczogQml0ZmllbGQgYnVpbGQgZnJvbSB0aGUgbWl4ZXJfZmxh Z19iaXRzIGVudW1lcmF0b3IuCj4+Pj4+Pj4+PiArICogQG1peGVyX3Jlc291cmNlczogQSBzdHJ1 Y3QgY29udGFpbmluZyByZWdpc3RlcnMsIGNsb2NrcywgZXRjLgo+Pj4+Pj4+Pj4gKyAqIEBteHJf dmVyOiBUaGUgaGFyZHdhcmUgcmV2aXNpb24vdmVyc2lvbiBvZiB0aGUgbWl4ZXIuCj4+Pj4+Pj4+ PiArICovCj4+Pj4+Pj4+PiAgc3RydWN0IG1peGVyX2NvbnRleHQgewo+Pj4+Pj4+Pj4gICAgICAg IHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXY7Cj4+Pj4+Pj4+PiAgICAgICAgc3RydWN0IGRl dmljZSAgICAgICAgICAgKmRldjsKPj4+Pj4+Pj4+ICAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAg ICAgICAqZHJtX2RldjsKPj4+Pj4+Pj4+ICAgICAgICBzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICAq Y3J0YzsKPj4+Pj4+Pj4+ICAgICAgICBzdHJ1Y3QgZXh5bm9zX2RybV9wbGFuZSBwbGFuZXNbTUlY RVJfV0lOX05SXTsKPj4+Pj4+Pj4+ICsgICAgICB1bnNpZ25lZCBsb25nICAgICAgICAgICBhY3Rp dmVfd2luZG93czsKPj4+Pj4+Pj4+ICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICBwaXBl Owo+Pj4+Pj4+Pj4gICAgICAgIHVuc2lnbmVkIGxvbmcgICAgICAgICAgIGZsYWdzOwo+Pj4+Pj4+ Pj4KPj4+Pj4+Pj4+IEBAIC00MTgsMzcgKzQzMSw3MCBAQCBzdGF0aWMgdm9pZCBtaXhlcl9jZmdf cmdiX2ZtdChzdHJ1Y3QgbWl4ZXJfY29udGV4dCAqY3R4LCB1bnNpZ25lZCBpbnQgaGVpZ2h0KQo+ Pj4+Pj4+Pj4gICAgICAgIG1peGVyX3JlZ193cml0ZW1hc2socmVzLCBNWFJfQ0ZHLCB2YWwsIE1Y Ul9DRkdfUkdCX0ZNVF9NQVNLKTsKPj4+Pj4+Pj4+ICB9Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gLXN0 YXRpYyB2b2lkIG1peGVyX2NmZ19sYXllcihzdHJ1Y3QgbWl4ZXJfY29udGV4dCAqY3R4LCB1bnNp Z25lZCBpbnQgd2luLAo+Pj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgaW50IHByaW9yaXR5LCBib29sIGVuYWJsZSkKPj4+Pj4+Pj4+ICsvKioKPj4+Pj4+Pj4+ICsg KiBtaXhlcl9jZmdfbGF5ZXIgLSBhcHBseSBsYXllciBjb25maWd1cmF0aW9uIHRvIGhhcmR3YXJl Cj4+Pj4+Pj4+PiArICogQGN0eDogbWl4ZXIgY29udGV4dAo+Pj4+Pj4+Pj4gKyAqCj4+Pj4+Pj4+ PiArICogVGhpcyBjb25maWd1cmVzIHRoZSBNWFJfQ0ZHIGFuZCBNWFJfTEFZRVJfQ0ZHIGhhcmR3 YXJlIHJlZ2lzdGVycwo+Pj4+Pj4+Pj4gKyAqIHVzaW5nIHRoZSAnYWN0aXZlX3dpbmRvd3MnIGZp ZWxkIG9mIHRoZSB0aGUgbWl4ZXIgY29udGVudCwgYW5kCj4+Pj4+Pj4+PiArICogdGhlIHBpeGVs IGZvcm1hdCBvZiB0aGUgZnJhbWVidWZmZXJzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZW5hYmxlZAo+ Pj4+Pj4+Pj4gKyAqIHdpbmRvd3MuCj4+Pj4+Pj4+PiArICoKPj4+Pj4+Pj4+ICsgKiBIYXMgdG8g YmUgY2FsbGVkIHVuZGVyIG1peGVyIGxvY2suCj4+Pj4+Pj4+PiArICovCj4+Pj4+Pj4+PiArc3Rh dGljIHZvaWQgbWl4ZXJfY2ZnX2xheWVyKHN0cnVjdCBtaXhlcl9jb250ZXh0ICpjdHgpCj4+Pj4+ Pj4+PiAgewo+Pj4+Pj4+Pj4gICAgICAgIHN0cnVjdCBtaXhlcl9yZXNvdXJjZXMgKnJlcyA9ICZj dHgtPm1peGVyX3JlczsKPj4+Pj4+Pj4+IC0gICAgICB1MzIgdmFsID0gZW5hYmxlID8gfjAgOiAw Owo+Pj4+Pj4+Pj4gLQo+Pj4+Pj4+Pj4gLSAgICAgIHN3aXRjaCAod2luKSB7Cj4+Pj4+Pj4+PiAt ICAgICAgY2FzZSAwOgo+Pj4+Pj4+Pj4gLSAgICAgICAgICAgICAgbWl4ZXJfcmVnX3dyaXRlbWFz ayhyZXMsIE1YUl9DRkcsIHZhbCwgTVhSX0NGR19HUlAwX0VOQUJMRSk7Cj4+Pj4+Pj4+PiAtICAg ICAgICAgICAgICBtaXhlcl9yZWdfd3JpdGVtYXNrKHJlcywgTVhSX0xBWUVSX0NGRywKPj4+Pj4+ Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVhSX0xBWUVSX0NGR19HUlAw X1ZBTChwcmlvcml0eSksCj4+Pj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE1YUl9MQVlFUl9DRkdfR1JQMF9NQVNLKTsKPj4+Pj4+Pj4+IC0gICAgICAgICAgICAgIGJy ZWFrOwo+Pj4+Pj4+Pj4gLSAgICAgIGNhc2UgMToKPj4+Pj4+Pj4+IC0gICAgICAgICAgICAgIG1p eGVyX3JlZ193cml0ZW1hc2socmVzLCBNWFJfQ0ZHLCB2YWwsIE1YUl9DRkdfR1JQMV9FTkFCTEUp Owo+Pj4+Pj4+Pj4gLSAgICAgICAgICAgICAgbWl4ZXJfcmVnX3dyaXRlbWFzayhyZXMsIE1YUl9M QVlFUl9DRkcsCj4+Pj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1Y Ul9MQVlFUl9DRkdfR1JQMV9WQUwocHJpb3JpdHkpLAo+Pj4+Pj4+Pj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNWFJfTEFZRVJfQ0ZHX0dSUDFfTUFTSyk7Cj4+Pj4+Pj4+PiAr ICAgICAgdW5zaWduZWQgaW50IHdpbjsKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiAtICAgICAgICAgICAg ICBicmVhazsKPj4+Pj4+Pj4+IC0gICAgICBjYXNlIFZQX0RFRkFVTFRfV0lOOgo+Pj4+Pj4+Pj4g LSAgICAgICAgICAgICAgaWYgKHRlc3RfYml0KE1YUl9CSVRfVlBfRU5BQkxFRCwgJmN0eC0+Zmxh Z3MpKSB7Cj4+Pj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgIHZwX3JlZ193cml0ZW1hc2so cmVzLCBWUF9FTkFCTEUsIHZhbCwgVlBfRU5BQkxFX09OKTsKPj4+Pj4+Pj4+IC0gICAgICAgICAg ICAgICAgICAgICAgbWl4ZXJfcmVnX3dyaXRlbWFzayhyZXMsIE1YUl9DRkcsIHZhbCwKPj4+Pj4+ Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNWFJfQ0ZHX1ZQX0VOQUJMRSk7Cj4+ Pj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgIG1peGVyX3JlZ193cml0ZW1hc2socmVzLCBN WFJfTEFZRVJfQ0ZHLAo+Pj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE1YUl9MQVlFUl9DRkdfVlBfVkFMKHByaW9yaXR5KSwKPj4+Pj4+Pj4+IC0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNWFJfTEFZRVJfQ0ZHX1ZQX01B U0spOwo+Pj4+Pj4+Pj4gKyAgICAgIHN0cnVjdCBleHlub3NfZHJtX3BsYW5lX3N0YXRlICpzdGF0 ZTsKPj4+Pj4+Pj4+ICsgICAgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKPj4+Pj4+Pj4+ ICsgICAgICB1bnNpZ25lZCBpbnQgcHJpb3JpdHk7Cj4+Pj4+Pj4+PiArICAgICAgdTMyIG14cl9j ZmcgPSAwLCBteHJfbGF5ZXJfY2ZnID0gMCwgdnBfZW5hYmxlID0gMDsKPj4+Pj4+Pj4+ICsgICAg ICBib29sIGVuYWJsZTsKPj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+ICsgICAgICBmb3IgKHdpbiA9IDA7 IHdpbiA8IE1JWEVSX1dJTl9OUjsgKyt3aW4pIHsKPj4+Pj4+Pj4+ICsgICAgICAgICAgICAgIHN0 YXRlID0gdG9fZXh5bm9zX3BsYW5lX3N0YXRlKGN0eC0+cGxhbmVzW3dpbl0uYmFzZS5zdGF0ZSk7 Cj4+Pj4+Pj4+PiArICAgICAgICAgICAgICBmYiA9IHN0YXRlLT5mYjsKPj4+Pj4+Pj4+ICsKPj4+ Pj4+Pj4+ICsgICAgICAgICAgICAgIHByaW9yaXR5ID0gc3RhdGUtPmJhc2Uubm9ybWFsaXplZF96 cG9zICsgMTsKPj4+Pj4+Pj4+ICsgICAgICAgICAgICAgIGVuYWJsZSA9IHRlc3RfYml0KHdpbiwg JmN0eC0+YWN0aXZlX3dpbmRvd3MpOwo+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4gKyAgICAgICAgICAg ICAgaWYgKCFlbmFibGUpCj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl Owo+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgQlVHX09OKCFmYik7Cj4+Pj4+ Pj4+PiArCj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAvKgo+Pj4+Pj4+Pj4gKyAgICAgICAgICAg ICAgICogVE9ETzogRG9uJ3QgZW5hYmxlIGFscGhhIGJsZW5kaW5nIGZvciB0aGUgYm90dG9tIHdp bmRvdy4KPj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAqLwo+Pj4+Pj4+Pj4gKyAgICAgICAgICAg ICAgc3dpdGNoICh3aW4pIHsKPj4+Pj4+Pj4+ICsgICAgICAgICAgICAgIGNhc2UgMDoKPj4+Pj4+ Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgbXhyX2NmZyB8PSAgTVhSX0NGR19HUlAwX0VOQUJM RTsKPj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgbXhyX2xheWVyX2NmZyB8PSBNWFJf TEFZRVJfQ0ZHX0dSUDBfVkFMKHByaW9yaXR5KTsKPj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAg ICAgICAgbWl4ZXJfY2ZnX2dmeF9ibGVuZChjdHgsIHdpbiwgaXNfYWxwaGFfZm9ybWF0KGZiLT5w aXhlbF9mb3JtYXQpKTsKPj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4+ Pj4+Pj4+PiArCj4+Pj4+Pj4+PiArICAgICAgICAgICAgICBjYXNlIDE6Cj4+Pj4+Pj4+PiArICAg ICAgICAgICAgICAgICAgICAgIG14cl9jZmcgfD0gIE1YUl9DRkdfR1JQMV9FTkFCTEU7Cj4+Pj4+ Pj4+PiArICAgICAgICAgICAgICAgICAgICAgIG14cl9sYXllcl9jZmcgfD0gTVhSX0xBWUVSX0NG R19HUlAxX1ZBTChwcmlvcml0eSk7Cj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgIG1p eGVyX2NmZ19nZnhfYmxlbmQoY3R4LCB3aW4sIGlzX2FscGhhX2Zvcm1hdChmYi0+cGl4ZWxfZm9y bWF0KSk7Cj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+Pj4+Pj4+Pj4g Kwo+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgY2FzZSBWUF9ERUZBVUxUX1dJTjoKPj4+Pj4+Pj4+ ICsgICAgICAgICAgICAgICAgICAgICAgdnBfZW5hYmxlID0gVlBfRU5BQkxFX09OOwo+Pj4+Pj4+ Pj4gKyAgICAgICAgICAgICAgICAgICAgICBteHJfY2ZnIHw9ICBNWFJfQ0ZHX1ZQX0VOQUJMRTsK Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgbXhyX2xheWVyX2NmZyB8PSBNWFJfTEFZ RVJfQ0ZHX1ZQX1ZBTChwcmlvcml0eSk7Cj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAg IG1peGVyX2NmZ192cF9ibGVuZChjdHgpOwo+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAg ICBicmVhazsKPj4+Pj4+Pj4+ICAgICAgICAgICAgICAgIH0KPj4+Pj4+Pj4+IC0gICAgICAgICAg ICAgIGJyZWFrOwo+Pj4+Pj4+Pj4gICAgICAgIH0KPj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+ICsgICAg ICBpZiAodGVzdF9iaXQoTVhSX0JJVF9WUF9FTkFCTEVELCAmY3R4LT5mbGFncykpCj4+Pj4+Pj4+ PiArICAgICAgICAgICAgICB2cF9yZWdfd3JpdGVtYXNrKHJlcywgVlBfRU5BQkxFLCB2cF9lbmFi bGUsIFZQX0VOQUJMRV9PTik7Cj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+PiArICAgICAgbWl4ZXJfcmVn X3dyaXRlbWFzayhyZXMsIE1YUl9DRkcsIG14cl9jZmcsIE1YUl9DRkdfRU5BQkxFX01BU0spOwo+ Pj4+Pj4+Pj4gKyAgICAgIG1peGVyX3JlZ193cml0ZW1hc2socmVzLCBNWFJfTEFZRVJfQ0ZHLCBt eHJfbGF5ZXJfY2ZnLCBNWFJfTEFZRVJfQ0ZHX01BU0spOwo+Pj4+Pj4+Pj4gIH0KPj4+Pj4+Pj4+ Cj4+Pj4+Pj4+PiAgc3RhdGljIHZvaWQgbWl4ZXJfcnVuKHN0cnVjdCBtaXhlcl9jb250ZXh0ICpj dHgpCj4+Pj4+Pj4+PiBAQCAtNDc4LDcgKzUyNCw2IEBAIHN0YXRpYyB2b2lkIHZwX3ZpZGVvX2J1 ZmZlcihzdHJ1Y3QgbWl4ZXJfY29udGV4dCAqY3R4LAo+Pj4+Pj4+Pj4gICAgICAgIHN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICptb2RlID0gJnN0YXRlLT5iYXNlLmNydGMtPnN0YXRlLT5hZGp1c3Rl ZF9tb2RlOwo+Pj4+Pj4+Pj4gICAgICAgIHN0cnVjdCBtaXhlcl9yZXNvdXJjZXMgKnJlcyA9ICZj dHgtPm1peGVyX3JlczsKPj4+Pj4+Pj4+ICAgICAgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YiA9IHN0YXRlLT5mYjsKPj4+Pj4+Pj4+IC0gICAgICB1bnNpZ25lZCBpbnQgcHJpb3JpdHkgPSBz dGF0ZS0+YmFzZS5ub3JtYWxpemVkX3pwb3MgKyAxOwo+Pj4+Pj4+Pj4gICAgICAgIHVuc2lnbmVk IGxvbmcgZmxhZ3M7Cj4+Pj4+Pj4+PiAgICAgICAgZG1hX2FkZHJfdCBsdW1hX2FkZHJbMl0sIGNo cm9tYV9hZGRyWzJdOwo+Pj4+Pj4+Pj4gICAgICAgIGJvb2wgdGlsZWRfbW9kZSA9IGZhbHNlOwo+ Pj4+Pj4+Pj4gQEAgLTU2Myw4ICs2MDgsNiBAQCBzdGF0aWMgdm9pZCB2cF92aWRlb19idWZmZXIo c3RydWN0IG1peGVyX2NvbnRleHQgKmN0eCwKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiAgICAgICAgbWl4 ZXJfY2ZnX3NjYW4oY3R4LCBtb2RlLT52ZGlzcGxheSk7Cj4+Pj4+Pj4+PiAgICAgICAgbWl4ZXJf Y2ZnX3JnYl9mbXQoY3R4LCBtb2RlLT52ZGlzcGxheSk7Cj4+Pj4+Pj4+PiAtICAgICAgbWl4ZXJf Y2ZnX2xheWVyKGN0eCwgcGxhbmUtPmluZGV4LCBwcmlvcml0eSwgdHJ1ZSk7Cj4+Pj4+Pj4+PiAt ICAgICAgbWl4ZXJfY2ZnX3ZwX2JsZW5kKGN0eCk7Cj4+Pj4+Pj4+IFlvdSByZW1vdmVkIHRoZSBm dW5jdGlvbiBjYWxsIHRvIHNldCBNWFJfQ0ZHIGFuZCBNWFJfTEFZRVJfQ0ZHIHJlZ2lzdGVycyBz byB3aGF0IGlmIGxhZ2FjeSBzZXQgcGxhbmUgaW9jdGwgaXMgY2FsbGVkIGJ5IHVzZXIgdXNlciBz cGFjZT8gV2hlcmUgdGhlc2UgcmVnaXN0ZXIgYXJlIHVwZGF0ZWQ/Cj4+Pj4+Pj4geWVzLCB5b3Un cmUgcmlnaHQuIEkgY29tcGxldGx5IGZvcmdvdCBhYm91dCB0aGUgbGVnYWN5IGNvZGVwYXRocy4g U29ycnkKPj4+Pj4+PiBhYm91dCB0aGF0IQo+Pj4+Pj4KPj4+Pj4+IEFyZSB5b3UgdGFsa2luZyBh Ym91dCBEUk1fSU9DVExfTU9ERV9TRVRQTEFORT8KPj4+Pj4+IEl0IGRvZXMgbm90IHNlZW0gdG8g YmUgbGVnYWN5LCBvciB0byBiZSBtb3JlIHByZWNpc2UgaXQgY2FsbHMKPj4+Pj4+IC51cGRhdGVf cGxhbmUgYW5kIC5kaXNhYmxlX3BsYW5lCj4+Pj4+PiBjYWxsYmFja3Mgd2hpY2ggaW4gZXh5bm9z IGFyZSBzZXQgYXMgZm9sbG93Ogo+Pj4+Pj4gICAgIC51cGRhdGVfcGxhbmUgICAgPSBkcm1fYXRv bWljX2hlbHBlcl91cGRhdGVfcGxhbmUsCj4+Pj4+PiAgICAgLmRpc2FibGVfcGxhbmUgICAgPSBk cm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3BsYW5lLAo+Pj4+Pj4KPj4+Pj4+IFNvIERSTV9JT0NU TF9NT0RFX1NFVFBMQU5FIGNhbGxzIGF0b21pYyBjb2RlcGF0aCBhbnl3YXkuCj4+Pj4+IHRoYW5r cyBhIGxvdCBmb3IgdGhlIGhlYWRzLXVwLiBJIGNhbiBjb25maXJtIHRoYXQgZHJtX21vZGVfc2V0 cGxhbmUoKQo+Pj4+PiBhbHNvIGdvZXMgdGhyb3VnaCB0aGUgYXRvbWljIHBhdGguCj4+Pj4+Cj4+ Pj4+IFRoZSBzaW1wbGlmaWVkIGNhbGxzdGFjazoKPj4+Pj4gLSBkcm1fbW9kZV9zZXRwbGFuZSgp Cj4+Pj4+ICAgLSBfX3NldHBsYW5lX2ludGVybmFsKCkKPj4+Pj4gICAgIC0gZGlzYWJsZV9wbGFu ZSgpIChzZXQgaW4gcGxhbmVfaGVscGVyX2Z1bmNzIGluIGV4eW5vc19kcm1fcGxhbmUuYykKPj4+ Pj4gICAgIC0gdXBkYXRlX3BsYW5lKCkgKHNhbWUgaGVyZSkKPj4+Pgo+Pj4+IFNvcnJ5IGZvciBw cmV2aW91cyBjb21tZW50cyBub3QgZW5vdWdoLgo+Pj4+Cj4+Pj4gdXBkYXRlX3BsYW5lCj4+Pj4g ICAgIC4uLgo+Pj4+ICAgICAtIG1peGVyX3VwZGF0ZV9wbGFuZQo+Pj4+ICAgICAgICAgICAgIC0g dnBfdmlkZW9fYnVmZmVyIG9yIG1peGVyX2dyYXBoX2J1ZmZlcgo+Pj4+Cj4+Pj4gSG93ZXZlciwg eW91IHJlbW92ZWQgbWl4ZXJfY2ZnX2xheWVyIGNhbGwgZnJvbSBhYm92ZSBmdW5jdGlvbnMuCj4+ PiBleGFjdGx5LCBiZWNhdXNlIHRoYXQgaXMgdGhlIHZlcnkgcHVycG9zZSBvZiB0aGlzIHBhdGNo Lgo+Pj4KPj4+Cj4+Pj4gU28gbXkgaW50ZW50aW9uIHdhcyB0byBrZWVwIHRoZSBtb2RpZmVkIG1p eGVyX2NmZ19sYXllciBjYWxsIG9uIHZwX3ZpZGVvX2J1ZmZlciBhbmQgbWl4ZXJfZ3JwYWhfYnVm ZmVyIGZ1bmN0aW9ucy4KPj4+IFRoYXQgaXMgbm90IG15IGludGVudGlvbi4gSSB3YW50IHRvIG1v dmUgcmVnaXN0ZXIgbWFuaXB1bGF0aW9uIHRvIHRoZQo+Pj4gYXRvbWljIGZsdXNoIHN0ZXAuCj4+ Pgo+Pj4KPj4+PiBtaXhlcl9hdG9taWNfZmx1c2ggZnVuY3Rpb24gaXMgbm90IHJlYWxseSBwcm9w ZXIgcGxhY2UgdG8gY2FsbCBtaXhlcl9jZmdfbGF5ZXIgZnVuY3Rpb24gZXZlbiBtaXhlcl93aW5f cmVzZXQuCj4+PiBXaHkgZG8geW91IHRoaW5rIHNvPyBJIHRoaW5rIGl0IG1ha2VzIHBlcmZlY3Qg c2Vuc2UgdG8gcHV0IGl0IHRoZXJlLiBXZQo+Pj4gZmx1c2ggdGhlIG5ldyBjb25maWd1cmF0aW9u IHRvIHRoZSBoYXJkd2FyZSByZWdpc3RlcnMgdGhlcmUuCj4+Pgo+Pj4KPj4+PiBGb3IgdGhpcyBJ IG1lbnRpb25lZCBhbHJlYWR5IGF0IHByZXZpb3VzIG15IGNvbW1lbnQsCj4+Pj4gImF0b21pY19m bHVzaCBjYWxsYmFjayB3aWxsIGJlIHVzZWQgdG8gbWFrZSBzdXJlIHJlZ2lzdGVycyB0byBiZSB1 cGRhdGVkIHRvIHRoZSByZWFsIGhhcmR3YXJlLiBTbyBjYWxsaW5nIG1peGVyX2NmZ19sYXllciBm dW5jdGlvbiBoZXJlIHdvdWxkbid0IGJlIHJlYXNvbmFibGUuIgo+Pj4gWW91J3JlIGNvbmZ1c2lu ZyBtZS4gVGhhdCBpcyBleGFjdGx5IHdoYXQgbXkgcGF0Y2ggaXMgZG9pbmcuIEl0IG1vdmVzCj4+ PiBtb3JlIG9mIHRoZSBhY3R1YWwgaGFyZHdhcmUgcmVnaXN0ZXIgdXBkYXRpbmcgdG8gdGhlIGF0 b21pYyBmbHVzaCBzdGVwLgo+Pgo+PiBPaywgZm9yIHlvdXIgdW5kZXJzdGFuZGluZywgeW91IGNh biBjaGVjayBhdG9taWNfYmVnaW4sIGF0b21pY19mbHVzaCBhbmQgdXBkYXRlX3BsYW5lIGNhbGxi YWNrIGZ1bmN0aW9ucyBvZiBleHlub3NfZHJtX2ZpbWQuYy4KPj4gQWZ0ZXIgdGhhdCBJIHRoaW5r IHdlIGNvdWxkIGNvbnRpbnVlIHRvIGRpc2N1c3MgdGhpcy4gSSBkb2Vzbid0IHJlYWxseSB3YW50 IHRvIHRhY2tsZSB5b3UuCj4gSSdtIGF3YXJlIG9mIHRoYXQgY29kZSwgYnV0IGl0J3MgZm9yIHRo ZSBGSU1EIGFuZCBub3QgdGhlIG1peGVyLiBTbyBJCj4gZG9uJ3Qgc2VlIGhvdyBpdCBpcyByZWxl dmFudCB0byB0aGUgZGlzY3Vzc2lvbi4gT25lIGNvdWxkIHByb2JhYmx5IGRvCj4gdGhlIHNhbWUg dGhpbmcgZm9yIHRoZSBGSU1ELCBpLmUuIG1vdmluZyBtb3JlIGNvZGUgdG8gdGhlIGZsdXNoIHN0 ZXAuCj4gSG93ZXZlciBJIGxhY2sgdGhlIGhhcmR3YXJlIHRvIHByb3Blcmx5IHRlc3QgdGhpcywg c28gdGhpcyB3b3VsZCBiZSBhCj4gYml0IGRpZmZpY3VsdCB0byB3b3JrIG9uLgoKRmlyc3QsIGNo ZWNrIGJlbG93IGRlc2NyaXB0aW9ucyBmb3IgYXRvbWljX2JlZ2luIGFuZCBhdG9taWNfZmx1c2gg Y2FsbGJhY2tzLAoKIkBhdG9taWNfYmVnaW46Ci4uLgpEZXBlbmRpbmcgdXBvbiBoYXJkd2FyZSB0 aGlzIG1pZ2h0IGJlIHZibGFuawpldmFzaW9uLCBibG9ja2luZyB1cGRhdGVzIGJ5IHNldHRpbmcg Yml0cyBvciBkb2luZyBwcmVwYXJhdG9yeSB3b3JrCmZvciBlLmcuIG1hbnVhbCB1cGRhdGUgZGlz cGxheS4KCgpAYXRvbWljX2ZsdXNoOgogLi4uCkRlcGVuZGluZyB1cG9uIGhhcmR3YXJlIHRoaXMg bWlnaHQgaW5jbHVkZQpjaGVja2luZyB0aGF0IHZibGFuayBldmFzaW9uIHdhcyBzdWNjZXNzZnVs LCB1bmJsb2NraW5nIHVwZGF0ZXMgYnkKc2V0dGluZyBiaXRzIG9yIHNldHRpbmcgdGhlIEdPIGJp dCB0byBmbHVzaCBvdXQgYWxsIHVwZGF0ZXMuIgoKQW5kIGZvciB0aGlzIE1peGVyIGRldmljZSBo YXMgc2ltaWxhciByZWdpc3RlcnMgdG8gRklNRCBvbmVzLiBTZWUgdGhlCmJlbG93IGNvZGVzLAoK c3RhdGljIHZvaWQgbWl4ZXJfdnN5bmNfc2V0X3VwZGF0ZShzdHJ1Y3QgbWl4ZXJfY29udGV4dCAq Y3R4LCBib29sIGVuYWJsZSkKewogc3RydWN0IG1peGVyX3Jlc291cmNlcyAqcmVzID0gJmN0eC0+ bWl4ZXJfcmVzOwogLyogYmxvY2sgdXBkYXRlIG9uIHZzeW5jICovCiBtaXhlcl9yZWdfd3JpdGVt YXNrKHJlcywgTVhSX1NUQVRVUywgZW5hYmxlID8KICAgTVhSX1NUQVRVU19TWU5DX0VOQUJMRSA6 IDAsIE1YUl9TVEFUVVNfU1lOQ19FTkFCTEUpOwogaWYgKGN0eC0+dnBfZW5hYmxlZCkKICB2cF9y ZWdfd3JpdGUocmVzLCBWUF9TSEFET1dfVVBEQVRFLCBlbmFibGUgPwogICBWUF9TSEFET1dfVVBE QVRFX0VOQUJMRSA6IDApOwp9CgpBY2NvcmRpbmcgdG8gdGhlIHNlY29uZCBhcmd1bWVudCBvZiBh Ym92ZSBmdW5jdGlvbiAtIGVuYWJsZSB2YWx1ZSAtLAp0aGlzIGZ1bmN0aW9uIHdpbGwgZG8gc29t ZXRoaW5nIHJlcXVpcmVkIGJ5IGF0b21pY19iZWdpbiBvcgphdG9taWNfZmx1c2ggY2FsbGJhY2su CkFuZCB0aGlzIGZ1bmN0aW9uIGlzIGFscmVhZHkgY2FsbGVkIGJ5IG1peGVyX2F0b21pY19iZWdp biBhbmQKbWl4ZXJfYXRvbWljX2ZsdXNoIGZ1bmN0aW9ucyBwcm9wZXJseS4KCllvdSBhcmUgdHJ5 aW5nIHRvIHJlYWxseSBzcHJlYWQgb3V0IHJlZ2lzdGVyIHNldHRpbmcgY29kZXMgaGVyZSBhbmQK dGhlcmUgd2l0aCB0aGlzIHBhdGNoLgoKUHMuIG1vc3QgY3J0YyBkZXZpY2VzIGhhdmUgc3BlY2lh bCByZWdpc3RlcnMgd2hpY2ggYmxvY2sgc2V0dGluZwp2YWx1ZXMgdG8gYmUgdXBkYXRlZCB0byBy ZWFsIGhhcmR3YXJlIGFmdGVyIHZzeW5jIGNvbXBsZXRpb24gdG8gbWFrZQpzdXJlIGZvciBhbGwg cmVnaXN0ZXIgc2V0dGluZyB2YWx1ZXMgdG8gYmUgdXBkYXRlZCB0byByZWFsIGhhcmR3YXJlCndo ZW4gdGhleSBhcmUgcmVhbGx5IHJlYWR5LiBTbyBhdG9taWNfYmVnaW4gYW5kIGF0b21pY19mbHVz aCBjYWxsYmFja3MKYXJlIHVzZWQgZm9yIHN1Y2ggcHVycG9zZS4KClRoYW5rcywKSW5raSBEYWUK Cj4KPgo+IFdpdGggYmVzdCB3aXNoZXMsCj4gVG9iaWFzCj4KPgo+Pj4+IEFsc28gaXQgd291bGQg YmUgcmVhc29uYWJsZSB0byByZW1vdmUgbWl4ZXJfY2ZnX2xheWVyIGZ1bmN0aW9uIGNhbGwgZnJv bSBtaXhlcl93aW5fcmVzZXQgZnVuY3Rpb24uCj4+PiBXaHkgaXMgdGhhdD8gSW4gbWl4ZXJfd2lu X3Jlc2V0KCkgd2Ugd2FudCB0byBhcHBseSBhIGRlZmF1bHQKPj4+IGNvbmZpZ3VyYXRpb24gdG8g dGhlIHZhcmlvdXMgcmVnaXN0ZXJzLiBIZW5jZSB3ZSBzZXQgYWN0aXZlX3dpbmRvd3MgdG8KPj4+ IHplcm8gYW5kIGNhbGwgbWl4ZXJfY2ZnX2xheWVyKCkuCj4+Pgo+Pj4KPj4+IFdpdGggYmVzdCB3 aXNoZXMsCj4+PiBUb2JpYXMKPj4+Cj4+Pgo+Pj4KPj4+Pj4gRm9yIGNvbXBsZXRlbmVzcyBJJ3Zl IGFsc28gY2hlY2tlZCBkcm1fbW9kZV9zZXRjcnRjKCksIHRoZSBvdGhlciBsZWdhY3kKPj4+Pj4g RFJNIGNhbGwgdGhhdCBtYW5pcHVsYXRlcyB0aGUgcHJpbWFyeSBwbGFuZS4KPj4+Pj4KPj4+Pj4g SXQgZ29lcyB0aGUgZm9sbG93aW5nIHJvdXRlOgo+Pj4+PiAtIGRybV9tb2RlX3NldGNydGMKPj4+ Pj4gICAtIGRybV9tb2RlX3NldF9jb25maWdfaW50ZXJuYWwoKQo+Pj4+PiAgICAgLSBzZXRfY29u ZmlnKCkgKHNldCBpbiBleHlub3NfY3J0Y19mdW5jcyBpbiBleHlub3NfZHJtX2NydGMuYykKPj4+ Pj4KPj4+Pj4gQWxzbyBoZXJlOiAuc2V0X2NvbmZpZyA9IGRybV9hdG9taWNfaGVscGVyX3NldF9j b25maWcKPj4+Pj4KPj4+Pj4gQm90aCBEUk1fSU9DVExfTU9ERV9TRVRQTEFORSBhbmQgRFJNX0lP Q1RMX01PREVfQ1JUQyBnbyB0aGUgYXRvbWljCj4+Pj4+IHJvdXRlLCBzbyB0aGUgcGF0Y2ggaXMg ZmluZSB0aGlzIHdheS4KPj4+Pj4KPj4+Pj4gQElua2k6IENhbiB5b3Ugc3RpbGwgcXVldWUgdGhp cyB1cCBmb3IgNC45Lnk/Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+IFdpdGggYmVzdCB3aXNoZXMsCj4+Pj4+ IFRvYmlhcwo+Pj4+Pgo+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IFJlZ2FyZHMKPj4+Pj4+IEFuZHJ6ZWoK Pj4+Pj4+Cj4+Pj4+Cj4+Pj4+IC0tCj4+Pj4+IFRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0 OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSBsaW51eC1zYW1zdW5nLXNvYyIgaW4KPj4+Pj4g dGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcKPj4+Pj4g TW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpvcmRvbW8t aW5mby5odG1sCj4+Pj4+Cj4+Pj4+Cj4+Pj4+Cj4+Pj4gLS0KPj4+PiBUbyB1bnN1YnNjcmliZSBm cm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUgbGludXgtc2Ftc3VuZy1z b2MiIGluCj4+Pj4gdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtlcm5l bC5vcmcKPj4+PiBNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3Jn L21ham9yZG9tby1pbmZvLmh0bWwKPj4+Pgo+Pj4KPj4+Cj4+Pgo+Pj4KPgo+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZHJpLWRldmVsIG1haWxpbmcg bGlzdAo+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbApfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK