From mboxrd@z Thu Jan 1 00:00:00 1970 From: Harry Wentland Subject: Re: [PATCH v8 6/6] drm/dp_mst: Add helpers for MST DSC and virtual DPCD aux Date: Mon, 26 Aug 2019 20:51:57 +0000 Message-ID: <8c8a63c4-0125-2f87-5a12-668d42dd5a41@amd.com> References: <20190826180507.17802-1-David.Francis@amd.com> <20190826180507.17802-7-David.Francis@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from NAM04-SN1-obe.outbound.protection.outlook.com (mail-eopbgr700066.outbound.protection.outlook.com [40.107.70.66]) by gabe.freedesktop.org (Postfix) with ESMTPS id 98EE16E301 for ; Mon, 26 Aug 2019 20:51:59 +0000 (UTC) In-Reply-To: <20190826180507.17802-7-David.Francis@amd.com> 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: "Francis, David" , "dri-devel@lists.freedesktop.org" List-Id: dri-devel@lists.freedesktop.org T24gMjAxOS0wOC0yNiAyOjA1IHAubS4sIERhdmlkIEZyYW5jaXMgd3JvdGU6DQo+IEFkZCBkcm1f ZHBfbXN0X2RzY19hdXhfZm9yX3BvcnQuIFRvIGVuYWJsZSBEU0MsIHRoZSBEU0NfRU5BQkxFRA0K PiByZWdpc3RlciBtaWdodCBoYXZlIHRvIGJlIHdyaXR0ZW4gb24gdGhlIGxlYWYgcG9ydCdzIERQ Q0QsDQo+IGl0cyBwYXJlbnQncyBEUENELCBvciB0aGUgTVNUIG1hbmFnZXIncyBEUENELiBUaGlz IGZ1bmN0aW9uDQo+IGZpbmRzIHRoZSBjb3JyZWN0IGF1eCBmb3IgdGhlIGpvYi4NCj4gDQo+IEFz IHBhcnQgb2YgdGhpcywgYWRkIGRybV9kcF9tc3RfaXNfdmlydHVhbF9kcGNkLiBWaXJ0dWFsIERQ Q0QNCj4gaXMgYSBEUCBmZWF0dXJlIG5ldyBpbiBEUCB2MS40LCB3aGljaCBleHBvc2VzIGNlcnRh aW4gRFBDRA0KPiByZWdpc3RlcnMgb24gdmlydHVhbCBwb3J0cy4NCj4gDQo+IHYyOiBSZW1lbWJl ciB0byB1bmxvY2sgbXV0ZXggb24gYWxsIHBhdGhzDQo+IA0KPiBDYzogTHl1ZGUgUGF1bCA8bHl1 ZGVAcmVkaGF0LmNvbT4NCj4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51eC5pbnRl bC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IERhdmlkIEZyYW5jaXMgPERhdmlkLkZyYW5jaXNAYW1k LmNvbT4NCj4gLS0tDQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5jIHwg MTUyICsrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ICBpbmNsdWRlL2RybS9kcm1fZHBfbXN0 X2hlbHBlci5oICAgICAgIHwgICAyICsNCj4gIDIgZmlsZXMgY2hhbmdlZCwgMTU0IGluc2VydGlv bnMoKykNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90b3Bv bG9neS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYw0KPiBpbmRleCA1 MDI5MjNjMjQ0NTAuLjFmZWU5MmJkNTFmNyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2RybV9kcF9tc3RfdG9wb2xvZ3kuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX21z dF90b3BvbG9neS5jDQo+IEBAIC00MTUwLDMgKzQxNTAsMTU1IEBAIHN0YXRpYyB2b2lkIGRybV9k cF9tc3RfdW5yZWdpc3Rlcl9pMmNfYnVzKHN0cnVjdCBkcm1fZHBfYXV4ICphdXgpDQo+ICB7DQo+ ICAJaTJjX2RlbF9hZGFwdGVyKCZhdXgtPmRkYyk7DQo+ICB9DQo+ICsNCj4gKy8qKg0KPiArICog ZHJtX2RwX21zdF9pc192aXJ0dWFsX2RwY2QoKSAtIElzIHRoZSBnaXZlbiBwb3J0IGEgdmlydHVh bCBEUCBQZWVyIERldmljZQ0KPiArICogQHBvcnQ6IFRoZSBwb3J0IHRvIGNoZWNrDQo+ICsgKg0K PiArICogQSBzaW5nbGUgcGh5c2ljYWwgTVNUIGh1YiBvYmplY3QgY2FuIGJlIHJlcHJlc2VudGVk IGluIHRoZSB0b3BvbG9neQ0KPiArICogYnkgbXVsdGlwbGUgYnJhbmNoZXMsIHdpdGggdmlydHVh bCBwb3J0cyBiZXR3ZWVuIHRob3NlIGJyYW5jaGVzLg0KPiArICoNCj4gKyAqIEFzIG9mIERQMS40 LCBBbiBNU1QgaHViIHdpdGggaW50ZXJuYWwgKHZpcnR1YWwpIHBvcnRzIG11c3QgZXhwb3NlDQo+ ICsgKiBjZXJ0YWluIERQQ0QgcmVnaXN0ZXJzIG92ZXIgdGhvc2UgcG9ydHMuIFNlZSBzZWN0aW9u cyAyLjYuMS4xLjENCj4gKyAqIGFuZCAyLjYuMS4xLjIgb2YgRGlzcGxheSBQb3J0IHNwZWNpZmlj YXRpb24gdjEuNCBmb3IgZGV0YWlscy4NCj4gKyAqDQoNCkkndmUgYnJpZWZseSBwZXJ1c2VkIHRo ZXNlIHNlY3Rpb25zIGFuZCB0aGV5IHNlZW0gcXVpdGUgdmFndWUuIFdoYXQgd2UNCmhhdmUgaGVy ZSBpcyBwcm9iYWJseSBhIHJlYXNvbmFibGUgaW1wbGVtZW50YXRpb24sIHRob3VnaC4NCg0KTWln aHQgYmUgd29ydGh3aGlsZSB0byBtZW50aW9uIHRoYXQgdGhlIHNwZWMgaXMgbm90IHZlcnkgY2xl YXIgb24gdGhpcw0KYW5kIHRoYXQgdGhpcyBpcyB0aGUgYmVzdCBpbnRlcnByZXRhdGlvbiB3ZSBo YXZlLg0KDQo+ICsgKiBNYXkgYWNxdWlyZSBtZ3ItPmxvY2sNCj4gKyAqDQo+ICsgKiBSZXR1cm5z Og0KPiArICogdHJ1ZSBpZiB0aGUgcG9ydCBpcyBhIHZpcnR1YWwgRFAgcGVlciBkZXZpY2UsIGZh bHNlIG90aGVyd2lzZQ0KPiArICovDQo+ICtzdGF0aWMgYm9vbCBkcm1fZHBfbXN0X2lzX3ZpcnR1 YWxfZHBjZChzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICpwb3J0KQ0KPiArew0KPiArCXN0cnVjdCBk cm1fZHBfbXN0X3BvcnQgKmRvd25zdHJlYW1fcG9ydDsNCj4gKw0KPiArCWlmICghcG9ydCkNCj4g KwkJcmV0dXJuIGZhbHNlOw0KPiArDQoNCkNhbiB3ZSBlYXJseSByZXR1cm4gd2l0aCBmYWxzZSBp ZiBkcGNkX3JldiA8IERQX0RQQ0RfUkVWXzE0IHJhdGhlciB0aGFuDQpjaGVjayB0aGlzIGluIGVh Y2ggaWYgc3RhdGVtZW50IGJlbG93Pw0KDQo+ICsJLyogVmlydHVhbCBEUCBTaW5rIChJbnRlcm5h bCBEaXNwbGF5IFBhbmVsKSAqLw0KPiArCWlmIChwb3J0LT5wb3J0X251bSA+PSA4ICYmIHBvcnQt PmRwY2RfcmV2ID49IERQX0RQQ0RfUkVWXzE0KQ0KPiArCQlyZXR1cm4gdHJ1ZTsNCj4gKw0KPiAr CS8qIERQLXRvLUhETUkgUHJvdG9jb2wgQ29udmVydGVyICovDQo+ICsJaWYgKHBvcnQtPnBkdCA9 PSBEUF9QRUVSX0RFVklDRV9EUF9MRUdBQ1lfQ09OViAmJg0KPiArCQkJIXBvcnQtPm1jcyAmJg0K PiArCQkJcG9ydC0+bGRwcyAmJg0KPiArCQkJcG9ydC0+ZHBjZF9yZXYgPj0gRFBfRFBDRF9SRVZf MTQpDQo+ICsJCXJldHVybiB0cnVlOw0KPiArDQo+ICsJLyogRFAtdG8tRFAgKi8NCj4gKwltdXRl eF9sb2NrKCZwb3J0LT5tZ3ItPmxvY2spOw0KPiArCWlmIChwb3J0LT5wZHQgPT0gRFBfUEVFUl9E RVZJQ0VfTVNUX0JSQU5DSElORyAmJg0KPiArCQkJcG9ydC0+bXN0YiAmJg0KPiArCQkJcG9ydC0+ ZHBjZF9yZXYgPj0gRFBfRFBDRF9SRVZfMTQgJiYNCj4gKwkJCXBvcnQtPm1zdGItPm51bV9wb3J0 cyA9PSAyKSB7DQoNCklzICdudW1fcG9ydHMgPT0gMicgcmVxdWlyZWQ/IE1heWJlIEkgZG9uJ3Qg Zm9sbG93IHRoaXMgYml0Li4uDQoNCj4gKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShkb3duc3RyZWFt X3BvcnQsICZwb3J0LT5tc3RiLT5wb3J0cywgbmV4dCkgew0KPiArCQkJaWYgKGRvd25zdHJlYW1f cG9ydC0+cGR0ID09IERQX1BFRVJfREVWSUNFX1NTVF9TSU5LICYmDQo+ICsJCQkJCSFkb3duc3Ry ZWFtX3BvcnQtPmlucHV0KSB7DQo+ICsJCQkJbXV0ZXhfdW5sb2NrKCZwb3J0LT5tZ3ItPmxvY2sp Ow0KPiArCQkJCXJldHVybiB0cnVlOw0KPiArCQkJfQ0KPiArCQl9DQo+ICsJfQ0KPiArCW11dGV4 X3VubG9jaygmcG9ydC0+bWdyLT5sb2NrKTsNCj4gKw0KPiArCXJldHVybiBmYWxzZTsNCj4gK30N Cj4gKw0KPiArLyoqDQo+ICsgKiBkcm1fZHBfbXN0X2RzY19hdXhfZm9yX3BvcnQoKSAtIEZpbmQg dGhlIGNvcnJlY3QgYXV4IGZvciBEU0MNCj4gKyAqIEBwb3J0OiBUaGUgcG9ydCB0byBjaGVjay4g QSBsZWFmIG9mIHRoZSBNU1QgdHJlZSB3aXRoIGFuIGF0dGFjaGVkIGRpc3BsYXkuDQo+ICsgKg0K PiArICogRGVwZW5kaW5nIG9uIHRoZSBzaXR1YXRpb24sIERTQyBtYXkgYmUgZW5hYmxlZCB2aWEg dGhlIGVuZHBvaW50IGF1eCwNCj4gKyAqIHRoZSBpbW1lZGlhdGVseSB1cHN0cmVhbSBhdXgsIG9y IHRoZSBjb25uZWN0b3IncyBwaHlzaWNhbCBhdXguDQo+ICsgKg0KPiArICogVGhpcyBpcyBib3Ro IHRoZSBjb3JyZWN0IGF1eCB0byByZWFkIERTQ19DQVBBQklMSVRZIGFuZCB0aGUNCj4gKyAqIGNv cnJlY3QgYXV4IHRvIHdyaXRlIERTQ19FTkFCTEVELg0KPiArICoNCj4gKyAqIFRoaXMgb3BlcmF0 aW9uIGNhbiBiZSBleHBlbnNpdmUgKHVwIHRvIGZvdXIgYXV4IHJlYWRzKSwgc28NCj4gKyAqIHRo ZSBjYWxsZXIgc2hvdWxkIGNhY2hlIHRoZSByZXR1cm4uDQo+ICsgKg0KPiArICogUmV0dXJuczoN Cj4gKyAqIE5VTEwgaWYgRFNDIGNhbm5vdCBiZSBlbmFibGVkIG9uIHRoaXMgcG9ydCwgb3RoZXJ3 aXNlIHRoZSBhdXggZGV2aWNlDQo+ICsgKi8NCj4gK3N0cnVjdCBkcm1fZHBfYXV4ICpkcm1fZHBf bXN0X2RzY19hdXhfZm9yX3BvcnQoc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqcG9ydCkNCj4gK3sN Cj4gKwlzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICppbW1lZGlhdGVfdXBzdHJlYW1fcG9ydDsNCj4g KwlzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICpmZWNfcG9ydDsNCj4gKwlzdHJ1Y3QgZHJtX2RwX2Rl c2MgKmRlc2MgPSBOVUxMOw0KPiArDQoNCk1pZ2h0IGJlIGdvb2QgdG8gZWFybHkgcmV0dXJuIGlm ICFwb3J0IHRvIGF2b2lkIHByb2NlZWRpbmcgdGhyb3VnaCB0aGUNCmVudGlyZSBmdW5jdGlvbiBp ZiB0aGlzIGlzIGNhbGxlZCB3aXRob3V0IGEgcG9ydC4NCg0KPiArCWlmIChwb3J0ICYmIHBvcnQt PnBhcmVudCkNCj4gKwkJaW1tZWRpYXRlX3Vwc3RyZWFtX3BvcnQgPSBwb3J0LT5wYXJlbnQtPnBv cnRfcGFyZW50Ow0KPiArCWVsc2UNCj4gKwkJaW1tZWRpYXRlX3Vwc3RyZWFtX3BvcnQgPSBOVUxM Ow0KPiArDQo+ICsJZmVjX3BvcnQgPSBpbW1lZGlhdGVfdXBzdHJlYW1fcG9ydDsNCj4gKwl3aGls ZSAoZmVjX3BvcnQpIHsNCj4gKwkJLyoNCj4gKwkJICogRWFjaCBwaHlzaWNhbCBsaW5rIChpLmUu IG5vdCBhIHZpcnR1YWwgcG9ydCkgYmV0d2VlbiB0aGUNCj4gKwkJICogb3V0cHV0IGFuZCB0aGUg cHJpbWFyeSBkZXZpY2UgbXVzdCBzdXBwb3J0IEZFQw0KPiArCQkgKi8NCj4gKwkJaWYgKCFkcm1f ZHBfbXN0X2lzX3ZpcnR1YWxfZHBjZChmZWNfcG9ydCkgJiYNCj4gKwkJCQkhZmVjX3BvcnQtPmZl Y19jYXBhYmxlKQ0KPiArCQkJcmV0dXJuIE5VTEw7DQo+ICsNCj4gKwkJZmVjX3BvcnQgPSBmZWNf cG9ydC0+cGFyZW50LT5wb3J0X3BhcmVudDsNCj4gKwl9DQo+ICsNCj4gKwkvKiBEUC10by1EUCBw ZWVyIGRldmljZSAqLw0KPiArCWlmIChkcm1fZHBfbXN0X2lzX3ZpcnR1YWxfZHBjZChpbW1lZGlh dGVfdXBzdHJlYW1fcG9ydCkpIHsNCj4gKwkJdTggdXBzdHJlYW1fZHNjOw0KPiArCQl1OCBlbmRw b2ludF9kc2M7DQo+ICsJCXU4IGVuZHBvaW50X2ZlYzsNCj4gKw0KPiArCQlpZiAoZHJtX2RwX2Rw Y2RfcmVhZCgmcG9ydC0+YXV4LA0KPiArCQkJCSAgICAgRFBfRFNDX1NVUFBPUlQsICZlbmRwb2lu dF9kc2MsIDEpIDwgMCkNCj4gKwkJCXJldHVybiBOVUxMOw0KPiArCQlpZiAoZHJtX2RwX2RwY2Rf cmVhZCgmcG9ydC0+YXV4LA0KPiArCQkJCSAgICAgRFBfRkVDX0NBUEFCSUxJVFksICZlbmRwb2lu dF9mZWMsIDEpIDwgMCkNCj4gKwkJCXJldHVybiBOVUxMOw0KPiArCQlpZiAoZHJtX2RwX2RwY2Rf cmVhZCgmaW1tZWRpYXRlX3Vwc3RyZWFtX3BvcnQtPmF1eCwNCj4gKwkJCQkgICAgIERQX0RTQ19T VVBQT1JULCAmdXBzdHJlYW1fZHNjLCAxKSA8IDApDQo+ICsJCQlyZXR1cm4gTlVMTDsNCj4gKw0K PiArCQkvKiBFbnBvaW50IGRlY29tcHJlc3Npb24gd2l0aCBEUC10by1EUCBwZWVyIGRldmljZSAq Lw0KPiArCQlpZiAoKGVuZHBvaW50X2RzYyAmIERQX0RTQ19ERUNPTVBSRVNTSU9OX0lTX1NVUFBP UlRFRCkNCj4gKwkJCQkmJiAoZW5kcG9pbnRfZmVjICYgRFBfRkVDX0NBUEFCTEUpDQo+ICsJCQkJ JiYgKHVwc3RyZWFtX2RzYyAmIDB4MikgLyogRFNDIHBhc3N0aHJvdWdoICovKQ0KPiArCQkJcmV0 dXJuICZwb3J0LT5hdXg7DQo+ICsNCj4gKwkJLyogVmlydHVhbCBEUENEIGRlY29tcHJlc3Npb24g d2l0aCBEUC10by1EUCBwZWVyIGRldmljZSAqLw0KPiArCQlyZXR1cm4gJmltbWVkaWF0ZV91cHN0 cmVhbV9wb3J0LT5hdXg7DQo+ICsJfQ0KPiArDQo+ICsJLyogVmlydHVhbCBEUENEIGRlY29tcHJl c3Npb24gd2l0aCBEUC10by1IRE1JIG9yIFZpcnR1YWwgRFAgU2luayAqLw0KPiArCWlmIChkcm1f ZHBfbXN0X2lzX3ZpcnR1YWxfZHBjZChwb3J0KSkNCj4gKwkJcmV0dXJuICZwb3J0LT5hdXg7DQo+ ICsNCj4gKwkvKg0KPiArCSAqIFN5bmFwdGljcyBxdWlyaw0KPiArCSAqIEFwcGxpZXMgdG8gcG9y dHMgZm9yIHdoaWNoOg0KPiArCSAqIC0gUGh5c2ljYWwgYXV4IGhhcyBTeW5hcHRpY3MgT1VJDQo+ ICsJICogLSBEUHYxLjQgb3IgaGlnaGVyDQo+ICsJICogLSBQb3J0IGlzIG9uIHByaW1hcnkgYnJh bmNoIGRldmljZQ0KPiArCSAqIC0gTm90IGEgVkdBIGFkYXB0ZXIgKERQX0RXTl9TVFJNX1BPUlRf VFlQRV9BTkFMT0cpDQo+ICsJICovDQo+ICsJaWYgKCFkcm1fZHBfcmVhZF9kZXNjKHBvcnQtPm1n ci0+YXV4LCBkZXNjLCB0cnVlKSkNCj4gKwkJcmV0dXJuIGZhbHNlOw0KPiArDQo+ICsJaWYgKGRy bV9kcF9oYXNfcXVpcmsoZGVzYywgRFBfRFBDRF9RVUlSS19EU0NfV0lUSE9VVF9WSVJUVUFMX0RQ Q0QgJiYNCj4gKwkJCXBvcnQtPm1nci0+ZHBjZFtEUF9EUENEX1JFVl0gPj0gRFBfRFBDRF9SRVZf MTQpICYmDQoNCkRpZCB5b3UgbWlzcGxhY2UgdGhhdCBjbG9zaW5nIHBhcmFudGhlc2lzPyBTaG91 bGRuJ3QgaXQgYmUgb24gdGhlDQpwcmV2aW91cyBsaW5lIGJlZm9yZSB0aGUgJiYgPw0KDQo+ICsJ CQlwb3J0LT5wYXJlbnQgPT0gcG9ydC0+bWdyLT5tc3RfcHJpbWFyeSkgew0KDQpVc2UgdGFicyAm IHNwYWNlcyB0byBhbGlnbiB3aXRoIGZpcnN0IGVsZW1lbnQgb2YgaWYgc3RhdGVtZW50LiBQcm9w ZXINCmluZGVudGF0aW9uICh3aXRoIHRoZSBmdW5jdGlvbiBhcmd1bWVudCBvciBlbGVtZW50cyBv ZiB0aGUgaWYgc3RhdGVtZW50KQ0Kd291bGQgbWFrZSBpdCBvYnZpb3VzIHdoZXRoZXIgdGhlIGFi b3ZlIHBhcmFudGhlc2lzIGhhcyBiZWVuIHJlcGxhY2VkIG9yDQpub3QuDQoNCkhhcnJ5DQoNCj4g KwkJdTggZG93bnN0cmVhbXBvcnQ7DQo+ICsNCj4gKwkJZHJtX2RwX2RwY2RfcmVhZCgmcG9ydC0+ YXV4LCBEUF9ET1dOU1RSRUFNUE9SVF9QUkVTRU5ULA0KPiArCQkJCSAmZG93bnN0cmVhbXBvcnQs IDEpOw0KPiArDQo+ICsJCWlmICgoZG93bnN0cmVhbXBvcnQgJiBEUF9EV05fU1RSTV9QT1JUX1BS RVNFTlQpICYmDQo+ICsJCQkJKChkb3duc3RyZWFtcG9ydCAmIERQX0RXTl9TVFJNX1BPUlRfVFlQ RV9NQVNLKQ0KPiArCQkJCSE9IERQX0RXTl9TVFJNX1BPUlRfVFlQRV9BTkFMT0cpKQ0KPiArCQkJ cmV0dXJuIHBvcnQtPm1nci0+YXV4Ow0KPiArCX0NCj4gKw0KPiArCXJldHVybiBOVUxMOw0KPiAr fQ0KPiArRVhQT1JUX1NZTUJPTChkcm1fZHBfbXN0X2RzY19hdXhfZm9yX3BvcnQpOw0KPiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2RwX21zdF9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2Ry bV9kcF9tc3RfaGVscGVyLmgNCj4gaW5kZXggZjExM2FlMDRmYTg4Li40Y2Y3Mzg1NDVkZmIgMTAw NjQ0DQo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9kcF9tc3RfaGVscGVyLmgNCj4gKysrIGIvaW5j bHVkZS9kcm0vZHJtX2RwX21zdF9oZWxwZXIuaA0KPiBAQCAtNjczLDYgKzY3Myw4IEBAIGludCBf X211c3RfY2hlY2sgZHJtX2RwX21zdF9hdG9taWNfY2hlY2soc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlKTsNCj4gIHZvaWQgZHJtX2RwX21zdF9nZXRfcG9ydF9tYWxsb2Moc3RydWN0IGRy bV9kcF9tc3RfcG9ydCAqcG9ydCk7DQo+ICB2b2lkIGRybV9kcF9tc3RfcHV0X3BvcnRfbWFsbG9j KHN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQpOw0KPiAgDQo+ICtzdHJ1Y3QgZHJtX2RwX2F1 eCAqZHJtX2RwX21zdF9kc2NfYXV4X2Zvcl9wb3J0KHN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBv cnQpOw0KPiArDQo+ICBleHRlcm4gY29uc3Qgc3RydWN0IGRybV9wcml2YXRlX3N0YXRlX2Z1bmNz IGRybV9kcF9tc3RfdG9wb2xvZ3lfc3RhdGVfZnVuY3M7DQo+ICANCj4gIC8qKg0KPiANCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==