From mboxrd@z Thu Jan 1 00:00:00 1970 From: Philipp Zabel Subject: Re: [PATCH v2 17/21] drm/imx: pd: Use bus format/flags provided by the bridge when available Date: Tue, 27 Aug 2019 10:15:19 +0200 Message-ID: <1566893719.4102.1.camel@pengutronix.de> References: <20190826152649.13820-1-boris.brezillon@collabora.com> <20190826152649.13820-18-boris.brezillon@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by gabe.freedesktop.org (Postfix) with ESMTPS id BDC2D8999A for ; Tue, 27 Aug 2019 08:15:24 +0000 (UTC) In-Reply-To: <20190826152649.13820-18-boris.brezillon@collabora.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Boris Brezillon , dri-devel@lists.freedesktop.org Cc: Nikita Yushchenko , Jernej Skrabec , Laurent Pinchart , Neil Armstrong , Andrey Smirnov , Jonas Karlman , Seung-Woo Kim , Kyungmin Park , Thierry Reding , Chris Healy , kernel@collabora.com, Sam Ravnborg List-Id: dri-devel@lists.freedesktop.org SGkgQm9yaXMsCgpPbiBNb24sIDIwMTktMDgtMjYgYXQgMTc6MjYgKzAyMDAsIEJvcmlzIEJyZXpp bGxvbiB3cm90ZToKPiBOb3cgdGhhdCBicmlkZ2VzIGNhbiBleHBvc2UgdGhlIGJ1cyBmb3JtYXQv ZmxhZ3MgdGhleSBleHBlY3QsIHdlIGNhbgo+IHVzZSB0aG9zZSBpbnN0ZWFkIG9mIHRoZSByZWx5 aW5nIG9uIHRoZSBkaXNwbGF5X2luZm8gcHJvdmlkZWQgYnkgdGhlCj4gY29ubmVjdG9yICh3aGlj aCBpcyBvbmx5IHZhbGlkIGlmIHRoZSBlbmNvZGVyIGlzIGRpcmVjdGx5IGNvbm5lY3RlZAo+IHRv IGJyaWRnZSBlbGVtZW50IGRyaXZpbmcgdGhlIHBhbmVsL2Rpc3BsYXkpLgo+IAo+IFdlIGFsc28g ZXhwbGljaXRseSBleHBvc2UgdGhlIGJ1cyBmb3JtYXRzIHN1cHBvcnRlZCBieSBvdXIgZW5jb2Rl ciBieQo+IGZpbGxpbmcgZW5jb2Rlci0+b3V0cHV0X2J1c19jYXBzIHdpdGggcHJvcGVyIGluZm8u Cj4gCj4gU2lnbmVkLW9mZi1ieTogQm9yaXMgQnJlemlsbG9uIDxib3Jpcy5icmV6aWxsb25AY29s bGFib3JhLmNvbT4KPiAtLS0KPiBDaGFuZ2VzIGluIHYyOgo+ICogQWRqdXN0IHRoaW5ncyB0byBt YXRjaCB0aGUgbmV3IGJ1cy1mb3JtYXQgbmVnb3RpYXRpb24gaW5mcmEKPiAtLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2lteC9wYXJhbGxlbC1kaXNwbGF5LmMgfCAxMzYgKysrKysrKysrKysrKysrKysr KysrKy0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgMTIwIGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9u cygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaW14L3BhcmFsbGVsLWRpc3Bs YXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvcGFyYWxsZWwtZGlzcGxheS5jCj4gaW5kZXggMzU1 MThlNWRlMzU2Li5kZjQ3Y2I3NDc1OWYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2lt eC9wYXJhbGxlbC1kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L3BhcmFsbGVs LWRpc3BsYXkuYwo+IEBAIC04OSwzNyArODksMTM5IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2VuY29k ZXIgKmlteF9wZF9jb25uZWN0b3JfYmVzdF9lbmNvZGVyKAo+ICAJcmV0dXJuICZpbXhwZC0+ZW5j b2RlcjsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaW14X3BkX2VuY29kZXJfZW5hYmxlKHN0cnVj dCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgaW14X3BkX2JyaWRnZV9lbmFi bGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiAgewo+ICsJc3RydWN0IGRybV9lbmNvZGVy ICplbmNvZGVyID0gYnJpZGdlX3RvX2VuY29kZXIoYnJpZGdlKTsKPiAgCXN0cnVjdCBpbXhfcGFy YWxsZWxfZGlzcGxheSAqaW14cGQgPSBlbmNfdG9faW14cGQoZW5jb2Rlcik7Cj4gIAo+ICAJZHJt X3BhbmVsX3ByZXBhcmUoaW14cGQtPnBhbmVsKTsKPiAgCWRybV9wYW5lbF9lbmFibGUoaW14cGQt PnBhbmVsKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaW14X3BkX2VuY29kZXJfZGlzYWJsZShz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gK3N0YXRpYyB2b2lkIGlteF9wZF9icmlkZ2Vf ZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICB7Cj4gKwlzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIgPSBicmlkZ2VfdG9fZW5jb2RlcihicmlkZ2UpOwo+ICAJc3RydWN0IGlt eF9wYXJhbGxlbF9kaXNwbGF5ICppbXhwZCA9IGVuY190b19pbXhwZChlbmNvZGVyKTsKPiAgCj4g IAlkcm1fcGFuZWxfZGlzYWJsZShpbXhwZC0+cGFuZWwpOwo+ICAJZHJtX3BhbmVsX3VucHJlcGFy ZShpbXhwZC0+cGFuZWwpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGlteF9wZF9lbmNvZGVyX2F0 b21pY19jaGVjayhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gLQkJCQkgICAgICAgc3Ry dWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+IC0JCQkJICAgICAgIHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICtzdGF0aWMgY29uc3QgdTMyIGlteF9wZF9i dXNfZm10c1tdID0gewo+ICsJTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgyNCwKPiArCU1FRElBX0JV U19GTVRfUkdCNTY1XzFYMTYsCj4gKwlNRURJQV9CVVNfRk1UX1JHQjY2Nl8xWDE4LAo+ICsJTUVE SUFfQlVTX0ZNVF9SR0I2NjZfMVgyNF9DUEFESEksCgppcHUtZGMuYyBhbHNvIHN1cHBvcnRzIE1F RElBX0JVU19GTVRfQkdSODg4XzFYMjQuCgo+ICt9Owo+ICsKPiArc3RhdGljIHZvaWQKPiAraW14 X3BkX2JyaWRnZV9hdG9taWNfZ2V0X291dHB1dF9idXNfZm10cyhzdHJ1Y3QgZHJtX2JyaWRnZSAq YnJpZGdlLAo+ICsJCQkJCSBzdHJ1Y3QgZHJtX2JyaWRnZV9zdGF0ZSAqYnJpZGdlX3N0YXRlLAo+ ICsJCQkJCSBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gKwkJCQkJIHN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLAo+ICsJCQkJCSB1bnNpZ25lZCBpbnQg Km51bV9vdXRwdXRfZm10cywKPiArCQkJCQkgdTMyICpvdXRwdXRfZm10cykKPiAgewo+ICsJc3Ry dWN0IGRybV9kaXNwbGF5X2luZm8gKmRpID0gJmNvbm5fc3RhdGUtPmNvbm5lY3Rvci0+ZGlzcGxh eV9pbmZvOwo+ICsJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gYnJpZGdlX3RvX2VuY29k ZXIoYnJpZGdlKTsKPiArCXN0cnVjdCBpbXhfcGFyYWxsZWxfZGlzcGxheSAqaW14cGQgPSBlbmNf dG9faW14cGQoZW5jb2Rlcik7Cj4gKwo+ICsJKm51bV9vdXRwdXRfZm10cyA9IDE7Cj4gKwlpZiAo aW14cGQtPmJ1c19mb3JtYXQpIHsKPiArCQlpZiAob3V0cHV0X2ZtdHMpCj4gKwkJCW91dHB1dF9m bXRzWzBdID0gaW14cGQtPmJ1c19mb3JtYXQ7CgpUaGlzIGlzIHRoZSBsZWdhY3kgRFQgY29uZmln dXJlZCBpbnRlcmZhY2UtcGl4LWZtdC4gTWF5YmUgdGhpcyBzaG91bGQgYmUKbW92ZWQgdG8gdGhl IGxhc3QgcGxhY2UuCgo+ICsJfSBlbHNlIGlmIChkaS0+bnVtX2J1c19mb3JtYXRzKSB7Cj4gKwkJ Km51bV9vdXRwdXRfZm10cyA9IDE7CgpudW1fb3V0cHV0X2ZtdHMgaXMgYWxyZWFkeSBzZXQgdG8g b25lIGFib3ZlLgoKPiArCQlpZiAob3V0cHV0X2ZtdHMpCj4gKwkJCW91dHB1dF9mbXRzWzBdID0g ZGktPmJ1c19mb3JtYXRzWzBdOwo+ICsJfSBlbHNlIHsKPiArCQkqbnVtX291dHB1dF9mbXRzID0g QVJSQVlfU0laRShpbXhfcGRfYnVzX2ZtdHMpOwo+ICsJCWlmIChvdXRwdXRfZm10cykKPiArCQkJ bWVtY3B5KG91dHB1dF9mbXRzLCBpbXhfcGRfYnVzX2ZtdHMsCj4gKwkJCSAgICAgICBBUlJBWV9T SVpFKGlteF9wZF9idXNfZm10cykpOwo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZAo+ICtp bXhfcGRfYnJpZGdlX2F0b21pY19nZXRfaW5wdXRfYnVzX2ZtdHMoc3RydWN0IGRybV9icmlkZ2Ug KmJyaWRnZSwKPiArCQkJCQlzdHJ1Y3QgZHJtX2JyaWRnZV9zdGF0ZSAqYnJpZGdlX3N0YXRlLAo+ ICsJCQkJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiArCQkJCQlzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwKPiArCQkJCQl1MzIgb3V0cHV0X2ZtdCwK PiArCQkJCQl1bnNpZ25lZCBpbnQgKm51bV9pbnB1dF9mbXRzLAo+ICsJCQkJCXUzMiAqaW5wdXRf Zm10cykKPiArewo+ICsJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gYnJpZGdlX3RvX2Vu Y29kZXIoYnJpZGdlKTsKPiArCXN0cnVjdCBpbXhfcGFyYWxsZWxfZGlzcGxheSAqaW14cGQgPSBl bmNfdG9faW14cGQoZW5jb2Rlcik7Cj4gKwo+ICsJKm51bV9pbnB1dF9mbXRzID0gMDsKPiArCWlm IChvdXRwdXRfZm10ID09IE1FRElBX0JVU19GTVRfRklYRUQpIHsKPiArCQkqbnVtX2lucHV0X2Zt dHMgPSAxOwoKSSBkb24ndCB1bmRlcnN0YW5kIHRoaXMuIFRoZSBidXMgZm9ybWF0IHN0b3JlZCBp biBpbXhfY3J0Y19zdGF0ZSBieQphdG9taWNfY2hlY2sgaXMgdXNlZCB0byBjb25maWd1cmUgdGhl IERDIGxhdGVyLiBUaGlzIHNob3VsZCBuZXZlciBiZQpNRURJQV9CVVNfRk1UX0ZJWEVELCB0aGF0 IHdvdWxkIHRyaWdnZXIgYSBXQVJOX09OIGluCmlwdV9idXNfZm9ybWF0X3RvX21hcCgpLgoKPiAr CX0gZWxzZSBpZiAoIWlteHBkLT5idXNfZm9ybWF0KSB7Cj4gKwkJdW5zaWduZWQgaW50IGk7Cj4g Kwo+ICsJCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGlteF9wZF9idXNfZm10cyk7IGkrKykg ewo+ICsJCQlpZiAoaW14X3BkX2J1c19mbXRzW2ldID09IG91dHB1dF9mbXQpIHsKPiArCQkJCSpu dW1faW5wdXRfZm10cyA9IDE7Cj4gKwkJCQlicmVhazsKPiArCQkJfQo+ICsJCX0KPiArCX0gZWxz ZSBpZiAoaW14cGQtPmJ1c19mb3JtYXQgPT0gb3V0cHV0X2ZtdCkgewo+ICsJCSpudW1faW5wdXRf Zm10cyA9IDE7Cj4gKwl9Cj4gKwo+ICsJaWYgKCpudW1faW5wdXRfZm10cyAmJiBpbnB1dF9mbXRz KQo+ICsJCWlucHV0X2ZtdHNbMF0gPSBNRURJQV9CVVNfRk1UX0ZJWEVEOwoKVGhlIHBhcmFsbGVs LWRpc3BsYXkgZHJpdmVyIGJhc2ljYWxseSByZXByZXNlbnRzIHRoZSB3aXJpbmcsIHBpbm11eCwg YW5kCmRyaXZlcnMgYmV0d2VlbiB0aGUgSVBVIERJIGFuZCB0aGUgRElTUCBwYWRzLiBUaGUgaW5w dXQgZm9ybWF0IHNob3VsZAphbHdheXMgYmUgaWRlbnRpY2FsIHRvIHRoZSBvdXRwdXQgZm9ybWF0 LgoKPiArfQo+ICsKPiArc3RhdGljIGludCBpbXhfcGRfYnJpZGdlX2F0b21pY19jaGVjayhzdHJ1 Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICsJCQkJICAgICAgc3RydWN0IGRybV9icmlkZ2Vfc3Rh dGUgKmJyaWRnZV9zdGF0ZSwKPiArCQkJCSAgICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKPiArCQkJCSAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0 YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSBicmlkZ2VfdG9fZW5j b2RlcihicmlkZ2UpOwo+ICAJc3RydWN0IGlteF9jcnRjX3N0YXRlICppbXhfY3J0Y19zdGF0ZSA9 IHRvX2lteF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpOwo+ICAJc3RydWN0IGRybV9kaXNwbGF5X2lu Zm8gKmRpID0gJmNvbm5fc3RhdGUtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvOwo+ICAJc3RydWN0 IGlteF9wYXJhbGxlbF9kaXNwbGF5ICppbXhwZCA9IGVuY190b19pbXhwZChlbmNvZGVyKTsKPiAr CXN0cnVjdCBkcm1fYnJpZGdlX3N0YXRlICpuZXh0X2JyaWRnZV9zdGF0ZSA9IE5VTEw7Cj4gKwlz dHJ1Y3QgZHJtX2JyaWRnZSAqbmV4dF9icmlkZ2U7Cj4gKwl1MzIgYnVzX2ZsYWdzLCBidXNfZm10 Owo+ICsJdW5zaWduZWQgaW50IGk7Cj4gIAo+IC0JaWYgKCFpbXhwZC0+YnVzX2Zvcm1hdCAmJiBk aS0+bnVtX2J1c19mb3JtYXRzKSB7Cj4gLQkJaW14X2NydGNfc3RhdGUtPmJ1c19mbGFncyA9IGRp LT5idXNfZmxhZ3M7Cj4gLQkJaW14X2NydGNfc3RhdGUtPmJ1c19mb3JtYXQgPSBkaS0+YnVzX2Zv cm1hdHNbMF07Cj4gLQl9IGVsc2Ugewo+IC0JCWlteF9jcnRjX3N0YXRlLT5idXNfZmxhZ3MgPSBp bXhwZC0+YnVzX2ZsYWdzOwo+IC0JCWlteF9jcnRjX3N0YXRlLT5idXNfZm9ybWF0ID0gaW14cGQt PmJ1c19mb3JtYXQ7Cj4gKwluZXh0X2JyaWRnZSA9IGRybV9icmlkZ2VfY2hhaW5fZ2V0X25leHRf YnJpZGdlKGJyaWRnZSk7Cj4gKwlpZiAobmV4dF9icmlkZ2UpCj4gKwkJbmV4dF9icmlkZ2Vfc3Rh dGUgPSBkcm1fYXRvbWljX2dldF9uZXdfYnJpZGdlX3N0YXRlKGNydGNfc3RhdGUtPnN0YXRlLAo+ ICsJCQkJCQkJCSAgICBuZXh0X2JyaWRnZSk7Cj4gKwo+ICsJYnVzX2ZtdCA9IGJyaWRnZV9zdGF0 ZS0+b3V0cHV0X2J1c19jZmcuZm10Owo+ICsJaWYgKGJ1c19mbXQgPT0gTUVESUFfQlVTX0ZNVF9G SVhFRCkKPiArCQlidXNfZm10ID0gMDsKCkkgd291bGQgZXhwZWN0IHRoaXMgdG8gcmV0dXJuIHdp dGggLUVJTlZBTCBpZiBicmlkZ2Vfc3RhdGUtCj5vdXRwdXRfYnVzX2NmZy5mbXQgaXMgbm90IGlu IHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBmb3JtYXRzLgoKPiArCj4gKwlpZiAobmV4dF9icmlkZ2Vf c3RhdGUpCj4gKwkJYnVzX2ZsYWdzID0gbmV4dF9icmlkZ2Vfc3RhdGUtPmlucHV0X2J1c19jZmcu ZmxhZ3M7Cj4gKwllbHNlIGlmICghaW14cGQtPmJ1c19mb3JtYXQgJiYgZGktPm51bV9idXNfZm9y bWF0cykKPiArCQlidXNfZmxhZ3MgPSBkaS0+YnVzX2ZsYWdzOwo+ICsJZWxzZQo+ICsJCWJ1c19m bGFncyA9IGlteHBkLT5idXNfZmxhZ3M7Cj4gKwo+ICsJZm9yIChpID0gMDsgYnVzX2ZtdCAmJiBp IDwgQVJSQVlfU0laRShpbXhfcGRfYnVzX2ZtdHMpOyBpKyspIHsKPiArCQlpZiAoaW14X3BkX2J1 c19mbXRzW2ldID09IGJyaWRnZV9zdGF0ZS0+b3V0cHV0X2J1c19jZmcuZm10KQo+ICsJCQlicmVh azsKPiAgCX0KPiArCj4gKwlpZiAoaSA9PSBBUlJBWV9TSVpFKGlteF9wZF9idXNfZm10cykpCj4g KwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJaWYgKGJ1c19mbGFncyAmCj4gKwkgICAgfihEUk1f QlVTX0ZMQUdfREVfTE9XIHwgRFJNX0JVU19GTEFHX0RFX0hJR0ggfAo+ICsJICAgICAgRFJNX0JV U19GTEFHX1BJWERBVEFfRFJJVkVfUE9TRURHRSB8Cj4gKwkgICAgICBEUk1fQlVTX0ZMQUdfUElY REFUQV9EUklWRV9ORUdFREdFKSkKPiArCQlyZXR1cm4gLUVJTlZBTDsKClRoaXMgY291bGQgYWxs b3cgRFJNX0JVU19GTEFHX1NZTkNfRFJJVkVfUE9TRURHRS9ORUdFREdFIGFzIHdlbGwsIGlmCnRo ZXkgYXJlIG5vdCBvcHBvc2l0ZSB0byBQSVhEQVRBX0RSSVZFLgoKPiArCWJyaWRnZV9zdGF0ZS0+ b3V0cHV0X2J1c19jZmcuZmxhZ3MgPSBidXNfZmxhZ3M7Cj4gKwlicmlkZ2Vfc3RhdGUtPmlucHV0 X2J1c19jZmcuZmxhZ3MgPSBidXNfZmxhZ3M7Cj4gKwlpbXhfY3J0Y19zdGF0ZS0+YnVzX2ZsYWdz ID0gYnVzX2ZsYWdzOwo+ICsJaW14X2NydGNfc3RhdGUtPmJ1c19mb3JtYXQgPSBicmlkZ2Vfc3Rh dGUtPm91dHB1dF9idXNfY2ZnLmZtdDsKClRoaXMgc2hvdWxkIGJlIHRoZSBpbnB1dCBidXMgZm9y bWF0LgoKPiAgCWlteF9jcnRjX3N0YXRlLT5kaV9oc3luY19waW4gPSAyOwo+ICAJaW14X2NydGNf c3RhdGUtPmRpX3ZzeW5jX3BpbiA9IDM7Cj4gIAo+IEBAIC0xNDMsMTAgKzI0NSwxMiBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2Z1bmNzIGlteF9wZF9lbmNvZGVyX2Z1bmNzID0g ewo+ICAJLmRlc3Ryb3kgPSBpbXhfZHJtX2VuY29kZXJfZGVzdHJveSwKPiAgfTsKPiAgCj4gLXN0 YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2VuY29kZXJfaGVscGVyX2Z1bmNzIGlteF9wZF9lbmNvZGVy X2hlbHBlcl9mdW5jcyA9IHsKPiAtCS5lbmFibGUgPSBpbXhfcGRfZW5jb2Rlcl9lbmFibGUsCj4g LQkuZGlzYWJsZSA9IGlteF9wZF9lbmNvZGVyX2Rpc2FibGUsCj4gLQkuYXRvbWljX2NoZWNrID0g aW14X3BkX2VuY29kZXJfYXRvbWljX2NoZWNrLAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9i cmlkZ2VfZnVuY3MgaW14X3BkX2JyaWRnZV9mdW5jcyA9IHsKPiArCS5lbmFibGUgPSBpbXhfcGRf YnJpZGdlX2VuYWJsZSwKPiArCS5kaXNhYmxlID0gaW14X3BkX2JyaWRnZV9kaXNhYmxlLAo+ICsJ LmF0b21pY19jaGVjayA9IGlteF9wZF9icmlkZ2VfYXRvbWljX2NoZWNrLAo+ICsJLmF0b21pY19n ZXRfaW5wdXRfYnVzX2ZtdHMgPSBpbXhfcGRfYnJpZGdlX2F0b21pY19nZXRfaW5wdXRfYnVzX2Zt dHMsCj4gKwkuYXRvbWljX2dldF9vdXRwdXRfYnVzX2ZtdHMgPSBpbXhfcGRfYnJpZGdlX2F0b21p Y19nZXRfb3V0cHV0X2J1c19mbXRzLAo+ICB9Owo+ICAKPiAgc3RhdGljIGludCBpbXhfcGRfcmVn aXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKPiBAQCAtMTY2LDcgKzI3MCw3IEBAIHN0YXRp YyBpbnQgaW14X3BkX3JlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sCj4gIAkgKi8KPiAg CWlteHBkLT5jb25uZWN0b3IuZHBtcyA9IERSTV9NT0RFX0RQTVNfT0ZGOwo+ICAKPiAtCWRybV9l bmNvZGVyX2hlbHBlcl9hZGQoZW5jb2RlciwgJmlteF9wZF9lbmNvZGVyX2hlbHBlcl9mdW5jcyk7 Cj4gKwllbmNvZGVyLT5icmlkZ2UuZnVuY3MgPSAmaW14X3BkX2JyaWRnZV9mdW5jczsKPiAgCWRy bV9lbmNvZGVyX2luaXQoZHJtLCBlbmNvZGVyLCAmaW14X3BkX2VuY29kZXJfZnVuY3MsCj4gIAkJ CSBEUk1fTU9ERV9FTkNPREVSX05PTkUsIE5VTEwpOwoKcmVnYXJkcwpQaGlsaXBwCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==