From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 07/10] drm/i915/cnl: Add HPD support for Port F. Date: Mon, 22 Jan 2018 18:51:08 +0200 Message-ID: <20180122165108.GF5453@intel.com> References: <20180120000524.4746-1-rodrigo.vivi@intel.com> <20180120000524.4746-7-rodrigo.vivi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 21F416E251 for ; Mon, 22 Jan 2018 16:51:12 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180120000524.4746-7-rodrigo.vivi@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org, Lucas De Marchi , Dhinakaran Pandiyan List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBKYW4gMTksIDIwMTggYXQgMDQ6MDU6MjFQTSAtMDgwMCwgUm9kcmlnbyBWaXZpIHdy b3RlOgo+IE9uIENOUCBib2FyZHMgdGhhdCBhcmUgdXNpbmcgRERJIEYsCj4gYml0IDI1IChTREVf UE9SVEVfSE9UUExVR19TUFQpIGlzIHJlcHJlc2VudGluZwo+IHRoZSBEaWdpdGFsIFBvcnQgRiBo b3RwbHVnIGxpbmUgd2hlbiB0aGUgRGlnaXRhbAo+IFBvcnQgRiBob3RwbHVnIGRldGVjdCBpbnB1 dCBpcyBlbmFibGVkLgo+IAo+IHYyOiBSZXVzZSBhbGwgZXhpc3RlbnQgc3RydWN0dXJlIGluc3Rl YWQgb2YgYWRkaW5nIGEKPiBuZXcgSFBEX1BPUlRfRiBwb2ludGluZyB0byBwaW4gb2YgcG9ydCBF Lgo+IHYzOiBVc2UgSVNfQ05MX1dJVEhfUE9SVF9GIHNvIHdlIGNhbiBzdGFydCB1cHN0cmVhbWlu Zwo+ICAgICB0aGlzIHJpZ2h0IG5vdy4gSWYgdGhhdCBTS1UgZXZlciBnZXQgYSBwcm9wZXIgbmFt ZQo+ICAgICB3ZSBjb21lIGJhY2sgYW5kIHVwZGF0ZSBpdC4KPiB2NDogUmViYXNlIG9uIHRvcCBv ZiBkaWdpdGFsIGNvbm5lY3RlZCBwb3J0IHVzaW5nIGVuY29kZXIKPiAgICAgaW5zdGVhZCBvZiBw b3J0Lgo+IHY1OiBNb3ZlZCBJU19DTkxfV0lUSF9QT1JUX0YgZGVmaW5pdGlvbiB0byB0aGUgUENJ IElEcyBwYXRjaC4KPiAKPiBDYzogTHVjYXMgRGUgTWFyY2hpIDxsdWNhcy5kZW1hcmNoaUBpbnRl bC5jb20+Cj4gQ2M6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4g Q2M6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tPgo+ IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IFNp Z25lZC1vZmYtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPiAtLS0K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgIDYgKysrKy0tCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICB8IDM1ICsrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAg ICB8ICA0ICsrKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jICAgIHwgIDIg Ky0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaG90cGx1Zy5jIHwgMTkgKysrKysrKysr KysrKysrLS0tLQo+ICA1IGZpbGVzIGNoYW5nZWQsIDQyIGluc2VydGlvbnMoKyksIDI0IGRlbGV0 aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDcyMDZjN2M1ZjgxYy4u MGI1ZjhkODg3YmZkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTI5NTcsOCAr Mjk1NywxMCBAQCB2b2lkIGludGVsX2hwZF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gIHZvaWQgaW50ZWxfaHBkX2luaXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KTsKPiAgdm9pZCBpbnRlbF9ocGRfaW5pdF93b3JrKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIHZvaWQgaW50ZWxfaHBkX2NhbmNlbF93b3JrKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gLWVudW0gcG9ydCBpbnRlbF9ocGRf cGluX3RvX3BvcnQoZW51bSBocGRfcGluIHBpbik7Cj4gLWVudW0gaHBkX3BpbiBpbnRlbF9ocGRf cGluKGVudW0gcG9ydCBwb3J0KTsKPiArZW51bSBwb3J0IGludGVsX2hwZF9waW5fdG9fcG9ydChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCQllbnVtIGhwZF9waW4gcGlu KTsKPiArZW51bSBocGRfcGluIGludGVsX2hwZF9waW5fZGVmYXVsdChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCQkgICBlbnVtIHBvcnQgcG9ydCk7Cj4gIGJvb2wgaW50 ZWxfaHBkX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIGhw ZF9waW4gcGluKTsKPiAgdm9pZCBpbnRlbF9ocGRfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgZW51bSBocGRfcGluIHBpbik7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9p cnEuYwo+IGluZGV4IDBhZjk3MGQ0YjNjZi4uNzhhZjQ1OTRlYjM4IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2lycS5jCj4gQEAgLTE1NjgsMTAgKzE1NjgsMTEgQEAgc3RhdGljIGJvb2wgaTl4eF9w b3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QoZW51bSBwb3J0IHBvcnQsIHUzMiB2YWwpCj4gICAqCj4g ICAqIE5vdGUgdGhhdCB0aGUgY2FsbGVyIGlzIGV4cGVjdGVkIHRvIHplcm8gb3V0IHRoZSBtYXNr cyBpbml0aWFsbHkuCj4gICAqLwo+IC1zdGF0aWMgdm9pZCBpbnRlbF9nZXRfaHBkX3BpbnModTMy ICpwaW5fbWFzaywgdTMyICpsb25nX21hc2ssCj4gLQkJCSAgICAgdTMyIGhvdHBsdWdfdHJpZ2dl ciwgdTMyIGRpZ19ob3RwbHVnX3JlZywKPiAtCQkJICAgICBjb25zdCB1MzIgaHBkW0hQRF9OVU1f UElOU10sCj4gLQkJCSAgICAgYm9vbCBsb25nX3B1bHNlX2RldGVjdChlbnVtIHBvcnQgcG9ydCwg dTMyIHZhbCkpCj4gK3N0YXRpYyB2b2lkIGludGVsX2dldF9ocGRfcGlucyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCSAgICAgICB1MzIgKnBpbl9tYXNrLCB1MzIgKmxv bmdfbWFzaywKPiArCQkJICAgICAgIHUzMiBob3RwbHVnX3RyaWdnZXIsIHUzMiBkaWdfaG90cGx1 Z19yZWcsCj4gKwkJCSAgICAgICBjb25zdCB1MzIgaHBkW0hQRF9OVU1fUElOU10sCj4gKwkJCSAg ICAgICBib29sIGxvbmdfcHVsc2VfZGV0ZWN0KGVudW0gcG9ydCBwb3J0LCB1MzIgdmFsKSkKPiAg ewo+ICAJZW51bSBwb3J0IHBvcnQ7Cj4gIAlpbnQgaTsKPiBAQCAtMTU4Miw3ICsxNTgzLDcgQEAg c3RhdGljIHZvaWQgaW50ZWxfZ2V0X2hwZF9waW5zKHUzMiAqcGluX21hc2ssIHUzMiAqbG9uZ19t YXNrLAo+ICAKPiAgCQkqcGluX21hc2sgfD0gQklUKGkpOwo+ICAKPiAtCQlwb3J0ID0gaW50ZWxf aHBkX3Bpbl90b19wb3J0KGkpOwo+ICsJCXBvcnQgPSBpbnRlbF9ocGRfcGluX3RvX3BvcnQoZGV2 X3ByaXYsIGkpOwo+ICAJCWlmIChwb3J0ID09IFBPUlRfTk9ORSkKPiAgCQkJY29udGludWU7Cj4g IAo+IEBAIC0xOTcwLDggKzE5NzEsOSBAQCBzdGF0aWMgdm9pZCBpOXh4X2hwZF9pcnFfaGFuZGxl cihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJdTMyIGhvdHBsdWdfdHJp Z2dlciA9IGhvdHBsdWdfc3RhdHVzICYgSE9UUExVR19JTlRfU1RBVFVTX0c0WDsKPiAgCj4gIAkJ aWYgKGhvdHBsdWdfdHJpZ2dlcikgewo+IC0JCQlpbnRlbF9nZXRfaHBkX3BpbnMoJnBpbl9tYXNr LCAmbG9uZ19tYXNrLCBob3RwbHVnX3RyaWdnZXIsCj4gLQkJCQkJICAgaG90cGx1Z190cmlnZ2Vy LCBocGRfc3RhdHVzX2c0eCwKPiArCQkJaW50ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2LCAmcGlu X21hc2ssICZsb25nX21hc2ssCj4gKwkJCQkJICAgaG90cGx1Z190cmlnZ2VyLCBob3RwbHVnX3Ry aWdnZXIsCj4gKwkJCQkJICAgaHBkX3N0YXR1c19nNHgsCj4gIAkJCQkJICAgaTl4eF9wb3J0X2hv dHBsdWdfbG9uZ19kZXRlY3QpOwo+ICAKPiAgCQkJaW50ZWxfaHBkX2lycV9oYW5kbGVyKGRldl9w cml2LCBwaW5fbWFzaywgbG9uZ19tYXNrKTsKPiBAQCAtMTk4Myw4ICsxOTg1LDkgQEAgc3RhdGlj IHZvaWQgaTl4eF9ocGRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+ICAJCXUzMiBob3RwbHVnX3RyaWdnZXIgPSBob3RwbHVnX3N0YXR1cyAmIEhPVFBMVUdf SU5UX1NUQVRVU19JOTE1Owo+ICAKPiAgCQlpZiAoaG90cGx1Z190cmlnZ2VyKSB7Cj4gLQkJCWlu dGVsX2dldF9ocGRfcGlucygmcGluX21hc2ssICZsb25nX21hc2ssIGhvdHBsdWdfdHJpZ2dlciwK PiAtCQkJCQkgICBob3RwbHVnX3RyaWdnZXIsIGhwZF9zdGF0dXNfaTkxNSwKPiArCQkJaW50ZWxf Z2V0X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ssCj4gKwkJCQkJICAg aG90cGx1Z190cmlnZ2VyLCBob3RwbHVnX3RyaWdnZXIsCj4gKwkJCQkJICAgaHBkX3N0YXR1c19p OTE1LAo+ICAJCQkJCSAgIGk5eHhfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0KTsKPiAgCQkJaW50 ZWxfaHBkX2lycV9oYW5kbGVyKGRldl9wcml2LCBwaW5fbWFzaywgbG9uZ19tYXNrKTsKPiAgCQl9 Cj4gQEAgLTIxODUsNyArMjE4OCw3IEBAIHN0YXRpYyB2b2lkIGlieF9ocGRfaXJxX2hhbmRsZXIo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJaWYgKCFob3RwbHVnX3RyaWdn ZXIpCj4gIAkJcmV0dXJuOwo+ICAKPiAtCWludGVsX2dldF9ocGRfcGlucygmcGluX21hc2ssICZs b25nX21hc2ssIGhvdHBsdWdfdHJpZ2dlciwKPiArCWludGVsX2dldF9ocGRfcGlucyhkZXZfcHJp diwgJnBpbl9tYXNrLCAmbG9uZ19tYXNrLCBob3RwbHVnX3RyaWdnZXIsCj4gIAkJCSAgIGRpZ19o b3RwbHVnX3JlZywgaHBkLAo+ICAJCQkgICBwY2hfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0KTsK PiAgCj4gQEAgLTIzMjcsOCArMjMzMCw4IEBAIHN0YXRpYyB2b2lkIHNwdF9pcnFfaGFuZGxlcihz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBwY2hfaWlyKQo+ICAJCWRpZ19o b3RwbHVnX3JlZyA9IEk5MTVfUkVBRChQQ0hfUE9SVF9IT1RQTFVHKTsKPiAgCQlJOTE1X1dSSVRF KFBDSF9QT1JUX0hPVFBMVUcsIGRpZ19ob3RwbHVnX3JlZyk7Cj4gIAo+IC0JCWludGVsX2dldF9o cGRfcGlucygmcGluX21hc2ssICZsb25nX21hc2ssIGhvdHBsdWdfdHJpZ2dlciwKPiAtCQkJCSAg IGRpZ19ob3RwbHVnX3JlZywgaHBkX3NwdCwKPiArCQlpbnRlbF9nZXRfaHBkX3BpbnMoZGV2X3By aXYsICZwaW5fbWFzaywgJmxvbmdfbWFzaywKPiArCQkJCSAgIGhvdHBsdWdfdHJpZ2dlciwgZGln X2hvdHBsdWdfcmVnLCBocGRfc3B0LAo+ICAJCQkJICAgc3B0X3BvcnRfaG90cGx1Z19sb25nX2Rl dGVjdCk7Cj4gIAl9Cj4gIAo+IEBAIC0yMzM4LDggKzIzNDEsOCBAQCBzdGF0aWMgdm9pZCBzcHRf aXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcGNoX2lp cikKPiAgCQlkaWdfaG90cGx1Z19yZWcgPSBJOTE1X1JFQUQoUENIX1BPUlRfSE9UUExVRzIpOwo+ ICAJCUk5MTVfV1JJVEUoUENIX1BPUlRfSE9UUExVRzIsIGRpZ19ob3RwbHVnX3JlZyk7Cj4gIAo+ IC0JCWludGVsX2dldF9ocGRfcGlucygmcGluX21hc2ssICZsb25nX21hc2ssIGhvdHBsdWcyX3Ry aWdnZXIsCj4gLQkJCQkgICBkaWdfaG90cGx1Z19yZWcsIGhwZF9zcHQsCj4gKwkJaW50ZWxfZ2V0 X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ssCj4gKwkJCQkgICBob3Rw bHVnMl90cmlnZ2VyLCBkaWdfaG90cGx1Z19yZWcsIGhwZF9zcHQsCj4gIAkJCQkgICBzcHRfcG9y dF9ob3RwbHVnMl9sb25nX2RldGVjdCk7Cj4gIAl9Cj4gIAo+IEBAIC0yMzU5LDcgKzIzNjIsNyBA QCBzdGF0aWMgdm9pZCBpbGtfaHBkX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiAgCWRpZ19ob3RwbHVnX3JlZyA9IEk5MTVfUkVBRChESUdJVEFMX1BPUlRf SE9UUExVR19DTlRSTCk7Cj4gIAlJOTE1X1dSSVRFKERJR0lUQUxfUE9SVF9IT1RQTFVHX0NOVFJM LCBkaWdfaG90cGx1Z19yZWcpOwo+ICAKPiAtCWludGVsX2dldF9ocGRfcGlucygmcGluX21hc2ss ICZsb25nX21hc2ssIGhvdHBsdWdfdHJpZ2dlciwKPiArCWludGVsX2dldF9ocGRfcGlucyhkZXZf cHJpdiwgJnBpbl9tYXNrLCAmbG9uZ19tYXNrLCBob3RwbHVnX3RyaWdnZXIsCj4gIAkJCSAgIGRp Z19ob3RwbHVnX3JlZywgaHBkLAo+ICAJCQkgICBpbGtfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0 KTsKPiAgCj4gQEAgLTI1MzYsNyArMjUzOSw3IEBAIHN0YXRpYyB2b2lkIGJ4dF9ocGRfaXJxX2hh bmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJZGlnX2hvdHBsdWdf cmVnID0gSTkxNV9SRUFEKFBDSF9QT1JUX0hPVFBMVUcpOwo+ICAJSTkxNV9XUklURShQQ0hfUE9S VF9IT1RQTFVHLCBkaWdfaG90cGx1Z19yZWcpOwo+ICAKPiAtCWludGVsX2dldF9ocGRfcGlucygm cGluX21hc2ssICZsb25nX21hc2ssIGhvdHBsdWdfdHJpZ2dlciwKPiArCWludGVsX2dldF9ocGRf cGlucyhkZXZfcHJpdiwgJnBpbl9tYXNrLCAmbG9uZ19tYXNrLCBob3RwbHVnX3RyaWdnZXIsCj4g IAkJCSAgIGRpZ19ob3RwbHVnX3JlZywgaHBkLAo+ICAJCQkgICBieHRfcG9ydF9ob3RwbHVnX2xv bmdfZGV0ZWN0KTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gaW5kZXggNGZmNmZjZjU0 MmU5Li40Yjk2MzczMjQ1NGQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBAQCAtNjIw NSw4ICs2MjA1LDEwIEBAIGludGVsX2RwX2luaXRfY29ubmVjdG9yX3BvcnRfaW5mbyhzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCkKPiAgewo+ICAJc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIgPSAmaW50ZWxfZGlnX3BvcnQtPmJhc2U7Cj4gIAlzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwID0gJmludGVsX2RpZ19wb3J0LT5kcDsKPiArCXN0cnVjdCBpbnRlbF9l bmNvZGVyICppbnRlbF9lbmNvZGVyID0gJmludGVsX2RpZ19wb3J0LT5iYXNlOwo+ICsJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9lbmNvZGVyLT5iYXNl LmRldik7Cj4gIAo+IC0JZW5jb2Rlci0+aHBkX3BpbiA9IGludGVsX2hwZF9waW4oZW5jb2Rlci0+ cG9ydCk7Cj4gKwllbmNvZGVyLT5ocGRfcGluID0gaW50ZWxfaHBkX3Bpbl9kZWZhdWx0KGRldl9w cml2LCBlbmNvZGVyLT5wb3J0KTsKPiAgCj4gIAlzd2l0Y2ggKGVuY29kZXItPnBvcnQpIHsKPiAg CWNhc2UgUE9SVF9BOgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9o ZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiBpbmRleCAwZDkyNGJh NDIwNzUuLmY5YTFhMzJmZDI3MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9oZG1pLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiBA QCAtMjMzNCw3ICsyMzM0LDcgQEAgdm9pZCBpbnRlbF9oZG1pX2luaXRfY29ubmVjdG9yKHN0cnVj dCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+ICAKPiAgCWlmIChXQVJOX09O KHBvcnQgPT0gUE9SVF9BKSkKPiAgCQlyZXR1cm47Cj4gLQlpbnRlbF9lbmNvZGVyLT5ocGRfcGlu ID0gaW50ZWxfaHBkX3Bpbihwb3J0KTsKPiArCWludGVsX2VuY29kZXItPmhwZF9waW4gPSBpbnRl bF9ocGRfcGluX2RlZmF1bHQoZGV2X3ByaXYsIHBvcnQpOwo+ICAKPiAgCWlmIChIQVNfRERJKGRl dl9wcml2KSkKPiAgCQlpbnRlbF9jb25uZWN0b3ItPmdldF9od19zdGF0ZSA9IGludGVsX2RkaV9j b25uZWN0b3JfZ2V0X2h3X3N0YXRlOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9ob3RwbHVnLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ob3RwbHVnLmMK PiBpbmRleCA4NzVkNWQyMThkNWMuLmZlMjhjMWVhODRhNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9ob3RwbHVnLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9ob3RwbHVnLmMKPiBAQCAtNzgsMTIgKzc4LDE0IEBACj4gIAo+ICAvKioKPiAgICog aW50ZWxfaHBkX3BvcnQgLSByZXR1cm4gcG9ydCBoYXJkIGFzc29jaWF0ZWQgd2l0aCBjZXJ0YWlu IHBpbi4KPiArICogQGRldl9wcml2OiBwcml2YXRlIGRyaXZlciBkYXRhIHBvaW50ZXIKPiAgICog QHBpbjogdGhlIGhwZCBwaW4gdG8gZ2V0IGFzc29jaWF0ZWQgcG9ydAo+ICAgKgo+ICAgKiBSZXR1 cm4gcG9ydCB0aGF0IGlzIGFzc29jaWF0YWRlIHdpdGggQHBpbiBhbmQgUE9SVF9OT05FIGlmIG5v IHBvcnQgaXMKPiAgICogaGFyZCBhc3NvY2lhdGVkIHdpdGggdGhhdCBAcGluLgo+ICAgKi8KPiAt ZW51bSBwb3J0IGludGVsX2hwZF9waW5fdG9fcG9ydChlbnVtIGhwZF9waW4gcGluKQo+ICtlbnVt IHBvcnQgaW50ZWxfaHBkX3Bpbl90b19wb3J0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiArCQkJCWVudW0gaHBkX3BpbiBwaW4pCj4gIHsKPiAgCXN3aXRjaCAocGluKSB7Cj4g IAljYXNlIEhQRF9QT1JUX0E6Cj4gQEAgLTk1LDYgKzk3LDggQEAgZW51bSBwb3J0IGludGVsX2hw ZF9waW5fdG9fcG9ydChlbnVtIGhwZF9waW4gcGluKQo+ICAJY2FzZSBIUERfUE9SVF9EOgo+ICAJ CXJldHVybiBQT1JUX0Q7Cj4gIAljYXNlIEhQRF9QT1JUX0U6Cj4gKwkJaWYgKElTX0NOTF9XSVRI X1BPUlRfRihkZXZfcHJpdikpCj4gKwkJCXJldHVybiBQT1JUX0Y7Cj4gIAkJcmV0dXJuIFBPUlRf RTsKPiAgCWRlZmF1bHQ6Cj4gIAkJcmV0dXJuIFBPUlRfTk9ORTsgLyogbm8gcG9ydCBmb3IgdGhp cyBwaW4gKi8KCkknbSB0aGlua2luZyB3ZSBjb3VsZCByZXdyaXRlIHRoaXMgZnVuY3Rpb24gYXMg Cgpmb3JfZWFjaF9pbnRlbF9lbmNvZGVyKC4uLikgewoJaWYgKGVuY29kZXItPmhwZF9waW4gPT0g cGluKQoJCXJldHVybiBlbmNvZGVyLT5wb3J0Owp9CgpUaGF0IHdheSB3ZSBoYXZlIG5vIGhhcmRj b2RlZCBtYXBwaW5nIGFueXdoZXJlIGJ1dAppbnRlbF9ocGRfcGluX2RlZmF1bHQoKS4KCkJ1dCB0 aGlzIGNvdWxkIGJlIGEgZm9sbG93dXAgcGF0Y2guCgpFdmVyeXRoaW5nIGluIHRoaXMgcGF0Y2gg bG9va3MgcmVhc29uYWJsZSB0byBtZSBzbwpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2 aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCj4gQEAgLTEwMiwxMyArMTA2LDE3IEBAIGVu dW0gcG9ydCBpbnRlbF9ocGRfcGluX3RvX3BvcnQoZW51bSBocGRfcGluIHBpbikKPiAgfQo+ICAK PiAgLyoqCj4gLSAqIGludGVsX2hwZF9waW4gLSByZXR1cm4gcGluIGhhcmQgYXNzb2NpYXRlZCB3 aXRoIGNlcnRhaW4gcG9ydC4KPiArICogaW50ZWxfaHBkX3Bpbl9kZWZhdWx0IC0gcmV0dXJuIGRl ZmF1bHQgcGluIGFzc29jaWF0ZWQgd2l0aCBjZXJ0YWluIHBvcnQuCj4gKyAqIEBkZXZfcHJpdjog cHJpdmF0ZSBkcml2ZXIgZGF0YSBwb2ludGVyCj4gICAqIEBwb3J0OiB0aGUgaHBkIHBvcnQgdG8g Z2V0IGFzc29jaWF0ZWQgcGluCj4gICAqCj4gKyAqIEl0IGlzIG9ubHkgdmFsaWQgYW5kIHVzZWQg YnkgZGlnaXRhbCBwb3J0IGVuY29kZXIuCj4gKyAqCj4gICAqIFJldHVybiBwaW4gdGhhdCBpcyBh c3NvY2lhdGFkZSB3aXRoIEBwb3J0IGFuZCBIRFBfTk9ORSBpZiBubyBwaW4gaXMKPiAgICogaGFy ZCBhc3NvY2lhdGVkIHdpdGggdGhhdCBAcG9ydC4KPiAgICovCj4gLWVudW0gaHBkX3BpbiBpbnRl bF9ocGRfcGluKGVudW0gcG9ydCBwb3J0KQo+ICtlbnVtIGhwZF9waW4gaW50ZWxfaHBkX3Bpbl9k ZWZhdWx0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJCSAgIGVudW0g cG9ydCBwb3J0KQo+ICB7Cj4gIAlzd2l0Y2ggKHBvcnQpIHsKPiAgCWNhc2UgUE9SVF9BOgo+IEBA IC0xMjEsNiArMTI5LDkgQEAgZW51bSBocGRfcGluIGludGVsX2hwZF9waW4oZW51bSBwb3J0IHBv cnQpCj4gIAkJcmV0dXJuIEhQRF9QT1JUX0Q7Cj4gIAljYXNlIFBPUlRfRToKPiAgCQlyZXR1cm4g SFBEX1BPUlRfRTsKPiArCWNhc2UgUE9SVF9GOgo+ICsJCWlmIChJU19DTkxfV0lUSF9QT1JUX0Yo ZGV2X3ByaXYpKQo+ICsJCQlyZXR1cm4gSFBEX1BPUlRfRTsKPiAgCWRlZmF1bHQ6Cj4gIAkJTUlT U0lOR19DQVNFKHBvcnQpOwo+ICAJCXJldHVybiBIUERfTk9ORTsKPiBAQCAtNDE3LDcgKzQyOCw3 IEBAIHZvaWQgaW50ZWxfaHBkX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiAgCQlpZiAoIShCSVQoaSkgJiBwaW5fbWFzaykpCj4gIAkJCWNvbnRpbnVlOwo+ ICAKPiAtCQlwb3J0ID0gaW50ZWxfaHBkX3Bpbl90b19wb3J0KGkpOwo+ICsJCXBvcnQgPSBpbnRl bF9ocGRfcGluX3RvX3BvcnQoZGV2X3ByaXYsIGkpOwo+ICAJCWlzX2RpZ19wb3J0ID0gcG9ydCAh PSBQT1JUX05PTkUgJiYKPiAgCQkJZGV2X3ByaXYtPmhvdHBsdWcuaXJxX3BvcnRbcG9ydF07Cj4g IAo+IC0tIAo+IDIuMTMuNgoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==