From mboxrd@z Thu Jan 1 00:00:00 1970 From: Philippe CORNU Subject: Re: [PATCH v6 3/3] drm/rockchip: Add ROCKCHIP DW MIPI DSI controller driver Date: Thu, 7 Dec 2017 14:29:43 +0000 Message-ID: References: <1512551301-12946-1-git-send-email-nickey.yang@rock-chips.com> <1512551301-12946-4-git-send-email-nickey.yang@rock-chips.com> <20171206215243.GB14257@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx07-00178001.pphosted.com (mx07-00178001.pphosted.com [62.209.51.94]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4AD286E7FF for ; Thu, 7 Dec 2017 14:29:55 +0000 (UTC) In-Reply-To: <20171206215243.GB14257@google.com> Content-Language: en-US Content-ID: <882346E769984843BF962A44CA60E9F9@st.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Brian Norris , Nickey Yang Cc: "mark.rutland@arm.com" , "airlied@linux.ie" , "hoegsberg@gmail.com" , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , Yannick FERTRE , "linux-rockchip@lists.infradead.org" , "robh+dt@kernel.org" , "laurent.pinchart@ideasonboard.com" , "zyw@rock-chips.com" , "xbl@rock-chips.com" , "mka@chromium.org" , "hl@rock-chips.com" List-Id: dri-devel@lists.freedesktop.org SGkgQnJpYW4sDQoNCg0KT24gMTIvMDYvMjAxNyAxMDo1MiBQTSwgQnJpYW4gTm9ycmlzIHdyb3Rl Og0KPiBIaSBOaWNrZXksIG90aGVycywNCj4gDQo+IEkganVzdCB3YW50IHRvIGhpZ2hsaWdodCBh IHRoaW5nIG9yIHR3byBoZXJlLiBPdGhlcndpc2UsIG15DQo+ICdSZXZpZXdlZC1ieScgc3RpbGwg YmFzaWNhbGx5IHN0YW5kcyAoRldJVykuDQo+IA0KPiBPbiBXZWQsIERlYyAwNiwgMjAxNyBhdCAw NTowODoyMVBNICswODAwLCBOaWNrZXkgWWFuZyB3cm90ZToNCj4+IEFkZCB0aGUgUk9DS0NISVAg RFNJIGNvbnRyb2xsZXIgZHJpdmVyIHRoYXQgdXNlcyB0aGUgU3lub3BzeXMgRGVzaWduV2FyZQ0K Pj4gTUlQSSBEU0kgaG9zdCBjb250cm9sbGVyIGJyaWRnZS4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5 OiBOaWNrZXkgWWFuZyA8bmlja2V5LnlhbmdAcm9jay1jaGlwcy5jb20+DQo+PiBTaWduZWQtb2Zm LWJ5OiBCcmlhbiBOb3JyaXMgPGJyaWFubm9ycmlzQGNocm9taXVtLm9yZz4NCj4+IFJldmlld2Vk LWJ5OiBCcmlhbiBOb3JyaXMgPGJyaWFubm9ycmlzQGNocm9taXVtLm9yZz4NCj4+IFJldmlld2Vk LWJ5OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4NCj4+IC0tLQ0KPj4gY2hhbmdl Og0KPj4NCj4+IHYyOg0KPj4gICAgIGFkZCBlcnJfcGxscmVmLCByZW1vdmUgdW5uZWNlc3Nhcnkg ZW5jb2Rlci5lbmFibGUgJiBkaXNhYmxlDQo+PiAgICAgY29ycmVjdCBzcGVsbGluZyBtaXN0YWtl cw0KPj4gdjM6DQo+PiAgICAgY2FsbCBkd19taXBpX2RzaV91bmJpbmQoKSBpbiBkd19taXBpX2Rz aV9yb2NrY2hpcF91bmJpbmQoKQ0KPj4gICAgIGZpeCB0eXBvLCB1c2Ugb2ZfZGV2aWNlX2dldF9t YXRjaF9kYXRhKCksDQo+PiAgICAgY2hhbmdlIHNvbWUg4oCYYmluZCgp4oCZIGxvZ2ljIGludG8g J3Byb2JlKCknDQo+PiAgICAgYWRkICdkZXZfc2V0X2RydmRhdGEoKScNCj4+IHY0Og0KPj4gICAg cmV0dXJuIC1FSU5WQUwgd2hlbiBjYW4gbm90IGdldCBiZXN0X2ZyZXENCj4+ICAgIGFkZCBhIGNs YXJpZnlpbmcgY29tbWVudCB3aGVuIGdldCB2Y28NCj4+ICAgIGFkZCByZXZpZXcgdGFnDQo+PiB2 NToNCj4+ICAgIGtlZXAgb3VyIHBvd2VyIGRvbWFpbiBlbmFibGVkIHdoaWxlIHRvdWNoaW5nIEdS Rg0KPj4gdjY6DQo+PiAgICBjaGFuZ2UgZnVuYyBkd19taXBpX2VuY29kZXJfZGlzYWJsZSBuYW1l IHRvDQo+PiAgICBkd19taXBpX2RzaV9lbmNvZGVyX2Rpc2FibGUNCj4gDQo+IFdlIG5vdGljZWQg YSByZWdyZXNzaW9uIHcuci50LiBwbV9ydW50aW1lXyooKSBoYW5kbGluZyB1c2luZyB0aGlzIHBh dGNoLA0KPiBoZW5jZSB0aGUgcG1fcnVudGltZSBjaGFuZ2VzIGluIHY1L3Y2LiBXZSBhY3R1YWxs eSBuZWVkIHRvIGtlZXAgb3VyDQo+IHBvd2VyIGRvbWFpbiBlbmFibGVkIGluIHRoZSBtb2RlX3Nl dCgpIGZ1bmN0aW9uLCB3aGVyZSB3ZSBzdGFydCB0bw0KPiBjb25maWd1cmUgc29tZSBSb2NrY2hp cC1zcGVjaWZpYyByZWdpc3RlcnMgKEdSRikuIE1vcmUgb24gdGhhdCBiZWxvdy4NCj4gDQo+Pg0K Pj4gICBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvS2NvbmZpZyAgICAgICAgICAgICAgICB8ICAg IDIgKy0NCj4+ICAgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL01ha2VmaWxlICAgICAgICAgICAg ICAgfCAgICAyICstDQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRzaS5j ICAgICAgICAgIHwgMTM0OSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4gICBkcml2ZXJzL2dw dS9kcm0vcm9ja2NoaXAvZHctbWlwaS1kc2lfcm9ja2NoaXAuYyB8ICA3ODUgKysrKysrKysrKysr Kw0KPj4gICBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2Rydi5jICAgICB8 ICAgIDIgKy0NCj4+ICAgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9kcnYu aCAgICAgfCAgICAyICstDQo+PiAgIDYgZmlsZXMgY2hhbmdlZCwgNzg5IGluc2VydGlvbnMoKyks IDEzNTMgZGVsZXRpb25zKC0pDQo+PiAgIGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9k cm0vcm9ja2NoaXAvZHctbWlwaS1kc2kuYw0KPj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpX3JvY2tjaGlwLmMNCj4+DQo+IA0KPiAuLi4N Cj4gDQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNp X3JvY2tjaGlwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHctbWlwaS1kc2lfcm9ja2No aXAuYw0KPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+IGluZGV4IDAwMDAwMDAuLjY2YWI2ZmUN Cj4+IC0tLSAvZGV2L251bGwNCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1t aXBpLWRzaV9yb2NrY2hpcC5jDQo+PiBAQCAtMCwwICsxLDc4NSBAQA0KPiANCj4gLi4uDQo+IA0K Pj4gK3N0YXRpYyB2b2lkIGR3X21pcGlfZHNpX2VuY29kZXJfbW9kZV9zZXQoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyLA0KPj4gKwkJCQkJIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2Rl LA0KPj4gKwkJCQkJIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZCkNCj4+ICt7DQo+ PiArCXN0cnVjdCBkd19taXBpX2RzaV9yb2NrY2hpcCAqZHNpID0gdG9fZHNpKGVuY29kZXIpOw0K Pj4gKwljb25zdCBzdHJ1Y3Qgcm9ja2NoaXBfZHdfZHNpX2NoaXBfZGF0YSAqY2RhdGEgPSBkc2kt PmNkYXRhOw0KPj4gKwlpbnQgdmFsLCByZXQsIG11eDsNCj4+ICsNCj4+ICsJbXV4ID0gZHJtX29m X2VuY29kZXJfYWN0aXZlX2VuZHBvaW50X2lkKGRzaS0+ZGV2LT5vZl9ub2RlLA0KPj4gKwkJCQkJ CSZkc2ktPmVuY29kZXIpOw0KPj4gKwlpZiAobXV4IDwgMCkNCj4+ICsJCXJldHVybjsNCj4+ICsJ LyoNCj4+ICsJICogRm9yIHRoZSBSSzMzOTksIHRoZSBjbGsgb2YgZ3JmIG11c3QgYmUgZW5hYmxl ZCBiZWZvcmUgd3JpdGluZyBncmYNCj4+ICsJICogcmVnaXN0ZXIuIEFuZCBmb3IgUkszMjg4IG9y IG90aGVyIHNvYywgdGhpcyBncmZfY2xrIG11c3QgYmUgTlVMTCwNCj4+ICsJICogdGhlIGNsa19w cmVwYXJlX2VuYWJsZSByZXR1cm4gdHJ1ZSBkaXJlY3RseS4NCj4+ICsJICovDQo+PiArCXJldCA9 IGNsa19wcmVwYXJlX2VuYWJsZShkc2ktPmdyZl9jbGspOw0KPj4gKwlpZiAocmV0KSB7DQo+PiAr CQlEUk1fREVWX0VSUk9SKGRzaS0+ZGV2LCAiRmFpbGVkIHRvIGVuYWJsZSBncmZfY2xrOiAlZFxu IiwgcmV0KTsNCj4+ICsJCXJldHVybjsNCj4+ICsJfQ0KPj4gKwlwbV9ydW50aW1lX2dldF9zeW5j KGRzaS0+ZGV2KTsNCj4gDQo+IFdoYXQgaGFwcGVucyBpZiB0aGVyZSdzIGEgY2xrX3ByZXBhcmVf ZW5hYmxlKCkgZmFpbHVyZSBvciBmYWlsdXJlIHRvDQo+IHJldHJpZXZlIHRoZSBlbmRwb2ludCBJ RCBlYXJsaWVyIGluIHRoaXMgZnVuY3Rpb24/IFlvdSB3b24ndCBjYWxsDQo+IHBtX3J1bnRpbWVf Z2V0XyooKS4uLmJ1dCBtaWdodCB3ZSBzdGlsbCBzZWUgYSBjYWxsIHRvDQo+IGR3X21pcGlfZHNp X2VuY29kZXJfZGlzYWJsZSgpLCB3aGljaCB3b3VsZCBtZWFuIHdlIGdldCB1bmJhbGFuY2VkDQo+ IHJ1bnRpbWUgUE0gc3RhdHVzPw0KPiANCj4gQWxzbyAoYW5kIG1vcmUgaW1wb3J0YW50bHkpLCBp cyBpdCBmYWlyIHRvIGRvIGFsbCBvZiB0aGlzIGluIG1vZGVfc2V0KCk/DQo+IEkgYmVsaWV2ZSBB cmNoaXQgYXNrZWQgYWJvdXQgdGhpcyBiZWZvcmUsIGFuZCB0aGUgcmVhc29uIHdlJ3JlIGRvaW5n DQo+IHRoaXMgc3R1ZmYgaW4gbW9kZV9zZXQoKSBub3cgKHdoZXJlIHByZXZpb3VzbHksIHRoZSBS b2NrY2hpcCBkcml2ZXIgd2FzDQo+IGRvaW5nIGl0IGluIC0+ZW5hYmxlKCkpIGlzIGJlY2F1c2Ug d2hlbiBQaGlsaXBwZSBleHRyYWN0ZWQgdGhlIHN5bm9wc3lzDQo+IGJyaWRnZSBkcml2ZXIsIHRo YXQgY29kZSBtaWdyYXRlZCB0byAtPm1vZGVfc2V0KCkuDQoNClJlZ2FyZGluZyBtb2RlX3NldCgp LCBsZXQncyBtZSBleHBsYWluIG1vcmUgd2hhdCBJIGRpZDoNCi0gdHJhbnNmb3JtIHRoZSBvcmln aW5hbCBjb2RlIGZyb20gUm9ja2NoaXAgKGVuY29kZXIgKyBjb25uZWN0b3IgZHJtIA0KYXBpKSB0 byBhIGdlbmVyaWMgYnJpZGdlIChicmlkZ2UgZHJtIGFwaSkuDQotIGFkZCBwYW5lbC1icmlkZ2Ug aW50ZXJmYWNlDQotIC4uLiAobW9yZSBkZXRhaWxzIGluIHRoZSBjaGFuZ2UgbG9nIA0KaHR0cHM6 Ly93d3cuc3Bpbmljcy5uZXQvbGlzdHMvZHJpLWRldmVsL21zZzE0NzE2Ny5odG1sKQ0KDQpTbyB3 ZSBoYXZlOg0KY3J0YyAtPiBkdyBtaXBpIGRzaSBicmlkZ2UgLT4gcGFuZWwtYnJpZGdlICJicmlk Z2UgbmV4dCIgLT4gcGFuZWwNCg0KVGhlIGJyaWRnZSBwcmVfZW5hYmxlKCkgY2FsbHMgZmlyc3Qg dGhlICJicmlkZ2UgbmV4dCIgcHJlX2VuYWJsZSgpIChpZSANCnRoZSBwYW5lbC1icmlkZ2UgcHJl LWVuYWJsZSkgYmVmb3JlIGNhbGxpbmcgdGhlIGJyaWRnZSBwcmVfZW5hYmxlIChpZSANCnRoZSBk dyBtaXBpIGRzaSBicmlkZ2UgcHJlLWVuYWJsZSAobm90IHVzZWQgaGVyZSkuIHNlZSBpbiANCmRy bV9icmlkZ2VfcHJlX2VuYWJsZSgpIGluIGRybV9icmlkZ2UuYyBmb3IgZGV0YWlscw0KDQpUaGUg cGFuZWwtYnJpZGdlIHByZV9lbmFibGUoKSBjYWxscyBkcm1fcGFuZWxfcHJlcGFyZSgpLiBTZWUg aW4gDQpicmlkZ2UvcGFuZWwuYyBmb3IgZGV0YWlscy4NCg0KU28gaW4gdGhlIGR3IG1pcGkgZHNp IGJyaWRnZSwgd2UgbmVlZCB0byBjb25maWd1cmUgYW5kIHN0YXJ0IA0KImV2ZXJ5dGhpbmciIGJl Zm9yZSB0aGUgYnJpZGdlIHByZV9lbmFibGUgc28gSSBwdXQgdGhlICJmb3JtZXIiIGVuY29kZXIg DQplbmFibGUoKSBzb3VyY2UgY29kZSBpbnRvIHRoZSBuZXcgYnJpZGdlIG1vZGVfc2V0KCkuDQoN ClRlbGwgbWUgaWYgSSBhbSBub3QgY2xlYXIgZW5vdWdoIGFzIGl0IGlzIG5vdCBzbyBlYXN5IHRv IGV4cGxhaW4gOiApDQoNClRoYW5rcywNClBoaWxpcHBlIDotKQ0KDQo+IA0KPiBCdXQsIEknbSBy ZWFkaW5nIHRoZSBjb21tZW50cyBvbiBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3M6Om1vZGVfc2V0 LCBhbmQNCj4gSSBzZWU6DQo+IA0KPiAgICAgICAgICAvKioNCj4gICAgICAgICAgICogQG1vZGVf c2V0Og0KPiAgICAgICAgICAgKg0KPiAgICAgICAgICAgKiBUaGlzIGNhbGxiYWNrIGlzIHVzZWQg dG8gdXBkYXRlIHRoZSBkaXNwbGF5IG1vZGUgb2YgYW4gZW5jb2Rlci4NCj4gICAgICAgICAgICoN Cj4gICAgICAgICAgICogTm90ZSB0aGF0IHRoZSBkaXNwbGF5IHBpcGUgaXMgY29tcGxldGVseSBv ZmYgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzDQo+ICAgICAgICAgICAqIGNhbGxlZC4gRHJpdmVycyB3 aGljaCBuZWVkIGhhcmR3YXJlIHRvIGJlIHJ1bm5pbmcgYmVmb3JlIHRoZXkgcHJvZ3JhbQ0KPiAg ICAgICAgICAgKiB0aGUgbmV3IGRpc3BsYXkgbW9kZSAoYmVjYXVzZSB0aGV5IGltcGxlbWVudCBy dW50aW1lIFBNKSBzaG91bGQgbm90DQo+ICAgICAgICAgICAqIHVzZSB0aGlzIGhvb2ssIGJlY2F1 c2UgdGhlIGhlbHBlciBsaWJyYXJ5IGNhbGxzIGl0IG9ubHkgb25jZSBhbmQgbm90DQo+ICAgICAg ICAgICAqIGV2ZXJ5IHRpbWUgdGhlIGRpc3BsYXkgcGlwZWxpbmUgaXMgc3VzcGVuZCB1c2luZyBl aXRoZXIgRFBNUyBvciB0aGUNCj4gICAgICAgICAgICogbmV3ICJBQ1RJVkUiIHByb3BlcnR5LiBT dWNoIGRyaXZlcnMgc2hvdWxkIGluc3RlYWQgbW92ZSBhbGwgdGhlaXINCj4gICAgICAgICAgICog ZW5jb2RlciBzZXR1cCBpbnRvIHRoZSBAZW5hYmxlIGNhbGxiYWNrLg0KPiANCj4gVGhhdCBzb3Vu ZHMgbGlrZSBwZXJoYXBzIHRoZSBzeW5vcHN5cyBkcml2ZXIgc2hvdWxkIGJlIG1vdmluZyB0byB1 c2UNCj4gLT5lbmFibGUoKSBpbnN0ZWFkLCBzbyB0aGUgUm9ja2NoaXAgZHJpdmVyIGNhbiBkbyB0 aGF0IGFzIHdlbGw/DQo+IA0KPiBBdCBhbnkgcmF0ZSwgSSBoYXZlbid0IGZvdW5kIGFueSByZWFs IHByb2JsZW0gd2l0aCB1c2luZyBtb2RlX3NldCgpIHNvDQo+IGZhciwgYnV0IEkgd2FzIGp1c3Qg Y3VyaW91cyB3aGF0IHRoZSByZWNvbW1lbmRlZCBwcmFjdGljZSB3YXMuDQo+IA0KPj4gKwl2YWwg PSBjZGF0YS0+ZHNpMF9lbl9iaXQgPDwgMTY7DQo+PiArCWlmIChtdXgpDQo+PiArCQl2YWwgfD0g Y2RhdGEtPmRzaTBfZW5fYml0Ow0KPj4gKwlyZWdtYXBfd3JpdGUoZHNpLT5ncmZfcmVnbWFwLCBj ZGF0YS0+Z3JmX3N3aXRjaF9yZWcsIHZhbCk7DQo+PiArDQo+PiArCWlmIChjZGF0YS0+Z3JmX2Rz aTBfbW9kZV9yZWcpDQo+PiArCQlyZWdtYXBfd3JpdGUoZHNpLT5ncmZfcmVnbWFwLCBjZGF0YS0+ Z3JmX2RzaTBfbW9kZV9yZWcsDQo+PiArCQkJICAgICBjZGF0YS0+Z3JmX2RzaTBfbW9kZSk7DQo+ PiArDQo+PiArCWNsa19kaXNhYmxlX3VucHJlcGFyZShkc2ktPmdyZl9jbGspOw0KPj4gK30NCj4+ ICsNCj4+ICtzdGF0aWMgaW50DQo+PiArZHdfbWlwaV9kc2lfZW5jb2Rlcl9hdG9taWNfY2hlY2so c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLA0KPj4gKwkJCQkgc3RydWN0IGRybV9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlLA0KPj4gKwkJCQkgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNv bm5fc3RhdGUpDQo+PiArew0KPj4gKwlzdHJ1Y3Qgcm9ja2NoaXBfY3J0Y19zdGF0ZSAqcyA9IHRv X3JvY2tjaGlwX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7DQo+PiArCXN0cnVjdCBkd19taXBpX2Rz aV9yb2NrY2hpcCAqZHNpID0gdG9fZHNpKGVuY29kZXIpOw0KPj4gKw0KPj4gKwlzd2l0Y2ggKGRz aS0+Zm9ybWF0KSB7DQo+PiArCWNhc2UgTUlQSV9EU0lfRk1UX1JHQjg4ODoNCj4+ICsJCXMtPm91 dHB1dF9tb2RlID0gUk9DS0NISVBfT1VUX01PREVfUDg4ODsNCj4+ICsJCWJyZWFrOw0KPj4gKwlj YXNlIE1JUElfRFNJX0ZNVF9SR0I2NjY6DQo+PiArCQlzLT5vdXRwdXRfbW9kZSA9IFJPQ0tDSElQ X09VVF9NT0RFX1A2NjY7DQo+PiArCQlicmVhazsNCj4+ICsJY2FzZSBNSVBJX0RTSV9GTVRfUkdC NTY1Og0KPj4gKwkJcy0+b3V0cHV0X21vZGUgPSBST0NLQ0hJUF9PVVRfTU9ERV9QNTY1Ow0KPj4g KwkJYnJlYWs7DQo+PiArCWRlZmF1bHQ6DQo+PiArCQlXQVJOX09OKDEpOw0KPj4gKwkJcmV0dXJu IC1FSU5WQUw7DQo+PiArCX0NCj4+ICsNCj4+ICsJcy0+b3V0cHV0X3R5cGUgPSBEUk1fTU9ERV9D T05ORUNUT1JfRFNJOw0KPj4gKw0KPj4gKwlyZXR1cm4gMDsNCj4+ICt9DQo+PiArDQo+PiArc3Rh dGljIHZvaWQgZHdfbWlwaV9kc2lfZW5jb2Rlcl9kaXNhYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlcikNCj4+ICt7DQo+PiArCXN0cnVjdCBkd19taXBpX2RzaV9yb2NrY2hpcCAqZHNpID0g dG9fZHNpKGVuY29kZXIpOw0KPj4gKw0KPj4gKwlwbV9ydW50aW1lX3B1dChkc2ktPmRldik7DQo+ PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2VuY29kZXJfaGVscGVyX2Z1 bmNzDQo+PiArZHdfbWlwaV9kc2lfZW5jb2Rlcl9oZWxwZXJfZnVuY3MgPSB7DQo+PiArCS5tb2Rl X3NldCA9IGR3X21pcGlfZHNpX2VuY29kZXJfbW9kZV9zZXQsDQo+PiArCS5hdG9taWNfY2hlY2sg PSBkd19taXBpX2RzaV9lbmNvZGVyX2F0b21pY19jaGVjaywNCj4+ICsJLmRpc2FibGUgPSBkd19t aXBpX2RzaV9lbmNvZGVyX2Rpc2FibGUsDQo+PiArfTsNCj4gDQo+IC4uLg0KPiANCj4gQnJpYW4N Cj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=