From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Shankar, Uma" Subject: Re: [PATCH v10 08/40] drm/i915: Enable and Disable of HDCP2.2 Date: Mon, 4 Feb 2019 14:17:18 +0000 Message-ID: References: <1548917996-28081-1-git-send-email-ramalingam.c@intel.com> <1548917996-28081-9-git-send-email-ramalingam.c@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1548917996-28081-9-git-send-email-ramalingam.c@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: "C, Ramalingam" , "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" , "daniel.vetter@ffwll.ch" , "Winkler, Tomas" List-Id: dri-devel@lists.freedesktop.org DQoNCj4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPkZyb206IGRyaS1kZXZlbCBbbWFpbHRv OmRyaS1kZXZlbC1ib3VuY2VzQGxpc3RzLmZyZWVkZXNrdG9wLm9yZ10gT24gQmVoYWxmIE9mDQo+ UmFtYWxpbmdhbSBDDQo+U2VudDogVGh1cnNkYXksIEphbnVhcnkgMzEsIDIwMTkgMTI6MjkgUE0N Cj5UbzogaW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsgZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZzsNCj5kYW5pZWwudmV0dGVyQGZmd2xsLmNoOyBXaW5rbGVyLCBUb21hcyA8 dG9tYXMud2lua2xlckBpbnRlbC5jb20+OyBTaGFua2FyLA0KPlVtYSA8dW1hLnNoYW5rYXJAaW50 ZWwuY29tPg0KPlN1YmplY3Q6IFtQQVRDSCB2MTAgMDgvNDBdIGRybS9pOTE1OiBFbmFibGUgYW5k IERpc2FibGUgb2YgSERDUDIuMg0KPg0KPkNvbnNpZGVyaW5nIHRoYXQgSERDUDIuMiBpcyBtb3Jl IHNlY3VyZSB0aGFuIEhEQ1AxLjQsIFdoZW4gYSBzZXR1cCBzdXBwb3J0cw0KPkhEQ1AyLjIgYW5k IEhEQ1AxLjQsIEhEQ1AyLjIgd2lsbCBiZSBlbmFibGVkLg0KPg0KPldoZW4gSERDUDIuMiBlbmFi bGluZyBmYWlscyBhbmQgSERDUDEuNCBpcyBzdXBwb3J0ZWQsIEhEQ1AxLjQgaXMgZW5hYmxlZC4N Cj4NCj5UaGlzIGNoYW5nZSBpbXBsZW1lbnRzIGEgc2VxdWVuY2Ugb2YgZW5hYmxpbmcgYW5kIGRp c2FibGluZyBvZg0KPkhEQ1AyLjIgYXV0aGVudGljYXRpb24gYW5kIEhEQ1AyLjIgcG9ydCBlbmNy eXB0aW9uLg0KPg0KPnYyOg0KPiAgSW5jbHVkZWQgZmV3IG9wdGltaXphdGlvbiBzdWdnZXN0aW9u cyBbQ2hyaXMgV2lsc29uXQ0KPiAgQ29tbWl0IG1lc3NhZ2UgaXMgdXBkYXRlZCBhcyBwZXIgdGhl IHJlYmFzZWQgdmVyc2lvbi4NCj4gIGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyIGlzIHVzZWQgaW5z dGVhZCBvZiB3YWl0X2Zvci4gW0NocmlzIFdpbHNvbl0NCj52MzoNCj4gIEV4dHJhIGNvbW1lbnQg YWRkZWQgYW5kIFN0eWxlIGlzc3VlIGZpeGVkIFtVbWFdDQo+djQ6DQo+ICBSZWJhc2VkIGFzIHBh cnQgb2YgcGF0Y2ggcmVvcmRlcmluZy4NCj4gIEhEQ1AyIGVuY3J5cHRpb24gc3RhdHVzIGlzIHRy YWNrZWQuDQo+ICBIVyBzdGF0ZSBjaGVjayBpcyBtb3ZlZCBpbnRvIFdBUk5fT04gW0RhbmllbF0N Cj52NToNCj4gIFJlZGVmaW5lZCB0aGUgbWVpIHNlcnZpY2UgZnVuY3Rpb25zIGFzIHBlciBjb21w IHJlZGVzaWduLg0KPiAgTWVyZ2VkIHBhdGNoZXMgcmVsYXRlZCB0byBoZGNwMi4yIGVuYWJsaW5n IGFuZCBkaXNhYmxpbmcgW1NlYW4gUGF1bF0uDQo+ICBSZXF1aXJlZCBzaGltIGZ1bmN0aW9uYWxp dHkgaXMgZGVmaW5lZCBbU2VhbiBQYXVsXQ0KPnY2Og0KPiAgUmV0dXJuIHZhbHVlcyBhcmUgaGFu ZGxlcyBbVW1hXQ0KPiAgUmVhbGlnbmVkIHRoZSBjb2RlLg0KPiAgQ2hlY2sgZm9yIGNvbXBfbWFz dGVyIGlzIHJlbW92ZWQuDQo+djc6DQo+ICBIRENQMi4yIGlzIGF0dGVtcHRlZCBvbmx5IGlmIG1l aSBpbnRlcmZhY2UgaXMgdXAuDQo+ICBBZGp1c3QgdG8gdGhlIG5ldyBpbnRlcmZhY2UNCj4gIEF2 b2lkIGJvb2wgdXNhZ2UgaW4gc3RydWN0IFtUb21hc10NCj52ODoNCj4gIG1laV9iaW5kZWQgc3Rh dHVzIGNoZWNrIGlzIHJlbW92ZWQuDQo+ICAlcy9oZGNwMl9pbl91c2UvaGRjcDJfZW5jcnlwdGVk DQo+djk6DQo+ICBib29sIGlzIHVzZWQgaW4gc3RydWN0IGludGVsX2hkY3AuIFtEYW5pZWxdDQo+ DQo+U2lnbmVkLW9mZi1ieTogUmFtYWxpbmdhbSBDIDxyYW1hbGluZ2FtLmNAaW50ZWwuY29tPg0K PlJldmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPg0KPi0t LQ0KPiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgfCAgIDcgKysNCj4gZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jIHwgMjAyDQo+KysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0NCj4gMiBmaWxlcyBjaGFuZ2VkLCAxOTUgaW5zZXJ0aW9ucygrKSwg MTQgZGVsZXRpb25zKC0pDQo+DQo+ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgNCj5pbmRleCAxM2E0 MWU4Y2Y0ZmYuLjMxYzdhNDU3N2NhOSAxMDA2NDQNCj4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaA0KPisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oDQo+ QEAgLTM4OSw2ICszODksMTAgQEAgc3RydWN0IGludGVsX2hkY3Bfc2hpbSB7DQo+DQo+IAkvKiBI RENQIGFkYXB0YXRpb24oRFAvSERNSSkgcmVxdWlyZWQgb24gdGhlIHBvcnQgKi8NCj4gCWVudW0g aGRjcF93aXJlZF9wcm90b2NvbCBwcm90b2NvbDsNCj4rDQo+KwkvKiBEZXRlY3RzIHdoZXRoZXIg UGFuZWwgaXMgSERDUDIuMiBjYXBhYmxlICovDQoNCk1ha2UgUGFuZWwgYXMgU2luay4NCg0KPisJ aW50ICgqaGRjcF8yXzJfY2FwYWJsZSkoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxf ZGlnX3BvcnQsDQo+KwkJCQlib29sICpjYXBhYmxlKTsNCj4gfTsNCj4NCj4gc3RydWN0IGludGVs X2hkY3Agew0KPkBAIC00MDYsNiArNDEwLDkgQEAgc3RydWN0IGludGVsX2hkY3Agew0KPiAJLyog RmxhZyBpbmRpY2F0ZXMgd2hldGhlciB0aGlzIGNvbm5lY3RvciBzdXBwb3J0cyBIRENQMi4yIG9y IG5vdC4gKi8NCj4gCWJvb2wgaGRjcDJfc3VwcG9ydGVkOw0KPg0KPisJLyogSERDUDIuMiBFbmNy eXB0aW9uIHN0YXR1cyAqLw0KPisJYm9vbCBoZGNwMl9lbmNyeXB0ZWQ7DQo+Kw0KPiAJLyoNCj4g CSAqIENvbnRlbnQgU3RyZWFtIFR5cGUgZGVmaW5lZCBieSBjb250ZW50IG93bmVyLiBUWVBFMCgw eDApIGNvbnRlbnQNCj5jYW4NCj4gCSAqIGZsb3cgaW4gdGhlIGxpbmsgcHJvdGVjdGVkIGJ5IEhE Q1AyLjIgb3IgSERDUDEuNCwgd2hlcmUgYXMNCj5UWVBFMSgweDEpIGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMNCj5iL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2hkY3AuYw0KPmluZGV4IGMxYjA1N2YxNTAxYi4uZmJmOGI3ODkzYmZhIDEwMDY0NA0KPi0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYw0KPisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2hkY3AuYw0KPkBAIC03NCw2ICs3NCwyMyBAQCBib29sIGludGVsX2hk Y3BfY2FwYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yDQo+KmNvbm5lY3RvcikNCj4gCXJldHVy biBjYXBhYmxlOw0KPiB9DQo+DQo+Ky8qIElzIEhEQ1AyLjIgY2FwYWJsZSBvbiBQbGF0Zm9ybSBh bmQgU2luayAqLyBzdGF0aWMgYm9vbA0KPitpbnRlbF9oZGNwMl9jYXBhYmxlKHN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3Rvcikgew0KPisJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq aW50ZWxfZGlnX3BvcnQgPSBjb25uX3RvX2RpZ19wb3J0KGNvbm5lY3Rvcik7DQo+KwlzdHJ1Y3Qg aW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7DQo+Kwlib29sIGNhcGFibGUgPSBm YWxzZTsNCj4rDQo+KwkvKiBJOTE1IHN1cHBvcnQgZm9yIEhEQ1AyLjIgKi8NCj4rCWlmICghaGRj cC0+aGRjcDJfc3VwcG9ydGVkKQ0KPisJCXJldHVybiBmYWxzZTsNCj4rDQo+KwkvKiBTaW5rJ3Mg Y2FwYWJpbGl0eSBmb3IgSERDUDIuMiAqLw0KPisJaGRjcC0+c2hpbS0+aGRjcF8yXzJfY2FwYWJs ZShpbnRlbF9kaWdfcG9ydCwgJmNhcGFibGUpOw0KPisNCj4rCXJldHVybiBjYXBhYmxlOw0KPit9 DQo+Kw0KPiBzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfaGRjcF9pbl91c2Uoc3RydWN0IGludGVs X2Nvbm5lY3RvciAqY29ubmVjdG9yKSAgew0KPiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsgQEANCj4tMTA5NCw4ICsxMTEx LDcgQEAgaW50IGhkY3AyX2F1dGhlbnRpY2F0ZV9wb3J0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IN Cj4qY29ubmVjdG9yKQ0KPiAJcmV0dXJuIHJldDsNCj4gfQ0KPg0KPi1zdGF0aWMgX19hdHRyaWJ1 dGVfXygodW51c2VkKSkNCj4taW50IGhkY3AyX2Nsb3NlX21laV9zZXNzaW9uKHN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvcikNCj4rc3RhdGljIGludCBoZGNwMl9jbG9zZV9tZWlfc2Vz c2lvbihzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpDQo+IHsNCj4gCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7 DQo+IAlzdHJ1Y3QgaTkxNV9oZGNwX2NvbXBfbWFzdGVyICpjb21wOw0KPkBAIC0xMTE2LDEyICsx MTMyLDE1NyBAQCBpbnQgaGRjcDJfY2xvc2VfbWVpX3Nlc3Npb24oc3RydWN0DQo+aW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IpDQo+IAlyZXR1cm4gcmV0Ow0KPiB9DQo+DQo+LXN0YXRpYyBfX2F0 dHJpYnV0ZV9fKCh1bnVzZWQpKQ0KPi1pbnQgaGRjcDJfZGVhdXRoZW50aWNhdGVfcG9ydChzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpDQo+K3N0YXRpYyBpbnQgaGRjcDJfZGVhdXRo ZW50aWNhdGVfcG9ydChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpDQo+IHsNCj4g CXJldHVybiBoZGNwMl9jbG9zZV9tZWlfc2Vzc2lvbihjb25uZWN0b3IpOw0KPiB9DQo+DQo+K3N0 YXRpYyBpbnQgaGRjcDJfYXV0aGVudGljYXRlX3Npbmsoc3RydWN0IGludGVsX2Nvbm5lY3RvciAq Y29ubmVjdG9yKSB7DQo+KwlEUk1fRVJST1IoIlNpbmsgYXV0aGVudGljYXRpb24gaXMgZG9uZSBp biBzdWJzZXF1ZW50IHBhdGNoZXNcbiIpOw0KPisNCj4rCXJldHVybiAtRUlOVkFMOw0KPit9DQo+ Kw0KPitzdGF0aWMgaW50IGhkY3AyX2VuYWJsZV9lbmNyeXB0aW9uKHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3Rvcikgew0KPisJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxf ZGlnX3BvcnQgPSBjb25uX3RvX2RpZ19wb3J0KGNvbm5lY3Rvcik7DQo+KwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOw0KPisJ c3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOw0KPisJZW51bSBwb3J0 IHBvcnQgPSBjb25uZWN0b3ItPmVuY29kZXItPnBvcnQ7DQo+KwlpbnQgcmV0Ow0KPisNCj4rCVdB Uk5fT04oSTkxNV9SRUFEKEhEQ1AyX1NUQVRVU19EREkocG9ydCkpICYNCj5MSU5LX0VOQ1JZUFRJ T05fU1RBVFVTKTsNCj4rDQo+KwlpZiAoaGRjcC0+c2hpbS0+dG9nZ2xlX3NpZ25hbGxpbmcpIHsN Cj4rCQlyZXQgPSBoZGNwLT5zaGltLT50b2dnbGVfc2lnbmFsbGluZyhpbnRlbF9kaWdfcG9ydCwg dHJ1ZSk7DQo+KwkJaWYgKHJldCkgew0KPisJCQlEUk1fRVJST1IoIkZhaWxlZCB0byBlbmFibGUg SERDUCBzaWduYWxsaW5nLiAlZFxuIiwNCj4rCQkJCSAgcmV0KTsNCj4rCQkJcmV0dXJuIHJldDsN Cj4rCQl9DQo+Kwl9DQo+Kw0KPisJaWYgKEk5MTVfUkVBRChIRENQMl9TVEFUVVNfRERJKHBvcnQp KSAmIExJTktfQVVUSF9TVEFUVVMpIHsNCj4rCQkvKiBMaW5rIGlzIEF1dGhlbnRpY2F0ZWQuIE5v dyBzZXQgZm9yIEVuY3J5cHRpb24gKi8NCj4rCQlJOTE1X1dSSVRFKEhEQ1AyX0NUTF9EREkocG9y dCksDQo+KwkJCSAgIEk5MTVfUkVBRChIRENQMl9DVExfRERJKHBvcnQpKSB8DQo+KwkJCSAgIENU TF9MSU5LX0VOQ1JZUFRJT05fUkVRKTsNCj4rCX0NCj4rDQo+KwlyZXQgPSBpbnRlbF93YWl0X2Zv cl9yZWdpc3RlcihkZXZfcHJpdiwgSERDUDJfU1RBVFVTX0RESShwb3J0KSwNCj4rCQkJCSAgICAg IExJTktfRU5DUllQVElPTl9TVEFUVVMsDQo+KwkJCQkgICAgICBMSU5LX0VOQ1JZUFRJT05fU1RB VFVTLA0KPisJCQkJICAgICAgRU5DUllQVF9TVEFUVVNfQ0hBTkdFX1RJTUVPVVRfTVMpOw0KPisN Cj4rCXJldHVybiByZXQ7DQo+K30NCj4rDQo+K3N0YXRpYyBpbnQgaGRjcDJfZGlzYWJsZV9lbmNy eXB0aW9uKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikNCj4rew0KPisJc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBjb25uX3RvX2RpZ19wb3J0KGNv bm5lY3Rvcik7DQo+KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNvbm5lY3Rvci0+YmFzZS5kZXYpOw0KPisJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29u bmVjdG9yLT5oZGNwOw0KPisJZW51bSBwb3J0IHBvcnQgPSBjb25uZWN0b3ItPmVuY29kZXItPnBv cnQ7DQo+KwlpbnQgcmV0Ow0KPisNCj4rCVdBUk5fT04oIShJOTE1X1JFQUQoSERDUDJfU1RBVFVT X0RESShwb3J0KSkgJg0KPitMSU5LX0VOQ1JZUFRJT05fU1RBVFVTKSk7DQo+Kw0KPisJSTkxNV9X UklURShIRENQMl9DVExfRERJKHBvcnQpLA0KPisJCSAgIEk5MTVfUkVBRChIRENQMl9DVExfRERJ KHBvcnQpKSAmDQo+fkNUTF9MSU5LX0VOQ1JZUFRJT05fUkVRKTsNCj4rDQo+KwlyZXQgPSBpbnRl bF93YWl0X2Zvcl9yZWdpc3RlcihkZXZfcHJpdiwgSERDUDJfU1RBVFVTX0RESShwb3J0KSwNCj4r CQkJCSAgICAgIExJTktfRU5DUllQVElPTl9TVEFUVVMsIDB4MCwNCj4rCQkJCSAgICAgIEVOQ1JZ UFRfU1RBVFVTX0NIQU5HRV9USU1FT1VUX01TKTsNCj4rCWlmIChyZXQgPT0gLUVUSU1FRE9VVCkN Cj4rCQlEUk1fREVCVUdfS01TKCJEaXNhYmxlIEVuY3J5cHRpb24gVGltZWRvdXQiKTsNCj4rDQo+ KwlpZiAoaGRjcC0+c2hpbS0+dG9nZ2xlX3NpZ25hbGxpbmcpIHsNCj4rCQlyZXQgPSBoZGNwLT5z aGltLT50b2dnbGVfc2lnbmFsbGluZyhpbnRlbF9kaWdfcG9ydCwgZmFsc2UpOw0KPisJCWlmIChy ZXQpIHsNCj4rCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gZGlzYWJsZSBIRENQIHNpZ25hbGxpbmcu ICVkXG4iLA0KPisJCQkJICByZXQpOw0KPisJCQlyZXR1cm4gcmV0Ow0KPisJCX0NCj4rCX0NCj4r DQo+KwlyZXR1cm4gcmV0Ow0KPit9DQo+Kw0KPitzdGF0aWMgaW50IGhkY3AyX2F1dGhlbnRpY2F0 ZV9hbmRfZW5jcnlwdChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yDQo+Kypjb25uZWN0b3IpIHsNCj4r CWludCByZXQsIGksIHRyaWVzID0gMzsNCj4rDQo+Kwlmb3IgKGkgPSAwOyBpIDwgdHJpZXM7IGkr Kykgew0KPisJCXJldCA9IGhkY3AyX2F1dGhlbnRpY2F0ZV9zaW5rKGNvbm5lY3Rvcik7DQo+KwkJ aWYgKCFyZXQpDQo+KwkJCWJyZWFrOw0KPisNCj4rCQkvKiBDbGVhcmluZyB0aGUgbWVpIGhkY3Ag c2Vzc2lvbiAqLw0KPisJCURSTV9ERUJVR19LTVMoIkhEQ1AyLjIgQXV0aCAlZCBvZiAlZCBGYWls ZWQuKCVkKVxuIiwNCj4rCQkJICAgICAgaSArIDEsIHRyaWVzLCByZXQpOw0KPisJCWlmIChoZGNw Ml9kZWF1dGhlbnRpY2F0ZV9wb3J0KGNvbm5lY3RvcikgPCAwKQ0KPisJCQlEUk1fREVCVUdfS01T KCJQb3J0IGRlYXV0aCBmYWlsZWQuXG4iKTsNCj4rCX0NCj4rDQo+KwlpZiAoaSAhPSB0cmllcykg ew0KPisJCS8qDQo+KwkJICogRW5zdXJpbmcgdGhlIHJlcXVpcmVkIDIwMG1TZWMgbWluIHRpbWUg aW50ZXJ2YWwgYmV0d2Vlbg0KPisJCSAqIFNlc3Npb24gS2V5IEV4Y2hhbmdlIGFuZCBlbmNyeXB0 aW9uLg0KPisJCSAqLw0KPisJCW1zbGVlcChIRENQXzJfMl9ERUxBWV9CRUZPUkVfRU5DUllQVElP Tl9FTik7DQo+KwkJcmV0ID0gaGRjcDJfZW5hYmxlX2VuY3J5cHRpb24oY29ubmVjdG9yKTsNCj4r CQlpZiAocmV0IDwgMCkgew0KPisJCQlEUk1fREVCVUdfS01TKCJFbmNyeXB0aW9uIEVuYWJsZSBG YWlsZWQuKCVkKVxuIiwNCj5yZXQpOw0KPisJCQlpZiAoaGRjcDJfZGVhdXRoZW50aWNhdGVfcG9y dChjb25uZWN0b3IpIDwgMCkNCj4rCQkJCURSTV9ERUJVR19LTVMoIlBvcnQgZGVhdXRoIGZhaWxl ZC5cbiIpOw0KPisJCX0NCj4rCX0NCj4rDQo+KwlyZXR1cm4gcmV0Ow0KPit9DQo+Kw0KPitzdGF0 aWMgaW50IF9pbnRlbF9oZGNwMl9lbmFibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yKSB7DQo+KwlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7DQo+ KwlpbnQgcmV0Ow0KPisNCj4rCURSTV9ERUJVR19LTVMoIlslczolZF0gSERDUDIuMiBpcyBiZWlu ZyBlbmFibGVkLiBUeXBlOiAlZFxuIiwNCj4rCQkgICAgICBjb25uZWN0b3ItPmJhc2UubmFtZSwg Y29ubmVjdG9yLT5iYXNlLmJhc2UuaWQsDQo+KwkJICAgICAgaGRjcC0+Y29udGVudF90eXBlKTsN Cj4rDQo+KwlyZXQgPSBoZGNwMl9hdXRoZW50aWNhdGVfYW5kX2VuY3J5cHQoY29ubmVjdG9yKTsN Cj4rCWlmIChyZXQpIHsNCj4rCQlEUk1fREVCVUdfS01TKCJIRENQMiBUeXBlJWQgIEVuYWJsaW5n IEZhaWxlZC4gKCVkKVxuIiwNCj4rCQkJICAgICAgaGRjcC0+Y29udGVudF90eXBlLCByZXQpOw0K PisJCXJldHVybiByZXQ7DQo+Kwl9DQo+Kw0KPisJRFJNX0RFQlVHX0tNUygiWyVzOiVkXSBIRENQ Mi4yIGlzIGVuYWJsZWQuIFR5cGUgJWRcbiIsDQo+KwkJICAgICAgY29ubmVjdG9yLT5iYXNlLm5h bWUsIGNvbm5lY3Rvci0+YmFzZS5iYXNlLmlkLA0KPisJCSAgICAgIGhkY3AtPmNvbnRlbnRfdHlw ZSk7DQo+Kw0KPisJaGRjcC0+aGRjcDJfZW5jcnlwdGVkID0gdHJ1ZTsNCj4rCXJldHVybiAwOw0K Pit9DQo+Kw0KPitzdGF0aWMgaW50IF9pbnRlbF9oZGNwMl9kaXNhYmxlKHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3Rvcikgew0KPisJaW50IHJldDsNCj4rDQo+KwlEUk1fREVCVUdfS01T KCJbJXM6JWRdIEhEQ1AyLjIgaXMgYmVpbmcgRGlzYWJsZWRcbiIsDQo+KwkJICAgICAgY29ubmVj dG9yLT5iYXNlLm5hbWUsIGNvbm5lY3Rvci0+YmFzZS5iYXNlLmlkKTsNCj4rDQo+KwlyZXQgPSBo ZGNwMl9kaXNhYmxlX2VuY3J5cHRpb24oY29ubmVjdG9yKTsNCj4rDQo+KwlpZiAoaGRjcDJfZGVh dXRoZW50aWNhdGVfcG9ydChjb25uZWN0b3IpIDwgMCkNCj4rCQlEUk1fREVCVUdfS01TKCJQb3J0 IGRlYXV0aCBmYWlsZWQuXG4iKTsNCj4rDQo+Kwljb25uZWN0b3ItPmhkY3AuaGRjcDJfZW5jcnlw dGVkID0gZmFsc2U7DQo+Kw0KPisJcmV0dXJuIHJldDsNCj4rfQ0KPisNCj4gc3RhdGljIHZvaWQg aW50ZWxfaGRjcF9jaGVja193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykgIHsNCj4gCXN0 cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gY29udGFpbmVyX29mKHRvX2RlbGF5ZWRfd29yayh3b3Jr KSwNCj5AQCAtMTI3MCwyMiArMTQzMSwzMyBAQCBpbnQgaW50ZWxfaGRjcF9pbml0KHN0cnVjdCBp bnRlbF9jb25uZWN0b3INCj4qY29ubmVjdG9yLCAgaW50IGludGVsX2hkY3BfZW5hYmxlKHN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikgIHsNCj4gCXN0cnVjdCBpbnRlbF9oZGNwICpo ZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsNCj4tCWludCByZXQ7DQo+KwlpbnQgcmV0ID0gLUVJTlZB TDsNCj4NCj4gCWlmICghaGRjcC0+c2hpbSkNCj4gCQlyZXR1cm4gLUVOT0VOVDsNCj4NCj4gCW11 dGV4X2xvY2soJmhkY3AtPm11dGV4KTsNCj4NCj4tCXJldCA9IF9pbnRlbF9oZGNwX2VuYWJsZShj b25uZWN0b3IpOw0KPi0JaWYgKHJldCkNCj4tCQlnb3RvIG91dDsNCj4rCS8qDQo+KwkgKiBDb25z aWRlcmluZyB0aGF0IEhEQ1AyLjIgaXMgbW9yZSBzZWN1cmUgdGhhbiBIRENQMS40LCBJZiB0aGUg c2V0dXANCj4rCSAqIGlzIGNhcGFibGUgb2YgSERDUDIuMiwgaXQgaXMgcHJlZmVycmVkIHRvIHVz ZSBIRENQMi4yLg0KPisJICovDQo+KwlpZiAoaW50ZWxfaGRjcDJfY2FwYWJsZShjb25uZWN0b3Ip KQ0KPisJCXJldCA9IF9pbnRlbF9oZGNwMl9lbmFibGUoY29ubmVjdG9yKTsNCj4rDQo+KwkvKiBX aGVuIEhEQ1AyLjIgZmFpbHMsIEhEQ1AxLjQgd2lsbCBiZSBhdHRlbXB0ZWQgKi8NCj4rCWlmIChy ZXQgJiYgaW50ZWxfaGRjcF9jYXBhYmxlKGNvbm5lY3RvcikpIHsNCj4rCQlyZXQgPSBfaW50ZWxf aGRjcF9lbmFibGUoY29ubmVjdG9yKTsNCj4rCQlpZiAoIXJldCkNCj4rCQkJc2NoZWR1bGVfZGVs YXllZF93b3JrKCZoZGNwLT5jaGVja193b3JrLA0KPisJCQkJCSAgICAgIERSTV9IRENQX0NIRUNL X1BFUklPRF9NUyk7DQo+Kwl9DQo+Kw0KPisJaWYgKCFyZXQpIHsNCj4rCQloZGNwLT52YWx1ZSA9 IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9FTkFCTEVEOw0KPisJCXNjaGVkdWxlX3dvcmso JmhkY3AtPnByb3Bfd29yayk7DQoNCkxvb2tzIGxpa2UgY2hlY2tfd29yayBpcyBub3QgY2FsbGVk IGZvciAyLjIuIEZpeCB0aGlzLg0KDQpXaXRoIHRoaXMgZml4ZWQuDQpSZXZpZXdlZC1ieTogVW1h IFNoYW5rYXIgPHVtYS5zaGFua2FyQGludGVsLmNvbT4NCg0KPisJfQ0KPg0KPi0JaGRjcC0+dmFs dWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fRU5BQkxFRDsNCj4tCXNjaGVkdWxlX3dv cmsoJmhkY3AtPnByb3Bfd29yayk7DQo+LQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmhkY3AtPmNo ZWNrX3dvcmssDQo+LQkJCSAgICAgIERSTV9IRENQX0NIRUNLX1BFUklPRF9NUyk7DQo+LW91dDoN Cj4gCW11dGV4X3VubG9jaygmaGRjcC0+bXV0ZXgpOw0KPiAJcmV0dXJuIHJldDsNCj4gfQ0KPkBA IC0xMzAyLDcgKzE0NzQsOSBAQCBpbnQgaW50ZWxfaGRjcF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9j b25uZWN0b3INCj4qY29ubmVjdG9yKQ0KPg0KPiAJaWYgKGhkY3AtPnZhbHVlICE9IERSTV9NT0RF X0NPTlRFTlRfUFJPVEVDVElPTl9VTkRFU0lSRUQpIHsNCj4gCQloZGNwLT52YWx1ZSA9DQo+RFJN X01PREVfQ09OVEVOVF9QUk9URUNUSU9OX1VOREVTSVJFRDsNCj4tCQlpZiAoaGRjcC0+aGRjcF9l bmNyeXB0ZWQpDQo+KwkJaWYgKGhkY3AtPmhkY3AyX2VuY3J5cHRlZCkNCj4rCQkJcmV0ID0gX2lu dGVsX2hkY3AyX2Rpc2FibGUoY29ubmVjdG9yKTsNCj4rCQllbHNlIGlmIChoZGNwLT5oZGNwX2Vu Y3J5cHRlZCkNCj4gCQkJcmV0ID0gX2ludGVsX2hkY3BfZGlzYWJsZShjb25uZWN0b3IpOw0KPiAJ fQ0KPg0KPi0tDQo+Mi43LjQNCj4NCj5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXw0KPmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QNCj5kcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnDQo+aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=