From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Adebisi, YetundeX" Subject: Re: [PATCH 2/2] drm/i915: Add Backlight Control using DPCD for eDP connectors (v6) Date: Tue, 9 Feb 2016 13:11:25 +0000 Message-ID: References: <1454674733-7279-1-git-send-email-yetundex.adebisi@intel.com> <1454674733-7279-3-git-send-email-yetundex.adebisi@intel.com> <56B85854.8040709@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id E106C6E575 for ; Tue, 9 Feb 2016 05:11:37 -0800 (PST) In-Reply-To: <56B85854.8040709@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Thulasimani, Sivakumar" , "intel-gfx@lists.freedesktop.org" Cc: "Nikula, Jani" List-Id: intel-gfx@lists.freedesktop.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogVGh1bGFzaW1hbmksIFNp dmFrdW1hcg0KPiBTZW50OiBNb25kYXksIEZlYnJ1YXJ5IDA4LCAyMDE2IDg6NTcgQU0NCj4gVG86 IEFkZWJpc2ksIFlldHVuZGVYOyBpbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+IENj OiBOaWt1bGEsIEphbmkNCj4gU3ViamVjdDogUmU6IFtJbnRlbC1nZnhdIFtQQVRDSCAyLzJdIGRy bS9pOTE1OiBBZGQgQmFja2xpZ2h0IENvbnRyb2wgdXNpbmcNCj4gRFBDRCBmb3IgZURQIGNvbm5l Y3RvcnMgKHY2KQ0KPiANCj4gDQo+IA0KPiBPbiAyLzUvMjAxNiA1OjQ4IFBNLCBZZXR1bmRlIEFk ZWJpc2kgd3JvdGU6DQo+ID4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGVEUCBiYWNrbGln aHQgY29udHJvbCB1c2luZyBEUENEIHJlZ2lzdGVycw0KPiA+IHRvIGJhY2tsaWdodCBob29rcyBp biBpbnRlbF9wYW5lbC4NCj4gPg0KPiA+IEl0IGNoZWNrcyBmb3IgYmFja2xpZ2h0IGNvbnRyb2wg b3ZlciBBVVggY2hhbm5lbCBjYXBhYmlsaXR5IGFuZCBzZXRzDQo+ID4gdXAgZnVuY3Rpb24gcG9p bnRlcnMgdG8gZ2V0IGFuZCBzZXQgdGhlIGJhY2tsaWdodCBicmlnaHRuZXNzIGxldmVsIGlmDQo+ ID4gc3VwcG9ydGVkLg0KPiA+DQo+ID4gdjI6IE1vdmVkIGJhY2tsaWdodCBmdW5jdGlvbnMgZnJv bSBpbnRlbF9kcC5jIGludG8gYSBuZXcgZmlsZQ0KPiA+IGludGVsX2RwX2F1eF9iYWNrbGlnaHQu Yy4gQWxzbyBtb3ZlZCByZWFkaW5nIG9mIGVEUCBkaXNwbGF5IGNvbnRyb2wNCj4gPiByZWdpc3Rl cnMgdG8gaW50ZWxfZHBfZ2V0X2RwY2QNCj4gPg0KPiA+IHYzOiBDb3JyZWN0IHNvbWUgZm9ybWF0 dGluZyBtaXN0YWtlcw0KPiA+DQo+ID4gdjQ6IFVwZGF0ZWQgdG8gdXNlIEFVWCBiYWNrbGlnaHQg Y29udHJvbCBpZiBQV00gY29udHJvbCBpcyBub3QgcG9zc2libGUNCj4gPiAJKEphbmkpDQo+ID4g djU6IE1vdmVkIGNhbGwgdG8gaW5pdGlhbGl6ZSBiYWNrbGlnaHQgcmVnaXN0ZXJzIHRvDQo+ID4g ZHBfYXV4X3NldHVwX2JhY2tsaWdodA0KPiA+IHY2OiBDaGVjayBEUF9FRFBfQkFDS0xJR0hUX1BJ Tl9FTkFCTEVfQ0FQIGlzIGRpc2FibGVkIGJlZm9yZQ0KPiBzZXR0aW5nDQo+ID4gdXAgQVVYIGJh Y2tsaWdodCBjb250cm9sLiBUbyBmaXggQkxNX1BXTV9FTkFCTEUgaWd0IHRlc3Qgd2FybmluZ3Mg b24NCj4gPiBiZHdfdWx0cmENCj4gPg0KPiA+IFRoaXMgcGF0Y2ggZGVwZW5kcyBvbiBodHRwOi8v cGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC82NDI1My8NCj4gPg0KPiA+IENjOiBCb2Ig UGFhdXdlIDxib2Iuai5wYWF1d2VAaW50ZWwuY29tPg0KPiA+IENjOiBKYW5pIE5pa3VsYSA8amFu aS5uaWt1bGFAaW50ZWwuY29tPg0KPiA+IEFja2VkLWJ5OiBKZXNzZSBCYXJuZXMgPGpiYXJuZXNA dmlydHVvdXNnZWVrLm9yZz4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBZZXR1bmRlIEFkZWJpc2kgPHll dHVuZGV4LmFkZWJpc2lAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAxICsNCj4gPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICAgICAgICAgICB8ICAxNyArKy0NCj4gPiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2F1eF9iYWNrbGlnaHQuYyB8IDE3MA0KPiArKysrKysr KysrKysrKysrKysrKysrKysrKw0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmggICAgICAgICAgICAgIHwgICA2ICsNCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BhbmVsLmMgICAgICAgICAgICB8ICAgNCArDQo+ID4gICA1IGZpbGVzIGNoYW5nZWQsIDE5MiBp bnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQ0KPiA+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2F1eF9iYWNrbGlnaHQuYw0KPiA+DQo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlDQo+ID4gYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9NYWtlZmlsZSBpbmRleCAwODUxZGUwNy4uNDEyNTBjYyAxMDA2NDQNCj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQ0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L01ha2VmaWxlDQo+ID4gQEAgLTc3LDYgKzc3LDcgQEAgaTkxNS15ICs9IGR2b19j aDcwMTcubyBcDQo+ID4gICAJICBkdm9fdGZwNDEwLm8gXA0KPiA+ICAgCSAgaW50ZWxfY3J0Lm8g XA0KPiA+ICAgCSAgaW50ZWxfZGRpLm8gXA0KPiA+ICsJICBpbnRlbF9kcF9hdXhfYmFja2xpZ2h0 Lm8gXA0KPiA+ICAgCSAgaW50ZWxfZHBfbGlua190cmFpbmluZy5vIFwNCj4gPiAgIAkgIGludGVs X2RwX21zdC5vIFwNCj4gPiAgIAkgIGludGVsX2RwLm8gXA0KPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jDQo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcC5jIGluZGV4IGEwNzNmMDQuLjlmODY3MmUgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYw0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMNCj4gPiBAQCAtMzE4Myw3ICszMTgzLDcgQEAgc3RhdGljIHZvaWQgY2h2X2Rw X3Bvc3RfcGxsX2Rpc2FibGUoc3RydWN0DQo+IGludGVsX2VuY29kZXIgKmVuY29kZXIpDQo+ID4g ICAgKiBTaW5rcyBhcmUgKnN1cHBvc2VkKiB0byBjb21lIHVwIHdpdGhpbiAxbXMgZnJvbSBhbiBv ZmYgc3RhdGUsIGJ1dA0KPiB3ZSdyZSBhbHNvDQo+ID4gICAgKiBzdXBwb3NlZCB0byByZXRyeSAz IHRpbWVzIHBlciB0aGUgc3BlYy4NCj4gPiAgICAqLw0KPiA+IC1zdGF0aWMgc3NpemVfdA0KPiA+ ICtzc2l6ZV90DQo+ID4gICBpbnRlbF9kcF9kcGNkX3JlYWRfd2FrZShzdHJ1Y3QgZHJtX2RwX2F1 eCAqYXV4LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LA0KPiA+ICAgCQkJdm9pZCAqYnVmZmVyLCBzaXpl X3Qgc2l6ZSkNCj4gPiAgIHsNCj4gPiBAQCAtMzg1MCw3ICszODUwLDYgQEAgaW50ZWxfZHBfZ2V0 X2RwY2Qoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkNCj4gPiAgIAlzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICpkaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsNCj4gPiAgIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXY7DQo+ID4gICAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsNCj4g PiAtCXVpbnQ4X3QgcmV2Ow0KPiA+DQo+ID4gICAJaWYgKGludGVsX2RwX2RwY2RfcmVhZF93YWtl KCZpbnRlbF9kcC0+YXV4LCAweDAwMCwgaW50ZWxfZHAtDQo+ID5kcGNkLA0KPiA+ICAgCQkJCSAg ICBzaXplb2YoaW50ZWxfZHAtPmRwY2QpKSA8IDApIEBAIC0zODg2LDYNCj4gKzM4ODUsMTUgQEAN Cj4gPiBpbnRlbF9kcF9nZXRfZHBjZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQ0KPiA+ICAg CQkJRFJNX0RFQlVHX0tNUygiUFNSMiAlcyBvbiBzaW5rIiwNCj4gPiAgIAkJCQlkZXZfcHJpdi0+ cHNyLnBzcjJfc3VwcG9ydCA/ICJzdXBwb3J0ZWQiIDoNCj4gIm5vdCBzdXBwb3J0ZWQiKTsNCj4g PiAgIAkJfQ0KPiA+ICsNCj4gPiArCQkvKiBSZWFkIHRoZSBlRFAgRGlzcGxheSBjb250cm9sIGNh cGFiaWxpdGllcyByZWdpc3RlcnMgKi8NCj4gPiArCQltZW1zZXQoaW50ZWxfZHAtPmVkcF9kcGNk LCAwLCBzaXplb2YoaW50ZWxfZHAtDQo+ID5lZHBfZHBjZCkpOw0KPiA+ICsJCWlmICgoaW50ZWxf ZHAtPmRwY2RbRFBfRURQX0NPTkZJR1VSQVRJT05fQ0FQXSAmDQo+IERQX0RQQ0RfRElTUExBWV9D T05UUk9MX0NBUEFCTEUpICYmDQo+ID4gKwkJCQkoaW50ZWxfZHBfZHBjZF9yZWFkX3dha2UoJmlu dGVsX2RwLT5hdXgsDQo+IERQX0VEUF9EUENEX1JFViwNCj4gPiArCQkJCQkJaW50ZWxfZHAtPmVk cF9kcGNkLA0KPiBzaXplb2YoaW50ZWxfZHAtPmVkcF9kcGNkKSkgPT0NCj4gPiArDQo+IAlzaXpl b2YoaW50ZWxfZHAtPmVkcF9kcGNkKSkpDQo+ID4gKwkJCURSTV9ERUJVR19LTVMoIkVEUCBEUENE IDogJSpwaFxuIiwgKGludCkNCj4gc2l6ZW9mKGludGVsX2RwLT5lZHBfZHBjZCksDQo+ID4gKwkJ CQkJaW50ZWxfZHAtPmVkcF9kcGNkKTsNCj4gPiAgIAl9DQo+ID4NCj4gPiAgIAlEUk1fREVCVUdf S01TKCJEaXNwbGF5IFBvcnQgVFBTMyBzdXBwb3J0OiBzb3VyY2UgJXMsIHNpbmsNCj4gJXNcbiIs IEBADQo+ID4gLTM4OTMsMTAgKzM5MDEsNyBAQCBpbnRlbF9kcF9nZXRfZHBjZChzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwKQ0KPiA+ICAgCQkgICAgICB5ZXNubyhkcm1fZHBfdHBzM19zdXBwb3J0 ZWQoaW50ZWxfZHAtPmRwY2QpKSk7DQo+ID4NCj4gPiAgIAkvKiBJbnRlcm1lZGlhdGUgZnJlcXVl bmN5IHN1cHBvcnQgKi8NCj4gPiAtCWlmIChpc19lZHAoaW50ZWxfZHApICYmDQo+ID4gLQkgICAg KGludGVsX2RwLT5kcGNkW0RQX0VEUF9DT05GSUdVUkFUSU9OX0NBUF0gJg0KPiAJRFBfRFBDRF9E SVNQTEFZX0NPTlRST0xfQ0FQQUJMRSkgJiYNCj4gPiAtCSAgICAoaW50ZWxfZHBfZHBjZF9yZWFk X3dha2UoJmludGVsX2RwLT5hdXgsIERQX0VEUF9EUENEX1JFViwNCj4gJnJldiwgMSkgPT0gMSkg JiYNCj4gPiAtCSAgICAocmV2ID49IDB4MDMpKSB7IC8qIGVEcCB2MS40IG9yIGhpZ2hlciAqLw0K PiA+ICsJaWYgKGlzX2VkcChpbnRlbF9kcCkgJiYgKGludGVsX2RwLT5lZHBfZHBjZFswXSA+PSAw eDAzKSkgeyAvKiBlRHANCj4gPiArdjEuNCBvciBoaWdoZXIgKi8NCj4gPiAgIAkJX19sZTE2IHNp bmtfcmF0ZXNbRFBfTUFYX1NVUFBPUlRFRF9SQVRFU107DQo+ID4gICAJCWludCBpOw0KPiA+DQo+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2F1eF9iYWNrbGln aHQuYw0KPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfYXV4X2JhY2tsaWdodC5j DQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwLi5hNTM2MWQ2DQo+ ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw X2F1eF9iYWNrbGlnaHQuYw0KPiA+IEBAIC0wLDAgKzEsMTcwIEBADQo+ID4gKy8qDQo+ID4gKyAq IENvcHlyaWdodCDCqSAyMDE1IEludGVsIENvcnBvcmF0aW9uDQo+ID4gKyAqDQo+ID4gKyAqIFBl cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u DQo+ID4gK29idGFpbmluZyBhDQo+ID4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNz b2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUNCj4gPiArIlNvZnR3YXJlIiksDQo+ID4g KyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu ZyB3aXRob3V0DQo+ID4gK2xpbWl0YXRpb24NCj4gPiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNv cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsDQo+ID4gK3N1YmxpY2Vuc2Us DQo+ID4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJt aXQgcGVyc29ucyB0byB3aG9tDQo+ID4gK3RoZQ0KPiA+ICsgKiBTb2Z0d2FyZSBpcyBmdXJuaXNo ZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOg0KPiA+ICsg Kg0KPiA+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u IG5vdGljZSAoaW5jbHVkaW5nDQo+ID4gK3RoZSBuZXh0DQo+ID4gKyAqIHBhcmFncmFwaCkgc2hh bGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucw0KPiA+ ICtvZiB0aGUNCj4gPiArICogU29mdHdhcmUuDQo+ID4gKyAqDQo+ID4gKyAqIFRIRSBTT0ZUV0FS RSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWQ0KPiBLSU5ELA0K PiA+ICtFWFBSRVNTIE9SDQo+ID4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YNCj4gPiArTUVSQ0hBTlRBQklMSVRZLA0KPiA+ICsgKiBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4N Cj4gTk8gRVZFTlQNCj4gPiArU0hBTEwNCj4gPiArICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hU IEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sDQo+IERBTUFHRVMNCj4gPiArT1IgT1RI RVINCj4gPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwg VE9SVCBPUg0KPiBPVEhFUldJU0UsDQo+ID4gK0FSSVNJTkcNCj4gPiArICogRlJPTSwgT1VUIE9G IE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRQ0KPiBPUg0KPiA+ ICtPVEhFUiBERUFMSU5HUw0KPiA+ICsgKiBJTiBUSEUgU09GVFdBUkUuDQo+ID4gKyAqDQo+ID4g KyAqLw0KPiA+ICsNCj4gPiArI2luY2x1ZGUgImludGVsX2Rydi5oIg0KPiA+ICsNCj4gPiArc3Rh dGljIHZvaWQgc2V0X2F1eF9iYWNrbGlnaHRfZW5hYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsIGJvb2wNCj4gPiArZW5hYmxlKSB7DQo+ID4gKwl1aW50OF90IHJlZ192YWwgPSAwOw0KPiA+ ICsNCj4gPiArCWlmIChpbnRlbF9kcF9kcGNkX3JlYWRfd2FrZSgmaW50ZWxfZHAtPmF1eCwNCj4g RFBfRURQX0RJU1BMQVlfQ09OVFJPTF9SRUdJU1RFUiwNCj4gPiArCQkJJnJlZ192YWwsIHNpemVv ZihyZWdfdmFsKSkgPCAwKSB7DQo+ID4gKwkJRFJNX0RFQlVHX0tNUygiRmFpbGVkIHRvIHJlYWQg RFBDRCByZWdpc3RlciAweCV4XG4iLA0KPiA+ICsJCQkJRFBfRURQX0RJU1BMQVlfQ09OVFJPTF9S RUdJU1RFUik7DQo+ID4gKwkJcmV0dXJuOw0KPiA+ICsJfQ0KPiA+ICsJaWYgKGVuYWJsZSkNCj4g PiArCQlyZWdfdmFsIHw9IERQX0VEUF9CQUNLTElHSFRfRU5BQkxFOw0KPiA+ICsJZWxzZQ0KPiA+ ICsJCXJlZ192YWwgJj0gfihEUF9FRFBfQkFDS0xJR0hUX0VOQUJMRSk7DQo+ID4gKw0KPiA+ICsJ aWYgKGRybV9kcF9kcGNkX3dyaXRlYigmaW50ZWxfZHAtPmF1eCwNCj4gRFBfRURQX0RJU1BMQVlf Q09OVFJPTF9SRUdJU1RFUiwNCj4gPiArCQkJcmVnX3ZhbCkgPCAwKSB7DQo+ID4gKwkJRFJNX0RF QlVHX0tNUygiRmFpbGVkIHRvICVzIGF1eCBiYWNrbGlnaHRcbiIsDQo+ID4gKwkJCQllbmFibGUg PyAiZW5hYmxlIiA6ICJkaXNhYmxlIik7DQo+ID4gKwl9DQo+ID4gK30NCj4gPiArDQo+ID4gKy8q DQo+ID4gKyAqIFJlYWQgdGhlIGN1cnJlbnQgYmFja2xpZ2h0IHZhbHVlIGZyb20gRFBDRCByZWdp c3RlcihzKSBiYXNlZA0KPiA+ICsgKiBvbiBpZiA4LWJpdChNU0IpIG9yIDE2LWJpdChNU0IgYW5k IExTQikgdmFsdWVzIGFyZSBzdXBwb3J0ZWQgICovDQo+ID4gK3N0YXRpYyB1aW50MzJfdCBpbnRl bF9kcF9hdXhfZ2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yDQo+ID4gKypjb25u ZWN0b3IpIHsNCj4gPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxf ZHAoJmNvbm5lY3Rvci0+ZW5jb2Rlci0NCj4gPmJhc2UpOw0KPiA+ICsJdWludDhfdCByZWFkX3Zh bFsyXSA9IHsgMHgwIH07DQo+ID4gKwl1aW50MTZfdCBsZXZlbCA9IDA7DQo+ID4gKw0KPiA+ICsJ aWYgKGludGVsX2RwX2RwY2RfcmVhZF93YWtlKCZpbnRlbF9kcC0+YXV4LA0KPiBEUF9FRFBfQkFD S0xJR0hUX0JSSUdIVE5FU1NfTVNCLA0KPiA+ICsJCQkmcmVhZF92YWwsIHNpemVvZihyZWFkX3Zh bCkpIDwgMCkgew0KPiA+ICsJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byByZWFkIERQQ0QgcmVn aXN0ZXIgMHgleFxuIiwNCj4gPiArCQkJCURQX0VEUF9CQUNLTElHSFRfQlJJR0hUTkVTU19NU0Ip Ow0KPiA+ICsJCXJldHVybiAwOw0KPiA+ICsJfQ0KPiA+ICsJbGV2ZWwgPSByZWFkX3ZhbFswXTsN Cj4gPiArCWlmIChpbnRlbF9kcC0+ZWRwX2RwY2RbMl0gJg0KPiBEUF9FRFBfQkFDS0xJR0hUX0JS SUdIVE5FU1NfQllURV9DT1VOVCkNCj4gPiArCQlsZXZlbCA9IChyZWFkX3ZhbFswXSA8PCA4IHwg cmVhZF92YWxbMV0pOw0KPiA+ICsNCj4gPiArCXJldHVybiBsZXZlbDsNCj4gPiArfQ0KPiA+ICsN Cj4gPiArLyoNCj4gPiArICogU2VuZHMgdGhlIGN1cnJlbnQgYmFja2xpZ2h0IGxldmVsIG92ZXIg dGhlIGF1eCBjaGFubmVsLCBjaGVja2luZw0KPiA+ICtpZiBpdHMgdXNpbmcNCj4gPiArICogOC1i aXQgb3IgMTYgYml0IHZhbHVlIChNU0IgYW5kIExTQikgICovIHN0YXRpYyB2b2lkDQo+ID4gK2lu dGVsX2RwX2F1eF9zZXRfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rv ciwgdTMyDQo+ID4gK2xldmVsKSB7DQo+ID4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0g ZW5jX3RvX2ludGVsX2RwKCZjb25uZWN0b3ItPmVuY29kZXItDQo+ID5iYXNlKTsNCj4gPiArCXVp bnQ4X3QgdmFsc1syXSA9IHsgMHgwIH07DQo+ID4gKw0KPiA+ICsJdmFsc1swXSA9IGxldmVsOw0K PiA+ICsNCj4gPiArCS8qIFdyaXRlIHRoZSBNU0IgYW5kL29yIExTQiAqLw0KPiA+ICsJIGlmIChp bnRlbF9kcC0+ZWRwX2RwY2RbMl0gJg0KPiBEUF9FRFBfQkFDS0xJR0hUX0JSSUdIVE5FU1NfQllU RV9DT1VOVCkgew0KPiA+ICsJCXZhbHNbMF0gPSAobGV2ZWwgJiAweEZGMDApID4+IDg7DQo+ID4g KwkJdmFsc1sxXSA9IChsZXZlbCAmIDB4RkYpOw0KPiA+ICsJfQ0KPiA+ICsJaWYgKGRybV9kcF9k cGNkX3dyaXRlKCZpbnRlbF9kcC0+YXV4LA0KPiBEUF9FRFBfQkFDS0xJR0hUX0JSSUdIVE5FU1Nf TVNCLA0KPiA+ICsJCQl2YWxzLCBzaXplb2YodmFscykpIDwgMCkgew0KPiA+ICsJCURSTV9ERUJV R19LTVMoIkZhaWxlZCB0byB3cml0ZSBhdXggYmFja2xpZ2h0IGxldmVsXG4iKTsNCj4gPiArCQly ZXR1cm47DQo+ID4gKwl9DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIGludGVsX2Rw X2F1eF9lbmFibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3INCj4gPiArKmNvbm5l Y3Rvcikgew0KPiA+ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9k cCgmY29ubmVjdG9yLT5lbmNvZGVyLQ0KPiA+YmFzZSk7DQo+ID4gKwl1aW50OF90IGRwY2RfYnVm ID0gMDsNCj4gPiArDQo+ID4gKwlzZXRfYXV4X2JhY2tsaWdodF9lbmFibGUoaW50ZWxfZHAsIHRy dWUpOw0KPiA+ICsNCj4gPiArCWlmICgoaW50ZWxfZHBfZHBjZF9yZWFkX3dha2UoJmludGVsX2Rw LT5hdXgsDQo+ID4gKwkJCURQX0VEUF9CQUNLTElHSFRfTU9ERV9TRVRfUkVHSVNURVIsDQo+ICZk cGNkX2J1ZiwgMSkgPT0gMSkgJiYNCj4gPiArCQkJKChkcGNkX2J1ZiAmDQo+IERQX0VEUF9CQUNL TElHSFRfQ09OVFJPTF9NT0RFX01BU0spID09DQo+ID4gKw0KPiAJRFBfRURQX0JBQ0tMSUdIVF9D T05UUk9MX01PREVfUFJFU0VUKSkNCj4gPiArCQlkcm1fZHBfZHBjZF93cml0ZWIoJmludGVsX2Rw LT5hdXgsDQo+IERQX0VEUF9CQUNLTElHSFRfTU9ERV9TRVRfUkVHSVNURVIsDQo+ID4gKwkJCQko ZHBjZF9idWYgfA0KPiBEUF9FRFBfQkFDS0xJR0hUX0NPTlRST0xfTU9ERV9EUENEKSk7DQo+ID4g K30NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIGludGVsX2RwX2F1eF9kaXNhYmxlX2JhY2tsaWdo dChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yDQo+ID4gKypjb25uZWN0b3IpIHsNCj4gPiArCXNldF9h dXhfYmFja2xpZ2h0X2VuYWJsZShlbmNfdG9faW50ZWxfZHAoJmNvbm5lY3Rvci0+ZW5jb2Rlci0N Cj4gPmJhc2UpLA0KPiA+ICtmYWxzZSk7IH0NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgaW50ZWxf ZHBfYXV4X3NldHVwX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yDQo+ICpjb25uZWN0 b3IsDQo+ID4gKwkJCWVudW0gcGlwZSBwaXBlKQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZjb25uZWN0b3ItPmVuY29kZXItDQo+ID5i YXNlKTsNCj4gPiArCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5l bDsNCj4gPiArDQo+ID4gKwlpbnRlbF9kcF9hdXhfZW5hYmxlX2JhY2tsaWdodChjb25uZWN0b3Ip Ow0KPiA+ICsNCj4gPiArCWlmIChpbnRlbF9kcC0+ZWRwX2RwY2RbMl0gJg0KPiBEUF9FRFBfQkFD S0xJR0hUX0JSSUdIVE5FU1NfQllURV9DT1VOVCkNCj4gPiArCQlwYW5lbC0+YmFja2xpZ2h0Lm1h eCA9IDB4RkZGRjsNCj4gPiArCWVsc2UNCj4gPiArCQlwYW5lbC0+YmFja2xpZ2h0Lm1heCA9IDB4 RkY7DQo+ID4gKw0KPiA+ICsJcGFuZWwtPmJhY2tsaWdodC5taW4gPSAwOw0KPiA+ICsJcGFuZWwt PmJhY2tsaWdodC5sZXZlbCA9IGludGVsX2RwX2F1eF9nZXRfYmFja2xpZ2h0KGNvbm5lY3Rvcik7 DQo+ID4gKw0KPiA+ICsJcGFuZWwtPmJhY2tsaWdodC5lbmFibGVkID0gcGFuZWwtPmJhY2tsaWdo dC5sZXZlbCAhPSAwOw0KPiA+ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ ICtzdGF0aWMgYm9vbA0KPiA+ICtpbnRlbF9kcF9hdXhfZGlzcGxheV9jb250cm9sX2NhcGFibGUo c3RydWN0IGludGVsX2Nvbm5lY3Rvcg0KPiA+ICsqY29ubmVjdG9yKSB7DQo+ID4gKwlzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwID0NCj4gPiArZW5jX3RvX2ludGVsX2RwKCZjb25uZWN0b3ItPmVu Y29kZXItPmJhc2UpOw0KPiA+ICsNCj4gPiArCS8qIENoZWNrIHRoZSAgZURQIERpc3BsYXkgY29u dHJvbCBjYXBhYmlsaXRpZXMgcmVnaXN0ZXJzIHRvIGRldGVybWluZSBpZg0KPiA+ICsJICogdGhl IHBhbmVsIGNhbiBzdXBwb3J0IGJhY2tsaWdodCBjb250cm9sIG92ZXIgdGhlIGF1eCBjaGFubmVs DQo+ID4gKwkgKi8NCj4gPiArCWlmIChpbnRlbF9kcC0+ZWRwX2RwY2RbMV0gJg0KPiBEUF9FRFBf VENPTl9CQUNLTElHSFRfQURKVVNUTUVOVF9DQVAgJiYNCj4gPiArCQkJKGludGVsX2RwLT5lZHBf ZHBjZFsxXSAmDQo+IERQX0VEUF9CQUNLTElHSFRfQVVYX0VOQUJMRV9DQVApICYmDQo+ID4gKwkJ CSEoKGludGVsX2RwLT5lZHBfZHBjZFsxXSAmDQo+IERQX0VEUF9CQUNLTElHSFRfUElOX0VOQUJM RV9DQVApIHx8DQo+ID4gKwkJCQkJKGludGVsX2RwLT5lZHBfZHBjZFsyXSAmDQo+ID4gK0RQX0VE UF9CQUNLTElHSFRfQlJJR0hUTkVTU19QV01fUElOX0NBUCkpKSB7DQo+ID4gKw0KPiA+ICsJCURS TV9ERUJVR19LTVMoIkFVWCBCYWNrbGlnaHQgQ29udHJvbCBTdXBwb3J0ZWQhXG4iKTsNCj4gPiAr CQlyZXR1cm4gdHJ1ZTsNCj4gPiArCX0NCj4gPiArCXJldHVybiBmYWxzZTsNCj4gPiArfQ0KPiA+ ICsNCj4gPiAraW50IGludGVsX2RwX2F1eF9pbml0X2JhY2tsaWdodF9mdW5jcyhzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yDQo+ID4gKyppbnRlbF9jb25uZWN0b3IpIHsNCj4gPiArCXN0cnVjdCBpbnRl bF9wYW5lbCAqcGFuZWwgPSAmaW50ZWxfY29ubmVjdG9yLT5wYW5lbDsNCj4gPiArDQo+ID4gKwlp ZiAoIWludGVsX2RwX2F1eF9kaXNwbGF5X2NvbnRyb2xfY2FwYWJsZShpbnRlbF9jb25uZWN0b3Ip KQ0KPiA+ICsJCXJldHVybiAtRU5PREVWOw0KPiA+ICsNCj4gPiArCXBhbmVsLT5iYWNrbGlnaHQu c2V0dXAgPSBpbnRlbF9kcF9hdXhfc2V0dXBfYmFja2xpZ2h0Ow0KPiA+ICsJcGFuZWwtPmJhY2ts aWdodC5lbmFibGUgPSBpbnRlbF9kcF9hdXhfZW5hYmxlX2JhY2tsaWdodDsNCj4gPiArCXBhbmVs LT5iYWNrbGlnaHQuZGlzYWJsZSA9IGludGVsX2RwX2F1eF9kaXNhYmxlX2JhY2tsaWdodDsNCj4g PiArCXBhbmVsLT5iYWNrbGlnaHQuc2V0ID0gaW50ZWxfZHBfYXV4X3NldF9iYWNrbGlnaHQ7DQo+ ID4gKwlwYW5lbC0+YmFja2xpZ2h0LmdldCA9IGludGVsX2RwX2F1eF9nZXRfYmFja2xpZ2h0Ow0K PiA+ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oDQo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaA0KPiA+IGluZGV4IDkzYmExNGEuLmUxOWVlMjIgMTAwNjQ0DQo+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaA0KPiA+IEBAIC03NjEsNiArNzYxLDcgQEAgc3RydWN0IGludGVsX2Rw IHsNCj4gPiAgIAl1aW50OF90IGRwY2RbRFBfUkVDRUlWRVJfQ0FQX1NJWkVdOw0KPiA+ICAgCXVp bnQ4X3QgcHNyX2RwY2RbRURQX1BTUl9SRUNFSVZFUl9DQVBfU0laRV07DQo+ID4gICAJdWludDhf dCBkb3duc3RyZWFtX3BvcnRzW0RQX01BWF9ET1dOU1RSRUFNX1BPUlRTXTsNCj4gPiArCXVpbnQ4 X3QgZWRwX2RwY2RbRURQX0RJU1BMQVlfQ1RMX0NBUF9TSVpFXTsNCj4gPiAgIAkvKiBzaW5rIHJh dGVzIGFzIHJlcG9ydGVkIGJ5IERQX1NVUFBPUlRFRF9MSU5LX1JBVEVTICovDQo+ID4gICAJdWlu dDhfdCBudW1fc2lua19yYXRlczsNCj4gPiAgIAlpbnQgc2lua19yYXRlc1tEUF9NQVhfU1VQUE9S VEVEX1JBVEVTXTsNCj4gPiBAQCAtMTI4Nyw2ICsxMjg4LDExIEBAIHZvaWQgaW50ZWxfZHBfY29t cHV0ZV9yYXRlKHN0cnVjdCBpbnRlbF9kcA0KPiAqaW50ZWxfZHAsIGludCBwb3J0X2Nsb2NrLA0K PiA+ICAgYm9vbCBpbnRlbF9kcF9zb3VyY2Vfc3VwcG9ydHNfaGJyMihzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwKTsNCj4gPiAgIGJvb2wNCj4gPiAgIGludGVsX2RwX2dldF9saW5rX3N0YXR1cyhz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1aW50OF90DQo+ID4gbGlua19zdGF0dXNbRFBfTElO S19TVEFUVVNfU0laRV0pOw0KPiA+ICtzc2l6ZV90IGludGVsX2RwX2RwY2RfcmVhZF93YWtlKHN0 cnVjdCBkcm1fZHBfYXV4ICphdXgsIHVuc2lnbmVkIGludA0KPiBvZmZzZXQsDQo+ID4gKwkJdm9p ZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSk7DQo+ID4gKw0KPiA+ICsvKiBpbnRlbF9kcF9hdXhfYmFj a2xpZ2h0LmMgKi8NCj4gPiAraW50IGludGVsX2RwX2F1eF9pbml0X2JhY2tsaWdodF9mdW5jcyhz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yDQo+ID4gKyppbnRlbF9jb25uZWN0b3IpOw0KPiA+DQo+ID4g ICAvKiBpbnRlbF9kcF9tc3QuYyAqLw0KPiA+ICAgaW50IGludGVsX2RwX21zdF9lbmNvZGVyX2lu aXQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydA0KPiA+ICppbnRlbF9kaWdfcG9ydCwgaW50IGNv bm5faWQpOyBkaWZmIC0tZ2l0DQo+ID4gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5l bC5jDQo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jDQo+ID4gaW5kZXgg MjFlZTY0Ny4uOTQxYzZmZSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wYW5lbC5jDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwu Yw0KPiA+IEBAIC0xNzIwLDYgKzE3MjAsMTAgQEAgaW50ZWxfcGFuZWxfaW5pdF9iYWNrbGlnaHRf ZnVuY3Moc3RydWN0DQo+IGludGVsX3BhbmVsICpwYW5lbCkNCj4gPiAgIAkJY29udGFpbmVyX29m KHBhbmVsLCBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yLCBwYW5lbCk7DQo+ID4gICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsN Cj4gPg0KPiA+ICsJaWYgKGNvbm5lY3Rvci0+YmFzZS5jb25uZWN0b3JfdHlwZSA9PQ0KPiBEUk1f TU9ERV9DT05ORUNUT1JfZURQICYmDQo+ID4gKwkJCWludGVsX2RwX2F1eF9pbml0X2JhY2tsaWdo dF9mdW5jcyhjb25uZWN0b3IpID09IDApDQo+ID4gKwkJcmV0dXJuOw0KPiA+ICsNCj4gY2FuIHdl IG1ha2UgdGhpcyBmZWF0dXJlIHRvIGJlIGVuYWJsZWQgZXhwbGljaXRseSByYXRoZXIgdGhhbiBp ZiB0aGUgcGFuZWwNCj4gc3VwcG9ydHMgaXQgPyB3ZSBoYXZlIG5ldmVyIGNoZWNrZWQgZm9yIHRo ZXNlIGRwY2QgcmVnaXN0ZXJzIHRpbGwgbm93IGFuZCBpdCBpcw0KPiBxdWl0ZSBwb3NzaWJsZSBm b3IgYW55IG9uZSBwYW5lbCB0byBwYXNzIHRoaXMgZXZlbiB0aG91Z2ggd2UgYXJlIHVzaW5nIGl0 IHdpdGgNCj4gUFdNIGJhc2VkIGNvbnRyb2wgYXQgcHJlc2VudC4gaS5lIHdlIGtlZXAgUFNSIGRp c2FibGVkIHN0aWxsIHNpbmNlIGl0IGlzIG5vdA0KPiB3b3JraW5nIGFsd2F5cywgd2h5IHNob3Vs ZCB3ZSBlbmFibGUgdGhpcyBieSBkZWZhdWx0IDopLg0KDQpJIGNhbiBkbyB0aGF0IGlmIHRoZXJl IGlzIG5vIG9iamVjdGlvbi4gU29tZXRoaW5nIGxpa2UgZW5hYmxlX2RjcGRfYmFja2xpZ2h0IHBh cmFtZXRlcj8NCg0KPiANCj4gaSB1bmRlcnN0YW5kIGkgYW0gbGF0ZSB0byB0aGlzIHRocmVhZCwg YnV0IGdvb2QgdG8gY2hlY2sgbGF0ZSBhdC1sZWFzdC4NCj4gZGlkIHlvdSB0ZXN0IHdpdGggRFBT VCBkaXNhYmxlZCBvciBkb2VzIHRoaXMgYWZmZWN0IHRoZSBwYW5lbCB1c2FiaWxpdHkgd2l0aA0K PiBkcHN0IGVuYWJsZWQgb3IgZGlzYWJsZWQgPw0KPiBTaXZha3VtYXINCg0KSSBoYXZlIG5vdCB0 ZXN0ZWQgaXQgd2l0aCBEUFNULCBob3cgZG8gSSBlbmFibGUgRFBTVD8gDQoNCj4gPiAgIAlpZiAo SVNfQlJPWFRPTihkZXZfcHJpdikpIHsNCj4gPiAgIAkJcGFuZWwtPmJhY2tsaWdodC5zZXR1cCA9 IGJ4dF9zZXR1cF9iYWNrbGlnaHQ7DQo+ID4gICAJCXBhbmVsLT5iYWNrbGlnaHQuZW5hYmxlID0g Ynh0X2VuYWJsZV9iYWNrbGlnaHQ7DQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=