From mboxrd@z Thu Jan 1 00:00:00 1970 From: Philippe CORNU Subject: Re: [PATCH v2 7/8] drm/bridge/synopsys: dsi: add dual-dsi support Date: Tue, 3 Jul 2018 11:57:43 +0000 Message-ID: <90b039a6-86b4-0953-ebbc-871c115b3431@st.com> References: <20180618102806.15650-1-heiko@sntech.de> <20180618102806.15650-8-heiko@sntech.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180618102806.15650-8-heiko@sntech.de> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Heiko Stuebner , "dri-devel@lists.freedesktop.org" Cc: "mark.rutland@arm.com" , "devicetree@vger.kernel.org" , "briannorris@chromium.org" , "hoegsberg@gmail.com" , Yannick FERTRE , "linux-rockchip@lists.infradead.org" , "nickey.yang@rock-chips.com" , "robh+dt@kernel.org" , "thierry.reding@gmail.com" , "laurent.pinchart@ideasonboard.com" , "mka@chromium.org" List-Id: devicetree@vger.kernel.org SGkgSGVpa28sDQpUaGFuayB5b3UgZm9yIHlvdXIgcGF0Y2gsDQoNCk9uIDA2LzE4LzIwMTggMTI6 MjggUE0sIEhlaWtvIFN0dWVibmVyIHdyb3RlOg0KPiBGcm9tOiBOaWNrZXkgWWFuZyA8bmlja2V5 LnlhbmdAcm9jay1jaGlwcy5jb20+DQo+IA0KPiBBbGxvdyB0byBhbHNvIGRyaXZlIGEgc2xhdmUg ZHctbWlwaS1kc2kgY29udHJvbGxlciBpbiBhIGR1YWwtZHNpDQo+IHNldHVwLiBUaGlzIHdpbGwg cmVxdWlyZSBhZGRpdGlvbmFsIGltcGxlbWVudGF0aW9uLXNwZWNpZmljDQo+IGNvZGUgdG8gbG9v ayB1cCB0aGUgc2xhdmUgaW5zdGFuY2UgYW5kIGRvIHNwZWNpZmljIHNldHVwLg0KPiBBbHNvIHdp bGwgcHJvYmFibHkgbmVlZCBjb2RlIGluIHRoZSBzcGVjaWZpYyBjcnRjcyBhcyBkdWFsLWRzaQ0K PiBkb2VzIG5vdCBlcXVhbCB0d28gc2VwYXJhdGUgZHNpIG91dHB1dHMuDQo+IA0KPiBUbyBhY3Rp dmF0ZSwgdGhlIGltcGxlbWVudGF0aW9uLXNwZWNpZmljIGNvZGUgc2hvdWxkIHNldCB0aGUgc2xh dmUNCj4gdXNpbmcgZHdfbWlwaV9kc2lfc2V0X3NsYXZlKCkgYmVmb3JlIGNhbGxpbmcgX19kd19t aXBpX2RzaV9iaW5kKCkuDQo+IA0KPiB2MjoNCj4gLSBleHBlY3QgcmVhbCBpbnRlcmZhY2UgbnVt YmVyIG9mIGxhbmVzDQo+IC0ga2VlcCBsaW5rcyB0byBib3RoIG1hc3RlciBhbmQgc2xhdmUNCj4g DQo+IFNpZ25lZC1vZmYtYnk6IE5pY2tleSBZYW5nIDxuaWNrZXkueWFuZ0Byb2NrLWNoaXBzLmNv bT4NCj4gU2lnbmVkLW9mZi1ieTogSGVpa28gU3R1ZWJuZXIgPGhlaWtvQHNudGVjaC5kZT4NCj4g LS0tDQo+ICAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1taXBpLWRzaS5jIHwg OTMgKysrKysrKysrKysrKysrKystLQ0KPiAgIGluY2x1ZGUvZHJtL2JyaWRnZS9kd19taXBpX2Rz aS5oICAgICAgICAgICAgICB8ICAxICsNCj4gICAyIGZpbGVzIGNoYW5nZWQsIDg2IGluc2VydGlv bnMoKyksIDggZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2JyaWRnZS9zeW5vcHN5cy9kdy1taXBpLWRzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9z eW5vcHN5cy9kdy1taXBpLWRzaS5jDQo+IGluZGV4IGJkNTAzZjAwMGVkNS4uNmEzNDVkMWRkZTI1 IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LW1pcGkt ZHNpLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1taXBpLWRz aS5jDQo+IEBAIC0yMzAsOSArMjMwLDIwIEBAIHN0cnVjdCBkd19taXBpX2RzaSB7DQo+ICAgCXUz MiBmb3JtYXQ7DQo+ICAgCXVuc2lnbmVkIGxvbmcgbW9kZV9mbGFnczsNCj4gICANCj4gKwlzdHJ1 Y3QgZHdfbWlwaV9kc2kgKm1hc3RlcjsgLyogZHVhbC1kc2kgbWFzdGVyIHB0ciAqLw0KPiArCXN0 cnVjdCBkd19taXBpX2RzaSAqc2xhdmU7IC8qIGR1YWwtZHNpIHNsYXZlIHB0ciAqLw0KPiArDQo+ ICAgCWNvbnN0IHN0cnVjdCBkd19taXBpX2RzaV9wbGF0X2RhdGEgKnBsYXRfZGF0YTsNCj4gICB9 Ow0KPiAgIA0KPiArLyoNCj4gKyAqIENoZWNrIGlmIGVpdGhlciBhIGxpbmsgdG8gYSBtYXN0ZXIg b3Igc2xhdmUgaXMgcHJlc2VudA0KPiArICovDQo+ICtzdGF0aWMgaW5saW5lIGJvb2wgZHdfbWlw aV9pc19kdWFsX21vZGUoc3RydWN0IGR3X21pcGlfZHNpICpkc2kpDQo+ICt7DQo+ICsJcmV0dXJu IGRzaS0+c2xhdmUgfHwgZHNpLT5tYXN0ZXI7DQo+ICt9DQo+ICsNCj4gICAvKg0KPiAgICAqIFRo ZSBjb250cm9sbGVyIHNob3VsZCBnZW5lcmF0ZSAyIGZyYW1lcyBiZWZvcmUNCj4gICAgKiBwcmVw YXJpbmcgdGhlIHBlcmlwaGVyYWwuDQo+IEBAIC0yNzMsMTggKzI4NCwyNiBAQCBzdGF0aWMgaW50 IGR3X21pcGlfZHNpX2hvc3RfYXR0YWNoKHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpob3N0LA0KPiAg IAlzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlOw0KPiAgIAlzdHJ1Y3QgZHJtX3BhbmVsICpwYW5l bDsNCj4gICAJaW50IHJldDsNCj4gKwlpbnQgbGFuZXMgPSBkZXZpY2UtPmxhbmVzOw0KDQpJIGRv IG5vdCBzZWUgYSBiaWcgaW50ZXJlc3QgaGVyZSBpbiBhZGRpbmcgdGhlIG5ldyB2YXIgImxhbmVz IiwgSSANCnN1Z2dlc3QgdG8gcmVtb3ZlIGl0IG9yIHdhaXQgZm9yIG1vcmUgY29tbWVudHMgKG5v dCBhIHN0cm9uZyBvcHBvc2l0aW9uIA0Kb24gbXkgc2lkZTopIGp1c3QgYSBwcmVmZXJlbmNlKS4N Cg0KPiAgIA0KPiAtCWlmIChkZXZpY2UtPmxhbmVzID4gZHNpLT5wbGF0X2RhdGEtPm1heF9kYXRh X2xhbmVzKSB7DQo+ICsJaWYgKGxhbmVzID4gZHNpLT5wbGF0X2RhdGEtPm1heF9kYXRhX2xhbmVz KSB7DQo+ICAgCQlkZXZfZXJyKGRzaS0+ZGV2LCAidGhlIG51bWJlciBvZiBkYXRhIGxhbmVzKCV1 KSBpcyB0b28gbWFueVxuIiwNCj4gICAJCQlkZXZpY2UtPmxhbmVzKTsNCg0KcGxlYXNlIHVzZSAi bGFuZXMiIGhhcyB5b3UgaGF2ZSBjcmVhdGVkIGl0IDstKSBvciBrZWVwIGl0IGFzIGl0IGlzIGlm IA0KeW91IGRlY2lkZSB0byByZW1vdmUgdGhlIHZhciBsYW5lcyA6KQ0KDQoNCj4gICAJCXJldHVy biAtRUlOVkFMOw0KPiAgIAl9DQo+ICAgDQo+IC0JZHNpLT5sYW5lcyA9IGRldmljZS0+bGFuZXM7 DQo+ICsJZHNpLT5sYW5lcyA9IGxhbmVzOw0KPiAgIAlkc2ktPmNoYW5uZWwgPSBkZXZpY2UtPmNo YW5uZWw7DQo+ICAgCWRzaS0+Zm9ybWF0ID0gZGV2aWNlLT5mb3JtYXQ7DQo+ICAgCWRzaS0+bW9k ZV9mbGFncyA9IGRldmljZS0+bW9kZV9mbGFnczsNCj4gICANCj4gKwlpZiAoZHNpLT5zbGF2ZSkg ew0KPiArCQlkc2ktPnNsYXZlLT5sYW5lcyA9IGRzaS0+bGFuZXM7DQo+ICsJCWRzaS0+c2xhdmUt PmNoYW5uZWwgPSBkc2ktPmNoYW5uZWw7DQo+ICsJCWRzaS0+c2xhdmUtPmZvcm1hdCA9IGRzaS0+ Zm9ybWF0Ow0KPiArCQlkc2ktPnNsYXZlLT5tb2RlX2ZsYWdzID0gZHNpLT5tb2RlX2ZsYWdzOw0K PiArCX0NCj4gKw0KPiAgIAlyZXQgPSBkcm1fb2ZfZmluZF9wYW5lbF9vcl9icmlkZ2UoaG9zdC0+ ZGV2LT5vZl9ub2RlLCAxLCAwLA0KPiAgIAkJCQkJICAmcGFuZWwsICZicmlkZ2UpOw0KPiAgIAlp ZiAocmV0KQ0KPiBAQCAtNDQxLDEwICs0NjAsMTcgQEAgc3RhdGljIHNzaXplX3QgZHdfbWlwaV9k c2lfaG9zdF90cmFuc2ZlcihzdHJ1Y3QgbWlwaV9kc2lfaG9zdCAqaG9zdCwNCj4gICAJfQ0KPiAg IA0KPiAgIAlkd19taXBpX21lc3NhZ2VfY29uZmlnKGRzaSwgbXNnKTsNCj4gKwlpZiAoZHNpLT5z bGF2ZSkNCj4gKwkJZHdfbWlwaV9tZXNzYWdlX2NvbmZpZyhkc2ktPnNsYXZlLCBtc2cpOw0KPiAg IA0KPiAgIAlyZXQgPSBkd19taXBpX2RzaV93cml0ZShkc2ksICZwYWNrZXQpOw0KPiAgIAlpZiAo cmV0KQ0KPiAgIAkJcmV0dXJuIHJldDsNCj4gKwlpZiAoZHNpLT5zbGF2ZSkgew0KPiArCQlyZXQg PSBkd19taXBpX2RzaV93cml0ZShkc2ktPnNsYXZlLCAmcGFja2V0KTsNCj4gKwkJaWYgKHJldCkN Cj4gKwkJCXJldHVybiByZXQ7DQo+ICsJfQ0KPiAgIA0KPiAgIAlpZiAobXNnLT5yeF9idWYgJiYg bXNnLT5yeF9sZW4pIHsNCj4gICAJCXJldCA9IGR3X21pcGlfZHNpX3JlYWQoZHNpLCBtc2cpOw0K PiBAQCAtNTgzLDcgKzYwOSwxNSBAQCBzdGF0aWMgdm9pZCBkd19taXBpX2RzaV92aWRlb19wYWNr ZXRfY29uZmlnKHN0cnVjdCBkd19taXBpX2RzaSAqZHNpLA0KPiAgIAkgKiBEU0lfVk5QQ1IuTlBT SVpFLi4uIGVzcGVjaWFsbHkgYmVjYXVzZSB0aGlzIGRyaXZlciBzdXBwb3J0cw0KPiAgIAkgKiBu b24tYnVyc3QgdmlkZW8gbW9kZXMsIHNlZSBkd19taXBpX2RzaV92aWRlb19tb2RlX2NvbmZpZygp Li4uDQo+ICAgCSAqLw0KPiAtCWRzaV93cml0ZShkc2ksIERTSV9WSURfUEtUX1NJWkUsIFZJRF9Q S1RfU0laRShtb2RlLT5oZGlzcGxheSkpOw0KPiArDQo+ICsJaW50IHBrdF9zaXplOw0KDQpJIGRv IG5vdCBzZWUgYW55IGludGVyZXN0IGluIGFkZGluZyB0aGlzIHBrdF9zaXplLCB5b3UgY2FuIGRp cmVjdGx5IGRvIA0KdGhlIGRzaV93cml0ZSAoYmVsb3cpIGFuZCByZW1vdmUgbWluaW11bSA0IGxp bmVzIGluIHlvdXIgcGF0Y2ggdGhlbiAuLi4gDQpqdXN0IG15IG9waW5pb24gOiApDQoNCj4gKw0K PiArCWlmIChkd19taXBpX2lzX2R1YWxfbW9kZShkc2kpKQ0KPiArCQlwa3Rfc2l6ZSA9IFZJRF9Q S1RfU0laRShtb2RlLT5oZGlzcGxheSAvIDIpOw0KPiArCWVsc2UNCj4gKwkJcGt0X3NpemUgPSBW SURfUEtUX1NJWkUobW9kZS0+aGRpc3BsYXkpOw0KPiArDQo+ICsJZHNpX3dyaXRlKGRzaSwgRFNJ X1ZJRF9QS1RfU0laRSwgcGt0X3NpemUpOw0KPiAgIH0NCj4gICANCj4gICBzdGF0aWMgdm9pZCBk d19taXBpX2RzaV9jb21tYW5kX21vZGVfY29uZmlnKHN0cnVjdCBkd19taXBpX2RzaSAqZHNpKQ0K PiBAQCAtNzU2LDIzICs3OTAsMzkgQEAgc3RhdGljIHZvaWQgZHdfbWlwaV9kc2lfYnJpZGdlX3Bv c3RfZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQ0KPiAgIAlkc2ktPnBhbmVsX2Jy aWRnZS0+ZnVuY3MtPnBvc3RfZGlzYWJsZShkc2ktPnBhbmVsX2JyaWRnZSk7DQo+ICAgDQo+ICAg CWR3X21pcGlfZHNpX2Rpc2FibGUoZHNpKTsNCk1heWJlIHlvdSBzaG91bGQgbW92ZSBkd19taXBp X2RzaV9kaXNhYmxlKGRzaSkgY2FsbCBhZnRlciB0aGUgaWYgDQooZHNpLT5zbGF2ZSkuLi4NCg0K PiArCWlmIChkc2ktPnNsYXZlKSB7DQo+ICsJCWR3X21pcGlfZHNpX2Rpc2FibGUoZHNpLT5zbGF2 ZSk7DQo+ICsJCWNsa19kaXNhYmxlX3VucHJlcGFyZShkc2ktPnNsYXZlLT5wY2xrKTsNCj4gKwkJ cG1fcnVudGltZV9wdXQoZHNpLT5zbGF2ZS0+ZGV2KTsNCj4gKwl9DQo+ICsNCj4gICAJY2xrX2Rp c2FibGVfdW5wcmVwYXJlKGRzaS0+cGNsayk7DQo+ICAgCXBtX3J1bnRpbWVfcHV0KGRzaS0+ZGV2 KTsNCj4gICB9DQo+ICAgDQo+IC1zdGF0aWMgdm9pZCBkd19taXBpX2RzaV9icmlkZ2VfbW9kZV9z ZXQoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwNCj4gLQkJCQkJc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKm1vZGUsDQo+IC0JCQkJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9t b2RlKQ0KPiArc3RhdGljIHVuc2lnbmVkIGludCBkd19taXBpX2RzaV9nZXRfbGFuZXMoc3RydWN0 IGR3X21pcGlfZHNpICpkc2kpDQo+ICt7DQo+ICsJaWYgKGRzaS0+bWFzdGVyKQ0KPiArCQlyZXR1 cm4gZHNpLT5tYXN0ZXItPmxhbmVzICsgZHNpLT5sYW5lczsNCj4gKw0KPiArCWlmIChkc2ktPnNs YXZlKQ0KPiArCQlyZXR1cm4gZHNpLT5sYW5lcyArIGRzaS0+c2xhdmUtPmxhbmVzOw0KbWF5YmUg YSBzaG9ydCBleHBsYW5hdGlvbiBmb3IgbWFzdGVyLCBzbGF2ZSBhbmQgc2luZ2xlLWRzaSAzIGNh c2VzIGNvdWxkIA0KYmUgbmljZSBoZXJlDQoNCj4gKw0KPiArCXJldHVybiBkc2ktPmxhbmVzOw0K PiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZCBkd19taXBpX2RzaV9tb2RlX3NldChzdHJ1Y3QgZHdf bWlwaV9kc2kgKmRzaSwNCj4gKwkJCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRf bW9kZSkNCj4gICB7DQo+IC0Jc3RydWN0IGR3X21pcGlfZHNpICpkc2kgPSBicmlkZ2VfdG9fZHNp KGJyaWRnZSk7DQo+ICAgCWNvbnN0IHN0cnVjdCBkd19taXBpX2RzaV9waHlfb3BzICpwaHlfb3Bz ID0gZHNpLT5wbGF0X2RhdGEtPnBoeV9vcHM7DQo+ICAgCXZvaWQgKnByaXZfZGF0YSA9IGRzaS0+ cGxhdF9kYXRhLT5wcml2X2RhdGE7DQo+ICAgCWludCByZXQ7DQo+ICsJdTMyIGxhbmVzID0gZHdf bWlwaV9kc2lfZ2V0X2xhbmVzKGRzaSk7DQo+ICAgDQo+ICAgCWNsa19wcmVwYXJlX2VuYWJsZShk c2ktPnBjbGspOw0KPiAgIA0KPiAgIAlyZXQgPSBwaHlfb3BzLT5nZXRfbGFuZV9tYnBzKHByaXZf ZGF0YSwgYWRqdXN0ZWRfbW9kZSwgZHNpLT5tb2RlX2ZsYWdzLA0KPiAtCQkJCSAgICAgZHNpLT5s YW5lcywgZHNpLT5mb3JtYXQsICZkc2ktPmxhbmVfbWJwcyk7DQo+ICsJCQkJICAgICBsYW5lcywg ZHNpLT5mb3JtYXQsICZkc2ktPmxhbmVfbWJwcyk7DQo+ICAgCWlmIChyZXQpDQo+ICAgCQlEUk1f REVCVUdfRFJJVkVSKCJQaHkgZ2V0X2xhbmVfbWJwcygpIGZhaWxlZFxuIik7DQo+ICAgDQo+IEBA IC04MDQsMTIgKzg1NCwyNSBAQCBzdGF0aWMgdm9pZCBkd19taXBpX2RzaV9icmlkZ2VfbW9kZV9z ZXQoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwNCj4gICAJZHdfbWlwaV9kc2lfc2V0X21vZGUo ZHNpLCAwKTsNCj4gICB9DQo+ICAgDQo+ICtzdGF0aWMgdm9pZCBkd19taXBpX2RzaV9icmlkZ2Vf bW9kZV9zZXQoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwNCj4gKwkJCQkJc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKm1vZGUsDQo+ICsJCQkJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1 c3RlZF9tb2RlKQ0KPiArew0KPiArCXN0cnVjdCBkd19taXBpX2RzaSAqZHNpID0gYnJpZGdlX3Rv X2RzaShicmlkZ2UpOw0KPiArDQo+ICsJZHdfbWlwaV9kc2lfbW9kZV9zZXQoZHNpLCBhZGp1c3Rl ZF9tb2RlKTsNCj4gKwlpZiAoZHNpLT5zbGF2ZSkNCj4gKwkJZHdfbWlwaV9kc2lfbW9kZV9zZXQo ZHNpLT5zbGF2ZSwgYWRqdXN0ZWRfbW9kZSk7DQo+ICt9DQo+ICsNCj4gICBzdGF0aWMgdm9pZCBk d19taXBpX2RzaV9icmlkZ2VfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpDQo+ICAg ew0KPiAgIAlzdHJ1Y3QgZHdfbWlwaV9kc2kgKmRzaSA9IGJyaWRnZV90b19kc2koYnJpZGdlKTsN Cj4gICANCj4gICAJLyogU3dpdGNoIHRvIHZpZGVvIG1vZGUgZm9yIHBhbmVsLWJyaWRnZSBlbmFi bGUgJiBwYW5lbCBlbmFibGUgKi8NCj4gICAJZHdfbWlwaV9kc2lfc2V0X21vZGUoZHNpLCBNSVBJ X0RTSV9NT0RFX1ZJREVPKTsNCj4gKwlpZiAoZHNpLT5zbGF2ZSkNCj4gKwkJZHdfbWlwaV9kc2lf c2V0X21vZGUoZHNpLT5zbGF2ZSwgTUlQSV9EU0lfTU9ERV9WSURFTyk7DQo+ICAgfQ0KPiAgIA0K PiAgIHN0YXRpYyBlbnVtIGRybV9tb2RlX3N0YXR1cw0KPiBAQCAtOTQ5LDYgKzEwMTIsMjAgQEAg c3RhdGljIHZvaWQgX19kd19taXBpX2RzaV9yZW1vdmUoc3RydWN0IGR3X21pcGlfZHNpICpkc2kp DQo+ICAgCXBtX3J1bnRpbWVfZGlzYWJsZShkc2ktPmRldik7DQo+ICAgfQ0KPiAgIA0KPiArdm9p ZCBkd19taXBpX2RzaV9zZXRfc2xhdmUoc3RydWN0IGR3X21pcGlfZHNpICpkc2ksIHN0cnVjdCBk d19taXBpX2RzaSAqc2xhdmUpDQo+ICt7DQo+ICsJLyogaW50cm9kdWNlIGNvbnRyb2xsZXJzIHRv IGVhY2ggb3RoZXIgKi8NCj4gKwlkc2ktPnNsYXZlID0gc2xhdmU7DQo+ICsJZHNpLT5zbGF2ZS0+ bWFzdGVyID0gZHNpOw0KPiArDQo+ICsJLyogbWlncmF0ZSBzZXR0aW5ncyBmb3IgYWxyZWFkeSBh dHRhY2hlZCBkaXNwbGF5cyAqLw0KPiArCWRzaS0+c2xhdmUtPmxhbmVzID0gZHNpLT5sYW5lczsN Cj4gKwlkc2ktPnNsYXZlLT5jaGFubmVsID0gZHNpLT5jaGFubmVsOw0KPiArCWRzaS0+c2xhdmUt PmZvcm1hdCA9IGRzaS0+Zm9ybWF0Ow0KPiArCWRzaS0+c2xhdmUtPm1vZGVfZmxhZ3MgPSBkc2kt Pm1vZGVfZmxhZ3M7DQoNCkkgdGhvdWdoIGl0IGhhcyBiZWVuIGRvbmUgZWFybGllciBpbiBkd19t aXBpX2RzaV9ob3N0X2F0dGFjaCgpIGZ1bmN0aW9uPw0KDQo+ICt9DQo+ICtFWFBPUlRfU1lNQk9M X0dQTChkd19taXBpX2RzaV9zZXRfc2xhdmUpOw0KPiArDQo+ICAgLyoNCj4gICAgKiBQcm9iZS9y ZW1vdmUgQVBJLCB1c2VkIGZyb20gcGxhdGZvcm1zIGJhc2VkIG9uIHRoZSBEUk0gYnJpZGdlIEFQ SS4NCj4gICAgKi8NCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2JyaWRnZS9kd19taXBpX2Rz aS5oIGIvaW5jbHVkZS9kcm0vYnJpZGdlL2R3X21pcGlfZHNpLmgNCj4gaW5kZXggNmQ3ZjhlYjVk OWYyLi41ZmQ5OTdjZGYyODEgMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvZHJtL2JyaWRnZS9kd19t aXBpX2RzaS5oDQo+ICsrKyBiL2luY2x1ZGUvZHJtL2JyaWRnZS9kd19taXBpX2RzaS5oDQo+IEBA IC0zNyw1ICszNyw2IEBAIHN0cnVjdCBkd19taXBpX2RzaSAqZHdfbWlwaV9kc2lfcHJvYmUoc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwNCj4gICB2b2lkIGR3X21pcGlfZHNpX3JlbW92ZShz dHJ1Y3QgZHdfbWlwaV9kc2kgKmRzaSk7DQo+ICAgaW50IGR3X21pcGlfZHNpX2JpbmQoc3RydWN0 IGR3X21pcGlfZHNpICpkc2ksIHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7DQo+ICAgdm9p ZCBkd19taXBpX2RzaV91bmJpbmQoc3RydWN0IGR3X21pcGlfZHNpICpkc2kpOw0KPiArdm9pZCBk d19taXBpX2RzaV9zZXRfc2xhdmUoc3RydWN0IGR3X21pcGlfZHNpICpkc2ksIHN0cnVjdCBkd19t aXBpX2RzaSAqc2xhdmUpOw0KDQoNClRlc3RlZC1ieTogUGhpbGlwcGUgQ29ybnUgPHBoaWxpcHBl LmNvcm51QHN0LmNvbT4gKG9ubHkgb24gc3RtMzIgd2l0aCANCnNpbmdsZSBkc2kgc28gZHVhbC1k c2kgaGFzIG5vdCBiZWVuIHRlc3RlZCkNCg0KSSB3YWl0IGZvciBtb3JlIGNvbW1lbnRzICYgKG1p bm9yKSB1cGRhdGVzIGJlZm9yZSBnaXZpbmcgbXkgcmV2aWV3ZWQtYnkgDQpidXQgeW91IGFyZSBj bG9zZSB0byBoYXZlIGl0IDogKQ0KDQptYW55IHRoYW5rcywNClBoaWxpcHBlIDotKQ0KDQo+ICAg DQo+ICAgI2VuZGlmIC8qIF9fRFdfTUlQSV9EU0lfXyAqLw0KPiAKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==