From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 19/23] drm/i915/icl: Reserve all required PLLs for TypeC ports Date: Tue, 18 Jun 2019 20:25:52 +0300 Message-ID: <20190618172552.GT5942@intel.com> References: <20190604145826.16424-20-imre.deak@intel.com> <20190607174129.18725-1-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id AD70F6E20B for ; Tue, 18 Jun 2019 17:25:56 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190607174129.18725-1-imre.deak@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Imre Deak Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBKdW4gMDcsIDIwMTkgYXQgMDg6NDE6MjlQTSArMDMwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IFdoZW4gZW5hYmxpbmcgYSBUeXBlQyBwb3J0IHdlIG5lZWQgdG8gcmVzZXJ2ZSBhbGwgdGhl IHJlcXVpcmVkIFBMTHMgZm9yCj4gaXQsIHRoZSBUQlQgUExMIGZvciBUQlQtYWx0IGFuZCB0aGUg TUcgUEhZIFBMTCBmb3IgRFAtYWx0L2xlZ2FjeSBzaW5rcy4KPiBXZSBjYW4gc2VsZWN0IHRoZSBw cm9wZXIgUExMIGZvciB0aGUgY3VycmVudCBwb3J0IG1vZGUgZnJvbSB0aGUgcmVzZXJ2ZWQKPiBQ TExzIG9ubHkgb25jZSB3ZSBzZWxlY3RlZCBhbmQgbG9ja2VkIGRvd24gdGhlIHBvcnQgbW9kZSBm b3IgdGhlIHdob2xlCj4gZHVyYXRpb24gb2YgdGhlIHBvcnQncyBhY3RpdmUgc3RhdGUuIFJlc2V0 dGluZyBhbmQgbG9ja2luZyBkb3duIHRoZSBwb3J0Cj4gbW9kZSBjYW4gaW4gdHVybiBoYXBwZW4g b25seSBkdXJpbmcgdGhlIG1vZGVzZXQgY29tbWl0IHBoYXNlIG9uY2Ugd2UKPiBkaXNhYmxlZCB0 aGUgZ2l2ZW4gcG9ydCBhbmQgdGhlIFBMTCBpdCB1c2VkLgo+IAo+IFRvIHN1cHBvcnQgdGhlIGFi b3ZlIHJlc2VydmUtYW5kLXNlbGVjdCBQTEwgc2VtYW50aWMgd2Ugc3RvcmUgdGhlCj4gcmVzZXJ2 ZWQgUExMcyBhbG9uZyB3aXRoIHRoZWlyIEhXIHN0YXRlIGluIHRoZSBDUlRDIHN0YXRlIGFuZCBw cm92aWRlIGEKPiB3YXkgdG8gc2VsZWN0IHRoZSBhY3RpdmUgUExMIGZyb20gdGhlc2UuIFRoZSBz ZWxlY3RlZCBQTEwgYWxvbmcgd2l0aCBpdHMKPiBIVyBzdGF0ZSB3aWxsIGJlIHBvaW50ZWQgYXQg YnkgY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwvZHBsbF9od19zdGF0ZSBhcwo+IGluIHRoZSBjYXNl IG9mIG90aGVyIHBvcnQgdHlwZXMuCj4gCj4gQmVzaWRlcyByZXNlcnZpbmcgYWxsIHJlcXVpcmVk IFBMTHMgbm8gZnVuY3Rpb25hbCBjaGFuZ2VzLgo+IAo+IHYyOgo+IC0gRml4IHJlbGVhc2luZyB0 aGUgSUNMIFBMTHMsIG5vdCBjbGVhcmluZyB0aGUgUExMcyBmcm9tIHRoZSBvbGQKPiAgIGNydGNf c3RhdGUuCj4gCj4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRl bC5jb20+Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gQ2M6 IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4g U2lnbmVkLW9mZi1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgo+IC0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgIHwgIDExICstCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMgfCAxNTEgKysrKysrKysrKysrKysrKysrKy0t LS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuaCB8ICAgOSArKwo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgIHwgICA5ICsrCj4gIDQgZmls ZXMgY2hhbmdlZCwgMTM4IGluc2VydGlvbnMoKyksIDQyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCA3MzgxZmIyZTEyNDAuLjAwNmJlM2Mz ZjFiZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtOTg4MCw2 ICs5ODgwLDcgQEAgc3RhdGljIHZvaWQgaWNlbGFrZV9nZXRfZGRpX3BsbChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCQllbnVtIHBvcnQgcG9ydCwKPiAgCQkJCXN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiAgewo+ICsJZW51bSBpY2xfcG9ydF9k cGxsX2lkIHBvcnRfZHBsbF9pZDsKPiAgCWVudW0gaW50ZWxfZHBsbF9pZCBpZDsKPiAgCXUzMiB0 ZW1wOwo+ICAKPiBAQCAtOTg4NywyMiArOTg4OCwyOCBAQCBzdGF0aWMgdm9pZCBpY2VsYWtlX2dl dF9kZGlfcGxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQl0ZW1wID0g STkxNV9SRUFEKERQQ0xLQV9DRkdDUjBfSUNMKSAmCj4gIAkJICAgICAgIERQQ0xLQV9DRkdDUjBf RERJX0NMS19TRUxfTUFTSyhwb3J0KTsKPiAgCQlpZCA9IHRlbXAgPj4gRFBDTEtBX0NGR0NSMF9E RElfQ0xLX1NFTF9TSElGVChwb3J0KTsKPiArCQlwb3J0X2RwbGxfaWQgPSBJQ0xfUE9SVF9EUExM X0RFRkFVTFQ7Cj4gIAl9IGVsc2UgaWYgKGludGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIHBvcnQp KSB7Cj4gIAkJdTMyIGNsa19zZWwgPSBJOTE1X1JFQUQoRERJX0NMS19TRUwocG9ydCkpICYgRERJ X0NMS19TRUxfTUFTSzsKPiAgCj4gIAkJaWYgKGNsa19zZWwgPT0gRERJX0NMS19TRUxfTUcpIHsK PiAgCQkJaWQgPSBpY2xfdGNfcG9ydF90b19wbGxfaWQoaW50ZWxfcG9ydF90b190YyhkZXZfcHJp diwKPiAgCQkJCQkJCQkgICAgcG9ydCkpOwo+ICsJCQlwb3J0X2RwbGxfaWQgPSBJQ0xfUE9SVF9E UExMX01HX1BIWTsKPiAgCQl9IGVsc2Ugewo+ICAJCQlXQVJOX09OKGNsa19zZWwgPCBERElfQ0xL X1NFTF9UQlRfMTYyKTsKPiAgCQkJaWQgPSBEUExMX0lEX0lDTF9UQlRQTEw7Cj4gKwkJCXBvcnRf ZHBsbF9pZCA9IElDTF9QT1JUX0RQTExfREVGQVVMVDsKPiAgCQl9Cj4gIAl9IGVsc2Ugewo+ICAJ CVdBUk4oMSwgIkludmFsaWQgcG9ydCAleFxuIiwgcG9ydCk7Cj4gIAkJcmV0dXJuOwo+ICAJfQo+ ICAKPiAtCXBpcGVfY29uZmlnLT5zaGFyZWRfZHBsbCA9IGludGVsX2dldF9zaGFyZWRfZHBsbF9i eV9pZChkZXZfcHJpdiwgaWQpOwo+ICsJcGlwZV9jb25maWctPmljbF9wb3J0X2RwbGxzW3BvcnRf ZHBsbF9pZF0ucGxsID0KPiArCQlpbnRlbF9nZXRfc2hhcmVkX2RwbGxfYnlfaWQoZGV2X3ByaXYs IGlkKTsKPiArCj4gKwlpY2xfc2V0X2FjdGl2ZV9wb3J0X2RwbGwocGlwZV9jb25maWcsIHBvcnRf ZHBsbF9pZCk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGJ4dF9nZXRfZGRpX3BsbChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gQEAgLTEyMDQxLDYgKzEyMDQ4LDggQEAgY2xl YXJfaW50ZWxfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK PiAgCXNhdmVkX3N0YXRlLT5zY2FsZXJfc3RhdGUgPSBjcnRjX3N0YXRlLT5zY2FsZXJfc3RhdGU7 Cj4gIAlzYXZlZF9zdGF0ZS0+c2hhcmVkX2RwbGwgPSBjcnRjX3N0YXRlLT5zaGFyZWRfZHBsbDsK PiAgCXNhdmVkX3N0YXRlLT5kcGxsX2h3X3N0YXRlID0gY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0 ZTsKPiArCW1lbWNweShzYXZlZF9zdGF0ZS0+aWNsX3BvcnRfZHBsbHMsIGNydGNfc3RhdGUtPmlj bF9wb3J0X2RwbGxzLAo+ICsJICAgICAgIHNpemVvZihzYXZlZF9zdGF0ZS0+aWNsX3BvcnRfZHBs bHMpKTsKPiAgCXNhdmVkX3N0YXRlLT5jcmNfZW5hYmxlZCA9IGNydGNfc3RhdGUtPmNyY19lbmFi bGVkOwo+ICAJaWYgKElTX0c0WChkZXZfcHJpdikgfHwKPiAgCSAgICBJU19WQUxMRVlWSUVXKGRl dl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwbGxfbWdyLmMKPiBpbmRleCA4YWMyOTNkYjQzYTUuLjE3NDQxZDVmOTkwZSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwo+IEBAIC0yODU2LDM0ICsyODU2LDc5 IEBAIHN0YXRpYyBib29sIGljbF9jYWxjX21nX3BsbF9zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCXJldHVybiB0cnVlOwo+ICB9Cj4gIAo+ICsvKioKPiArICog aWNsX3NldF9hY3RpdmVfcG9ydF9kcGxsIC0gc2VsZWN0IHRoZSBhY3RpdmUgcG9ydCBEUExMIGZv ciBhIGdpdmVuIENSVEMKPiArICogQGNydGNfc3RhdGU6IHN0YXRlIGZvciB0aGUgQ1JUQyB0byBz ZWxlY3QgdGhlIERQTEwgZm9yCj4gKyAqIEBwb3J0X2RwbGxfaWQ6IHRoZSBhY3RpdmUgQHBvcnRf ZHBsbF9pZCB0byBzZWxlY3QKPiArICoKPiArICogU2VsZWN0IHRoZSBnaXZlbiBAcG9ydF9kcGxs X2lkIGluc3RhbmNlIGZyb20gdGhlIERQTExzIHJlc2VydmVkIGZvciB0aGUKPiArICogQ1JUQy4K PiArICovCj4gK3ZvaWQgaWNsX3NldF9hY3RpdmVfcG9ydF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAo+ICsJCQkgICAgICBlbnVtIGljbF9wb3J0X2RwbGxfaWQgcG9y dF9kcGxsX2lkKQo+ICt7Cj4gKwlzdHJ1Y3QgaWNsX3BvcnRfZHBsbCAqcG9ydF9kcGxsID0KPiAr CQkmY3J0Y19zdGF0ZS0+aWNsX3BvcnRfZHBsbHNbcG9ydF9kcGxsX2lkXTsKPiArCj4gKwljcnRj X3N0YXRlLT5zaGFyZWRfZHBsbCA9IHBvcnRfZHBsbC0+cGxsOwo+ICsJY3J0Y19zdGF0ZS0+ZHBs bF9od19zdGF0ZSA9IHBvcnRfZHBsbC0+aHdfc3RhdGU7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lk IGljbF91cGRhdGVfYWN0aXZlX2RwbGwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUs Cj4gKwkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiArCQkJCSAgIHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSA9Cj4gKwkJaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0 Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpwcmltYXJ5X3BvcnQ7Cj4gKwllbnVt IGljbF9wb3J0X2RwbGxfaWQgcG9ydF9kcGxsX2lkOwo+ICsKPiArCXByaW1hcnlfcG9ydCA9IGVu Y29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0RQX01TVCA/Cj4gKwkJZW5jX3RvX21zdCgmZW5j b2Rlci0+YmFzZSktPnByaW1hcnkgOgo+ICsJCWVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFz ZSk7Cj4gKwo+ICsJc3dpdGNoIChwcmltYXJ5X3BvcnQtPnRjX21vZGUpIHsKPiArCWNhc2UgVENf UE9SVF9UQlRfQUxUOgo+ICsJCXBvcnRfZHBsbF9pZCA9IElDTF9QT1JUX0RQTExfREVGQVVMVDsK PiArCQlicmVhazsKPiArCWNhc2UgVENfUE9SVF9EUF9BTFQ6Cj4gKwljYXNlIFRDX1BPUlRfTEVH QUNZOgo+ICsJCXBvcnRfZHBsbF9pZCA9IElDTF9QT1JUX0RQTExfTUdfUEhZOwo+ICsJCWJyZWFr Owo+ICsJfQo+ICsKPiArCWljbF9zZXRfYWN0aXZlX3BvcnRfZHBsbChjcnRjX3N0YXRlLCBwb3J0 X2RwbGxfaWQpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgYm9vbCBpY2xfZ2V0X2NvbWJvX3BoeV9kcGxs KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICAJCQkJICAgc3RydWN0IGludGVs X2NydGMgKmNydGMsCj4gIAkJCQkgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAg ewo+ICAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQo+ICAJCWludGVsX2F0 b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+IC0Jc3RydWN0IGludGVsX3No YXJlZF9kcGxsICpwbGw7Cj4gKwlzdHJ1Y3QgaWNsX3BvcnRfZHBsbCAqcG9ydF9kcGxsID0KPiAr CQkmY3J0Y19zdGF0ZS0+aWNsX3BvcnRfZHBsbHNbSUNMX1BPUlRfRFBMTF9ERUZBVUxUXTsKPiAg Cj4gLQlpZiAoIWljbF9jYWxjX2RwbGxfc3RhdGUoY3J0Y19zdGF0ZSwgZW5jb2RlciwKPiAtCQkJ CSAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSkpIHsKPiArCWlmICghaWNsX2NhbGNfZHBsbF9z dGF0ZShjcnRjX3N0YXRlLCBlbmNvZGVyLCAmcG9ydF9kcGxsLT5od19zdGF0ZSkpIHsKPiAgCQlE Uk1fREVCVUdfS01TKCJDb3VsZCBub3QgY2FsY3VsYXRlIGNvbWJvIFBIWSBQTEwgc3RhdGUuXG4i KTsKPiAgCj4gIAkJcmV0dXJuIGZhbHNlOwo+ICAJfQo+ICAKPiAtCXBsbCA9IGludGVsX2ZpbmRf c2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLAo+IC0J CQkJICAgICBEUExMX0lEX0lDTF9EUExMMCwKPiAtCQkJCSAgICAgRFBMTF9JRF9JQ0xfRFBMTDEp Owo+IC0JaWYgKCFwbGwpIHsKPiArCXBvcnRfZHBsbC0+cGxsID0gaW50ZWxfZmluZF9zaGFyZWRf ZHBsbChzdGF0ZSwgY3J0YywKPiArCQkJCQkJJnBvcnRfZHBsbC0+aHdfc3RhdGUsCj4gKwkJCQkJ CURQTExfSURfSUNMX0RQTEwwLAo+ICsJCQkJCQlEUExMX0lEX0lDTF9EUExMMSk7Cj4gKwlpZiAo IXBvcnRfZHBsbC0+cGxsKSB7Cj4gIAkJRFJNX0RFQlVHX0tNUygiTm8gY29tYm8gUEhZIFBMTCBm b3VuZCBmb3IgcG9ydCAlY1xuIiwKPiAgCQkJICAgICAgcG9ydF9uYW1lKGVuY29kZXItPnBvcnQp KTsKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAl9Cj4gIAo+ICAJaW50ZWxfcmVmZXJlbmNlX3NoYXJl ZF9kcGxsKHN0YXRlLCBjcnRjLAo+IC0JCQkJICAgIHBsbCwgJmNydGNfc3RhdGUtPmRwbGxfaHdf c3RhdGUpOwo+ICsJCQkJICAgIHBvcnRfZHBsbC0+cGxsLCAmcG9ydF9kcGxsLT5od19zdGF0ZSk7 Cj4gIAo+IC0JY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwgPSBwbGw7Cj4gKwlpY2xfdXBkYXRlX2Fj dGl2ZV9kcGxsKHN0YXRlLCBjcnRjLCBlbmNvZGVyKTsKPiAgCj4gIAlyZXR1cm4gdHJ1ZTsKPiAg fQo+IEBAIC0yODk1LDQ5ICsyOTQwLDU1IEBAIHN0YXRpYyBib29sIGljbF9nZXRfdGNfcGh5X2Rw bGxzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5kZXYpOwo+ICAJc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQo+ICAJCWludGVsX2F0b21pY19nZXRfbmV3 X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+IC0JZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRl bF9wb3J0X3RvX3RjKGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KTsKPiAtCXN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmRpZ19wb3J0Owo+IC0Jc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7 Cj4gLQllbnVtIGludGVsX2RwbGxfaWQgbWluLCBtYXg7Cj4gLQlib29sIHJldDsKPiAtCj4gLQlp ZiAoZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRFBfTVNUKQo+IC0JCWRpZ19wb3J0ID0g ZW5jX3RvX21zdCgmZW5jb2Rlci0+YmFzZSktPnByaW1hcnk7Cj4gLQllbHNlCj4gLQkJZGlnX3Bv cnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGljbF9wb3J0 X2RwbGwgKnBvcnRfZHBsbCA9Cj4gKwkJJmNydGNfc3RhdGUtPmljbF9wb3J0X2RwbGxzW0lDTF9Q T1JUX0RQTExfREVGQVVMVF07CgpJIHdvdWxkIG1vdmUgdGhhdCBpbml0aWFsaXphdGlvbiBuZXh0 IHRvIHRoZSBjb2RlIHNvIHRoYXQgdGhlCnRidCB2cy4gbWcgY2FzZXMgbG9vayBtb3JlIGxpa2Ug dHdpbnMuCgo+ICsJZW51bSBpbnRlbF9kcGxsX2lkIGRwbGxfaWQ7Cj4gIAo+IC0JaWYgKGRpZ19w b3J0LT50Y19tb2RlID09IFRDX1BPUlRfVEJUX0FMVCkgewo+IC0JCW1pbiA9IERQTExfSURfSUNM X1RCVFBMTDsKPiAtCQltYXggPSBtaW47Cj4gLQkJcmV0ID0gaWNsX2NhbGNfZHBsbF9zdGF0ZShj cnRjX3N0YXRlLCBlbmNvZGVyLAo+IC0JCQkJCSAgJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUp Owo+IC0JfSBlbHNlIHsKPiAtCQltaW4gPSBpY2xfdGNfcG9ydF90b19wbGxfaWQodGNfcG9ydCk7 Cj4gLQkJbWF4ID0gbWluOwo+IC0JCXJldCA9IGljbF9jYWxjX21nX3BsbF9zdGF0ZShjcnRjX3N0 YXRlLAo+IC0JCQkJCSAgICAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSk7Cj4gKwlpZiAoIWlj bF9jYWxjX2RwbGxfc3RhdGUoY3J0Y19zdGF0ZSwgZW5jb2RlciwgJnBvcnRfZHBsbC0+aHdfc3Rh dGUpKSB7Cj4gKwkJRFJNX0RFQlVHX0tNUygiQ291bGQgbm90IGNhbGN1bGF0ZSBUQlQgUExMIHN0 YXRlLlxuIik7Cj4gKwkJcmV0dXJuIGZhbHNlOwo+ICAJfQo+ICAKPiAtCWlmICghcmV0KSB7Cj4g LQkJRFJNX0RFQlVHX0tNUygiQ291bGQgbm90IGNhbGN1bGF0ZSBQTEwgc3RhdGUuXG4iKTsKPiAr CXBvcnRfZHBsbC0+cGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChzdGF0ZSwgY3J0YywKPiAr CQkJCQkJJnBvcnRfZHBsbC0+aHdfc3RhdGUsCj4gKwkJCQkJCURQTExfSURfSUNMX1RCVFBMTCwK PiArCQkJCQkJRFBMTF9JRF9JQ0xfVEJUUExMKTsKPiArCWlmICghcG9ydF9kcGxsLT5wbGwpIHsK PiArCQlEUk1fREVCVUdfS01TKCJObyBUQlQtQUxUIFBMTCBmb3VuZFxuIik7Cj4gIAkJcmV0dXJu IGZhbHNlOwo+ICAJfQo+ICsJaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRj LAo+ICsJCQkJICAgIHBvcnRfZHBsbC0+cGxsLCAmcG9ydF9kcGxsLT5od19zdGF0ZSk7Cj4gIAo+ ICAKPiAtCXBsbCA9IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsCj4gLQkJCQkg ICAgICZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLAo+IC0JCQkJICAgICBtaW4sIG1heCk7Cj4g LQlpZiAoIXBsbCkgewo+IC0JCURSTV9ERUJVR19LTVMoIk5vIFBMTCBzZWxlY3RlZFxuIik7Cj4g LQkJcmV0dXJuIGZhbHNlOwo+ICsJcG9ydF9kcGxsID0gJmNydGNfc3RhdGUtPmljbF9wb3J0X2Rw bGxzW0lDTF9QT1JUX0RQTExfTUdfUEhZXTsKPiArCWlmICghaWNsX2NhbGNfbWdfcGxsX3N0YXRl KGNydGNfc3RhdGUsICZwb3J0X2RwbGwtPmh3X3N0YXRlKSkgewo+ICsJCURSTV9ERUJVR19LTVMo IkNvdWxkIG5vdCBjYWxjdWxhdGUgTUcgUEhZIFBMTCBzdGF0ZS5cbiIpOwo+ICsJCWdvdG8gZXJy X3VucmVmZXJlbmNlX3RidF9wbGw7Cj4gIAl9Cj4gIAo+ICsJZHBsbF9pZCA9IGljbF90Y19wb3J0 X3RvX3BsbF9pZChpbnRlbF9wb3J0X3RvX3RjKGRldl9wcml2LAo+ICsJCQkJCQkJIGVuY29kZXIt PnBvcnQpKTsKPiArCXBvcnRfZHBsbC0+cGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChzdGF0 ZSwgY3J0YywKPiArCQkJCQkJJnBvcnRfZHBsbC0+aHdfc3RhdGUsCj4gKwkJCQkJCWRwbGxfaWQs Cj4gKwkJCQkJCWRwbGxfaWQpOwo+ICsJaWYgKCFwb3J0X2RwbGwtPnBsbCkgewo+ICsJCURSTV9E RUJVR19LTVMoIk5vIE1HIFBIWSBQTEwgZm91bmRcbiIpOwo+ICsJCWdvdG8gZXJyX3VucmVmZXJl bmNlX3RidF9wbGw7Cj4gKwl9Cj4gIAlpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwoc3RhdGUs IGNydGMsCj4gLQkJCQkgICAgcGxsLCAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSk7Cj4gKwkJ CQkgICAgcG9ydF9kcGxsLT5wbGwsICZwb3J0X2RwbGwtPmh3X3N0YXRlKTsKPiAgCj4gLQljcnRj X3N0YXRlLT5zaGFyZWRfZHBsbCA9IHBsbDsKPiArCWljbF91cGRhdGVfYWN0aXZlX2RwbGwoc3Rh dGUsIGNydGMsIGVuY29kZXIpOwo+ICAKPiAgCXJldHVybiB0cnVlOwo+ICsKPiArZXJyX3VucmVm ZXJlbmNlX3RidF9wbGw6Cj4gKwlwb3J0X2RwbGwgPSAmY3J0Y19zdGF0ZS0+aWNsX3BvcnRfZHBs bHNbSUNMX1BPUlRfRFBMTF9ERUZBVUxUXTsKPiArCWludGVsX3VucmVmZXJlbmNlX3NoYXJlZF9k cGxsKHN0YXRlLCBjcnRjLCBwb3J0X2RwbGwtPnBsbCk7Cj4gKwo+ICsJcmV0dXJuIGZhbHNlOwo+ ICB9Cj4gIAo+ICBzdGF0aWMgYm9vbCBpY2xfZ2V0X2RwbGxzKHN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKnN0YXRlLAo+IEBAIC0yOTU3LDYgKzMwMDgsMjQgQEAgc3RhdGljIGJvb2wgaWNsX2dl dF9kcGxscyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKPiAgCXJldHVybiBmYWxz ZTsKPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgaWNsX3B1dF9kcGxscyhzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICpzdGF0ZSwKPiArCQkJICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiArewo+ ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQo+ICsJCWludGVsX2F0b21p Y19nZXRfb2xkX2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+ICsJZW51bSBpY2xfcG9ydF9kcGxs X2lkIGlkOwo+ICsKPiArCWZvciAoaWQgPSBJQ0xfUE9SVF9EUExMX0RFRkFVTFQ7IGlkIDwgSUNM X1BPUlRfRFBMTF9DT1VOVDsgaWQrKykgewo+ICsJCXN0cnVjdCBpY2xfcG9ydF9kcGxsICpwb3J0 X2RwbGwgPQo+ICsJCQkmY3J0Y19zdGF0ZS0+aWNsX3BvcnRfZHBsbHNbaWRdOwo+ICsKPiArCQlp ZiAoIXBvcnRfZHBsbC0+cGxsKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJaW50ZWxfdW5yZWZl cmVuY2Vfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsIHBvcnRfZHBsbC0+cGxsKTsKPiArCX0KPiAr fQo+ICsKPiAgc3RhdGljIGJvb2wgbWdfcGxsX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCwK PiAgCQkJCXN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlICpod19zdGF0ZSkKPiBAQCAtMzMzMCw3 ICszMzk5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2luZm8gaWNsX3BsbHNbXSA9IHsK PiAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciBpY2xfcGxsX21nciA9IHsKPiAg CS5kcGxsX2luZm8gPSBpY2xfcGxscywKPiAgCS5nZXRfZHBsbHMgPSBpY2xfZ2V0X2RwbGxzLAo+ IC0JLnB1dF9kcGxscyA9IGludGVsX3B1dF9kcGxsLAo+ICsJLnB1dF9kcGxscyA9IGljbF9wdXRf ZHBsbHMsCj4gIAkuZHVtcF9od19zdGF0ZSA9IGljbF9kdW1wX2h3X3N0YXRlLAo+ICB9Owo+ICAK PiBAQCAtMzM0Myw3ICszNDEyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2luZm8gZWhs X3BsbHNbXSA9IHsKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciBlaGxfcGxs X21nciA9IHsKPiAgCS5kcGxsX2luZm8gPSBlaGxfcGxscywKPiAgCS5nZXRfZHBsbHMgPSBpY2xf Z2V0X2RwbGxzLAo+IC0JLnB1dF9kcGxscyA9IGludGVsX3B1dF9kcGxsLAo+ICsJLnB1dF9kcGxs cyA9IGljbF9wdXRfZHBsbHMsCj4gIAkuZHVtcF9od19zdGF0ZSA9IGljbF9kdW1wX2h3X3N0YXRl LAo+ICB9Owo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBs bF9tZ3IuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmgKPiBpbmRleCA2 ZmZkY2MwNmFkMjMuLjNiZWE4MWJkZTM0MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcGxsX21nci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHBsbF9tZ3IuaAo+IEBAIC0xNDEsNiArMTQxLDEzIEBAIGVudW0gaW50ZWxfZHBsbF9pZCB7Cj4g IH07Cj4gICNkZWZpbmUgSTkxNV9OVU1fUExMUyA3Cj4gIAo+ICtlbnVtIGljbF9wb3J0X2RwbGxf aWQgewo+ICsJSUNMX1BPUlRfRFBMTF9ERUZBVUxULAo+ICsJSUNMX1BPUlRfRFBMTF9NR19QSFks Cj4gKwo+ICsJSUNMX1BPUlRfRFBMTF9DT1VOVCwKPiArfTsKPiArCj4gIHN0cnVjdCBpbnRlbF9k cGxsX2h3X3N0YXRlIHsKPiAgCS8qIGk5eHgsIHBjaCBwbGxzICovCj4gIAl1MzIgZHBsbDsKPiBA QCAtMzM3LDYgKzM0NCw4IEBAIGJvb2wgaW50ZWxfcmVzZXJ2ZV9zaGFyZWRfZHBsbHMoc3RydWN0 IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gIAkJCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2Rlcik7Cj4gIHZvaWQgaW50ZWxfcmVsZWFzZV9zaGFyZWRfZHBsbHMoc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gIAkJCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7Cj4g K3ZvaWQgaWNsX3NldF9hY3RpdmVfcG9ydF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAo+ICsJCQkgICAgICBlbnVtIGljbF9wb3J0X2RwbGxfaWQgcG9ydF9kcGxsX2lk KTsKPiAgdm9pZCBpbnRlbF9wcmVwYXJlX3NoYXJlZF9kcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPiAgdm9pZCBpbnRlbF9lbmFibGVfc2hhcmVkX2RwbGwo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwo+ICB2b2lkIGludGVs X2Rpc2FibGVfc2hhcmVkX2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggZjliNmY2M2ViYmZlLi43 ZjFkY2I4ZDhhMjggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC04MTIsNiAr ODEyLDE1IEBAIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKPiAgCS8qIEFjdHVhbCByZWdpc3Rl ciBzdGF0ZSBvZiB0aGUgZHBsbCwgZm9yIHNoYXJlZCBkcGxsIGNyb3NzLWNoZWNraW5nLiAqLwo+ ICAJc3RydWN0IGludGVsX2RwbGxfaHdfc3RhdGUgZHBsbF9od19zdGF0ZTsKPiAgCj4gKwkvKgo+ ICsJICogSUNMIHJlc2VydmVkIERQTExzIGZvciB0aGUgQ1JUQy9wb3J0LiBUaGUgYWN0aXZlIFBM TCBpcyBzZWxlY3RlZCBieQo+ICsJICogc2V0dGluZyBzaGFyZWRfZHBsbCBhbmQgZHBsbF9od19z dGF0ZSB0byBvbmUgb2YgdGhlc2UgcmVzZXJ2ZWQgb25lcy4KPiArCSAqLwo+ICsJc3RydWN0IGlj bF9wb3J0X2RwbGwgewo+ICsJCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOwo+ICsJCXN0 cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlIGh3X3N0YXRlOwoKSSB3YXMgcG9uZGVyaW5nIGlmIHdl IHNob3VsZCB1c2UgdGhpcyBhcnJheSBvbiBub24taWNsIHRvby4KV291bGQgYXZvaWQgaGF2aW5n IHRocmVlIGluc3RhbmNlcyBvZiB0aGlzIHN0YXRlIGVtYmVkZGVkIGluCm91ciBjcnRjIHN0YXRl LiBCdXQgSSBkb24ndCBrbm93IGhvdyBiaWcgdGhlIHN0cnVjdCBpcyBzbyBub3QKc3VyZSBpZiBp dCdzIHdvcnRoIGl0LiAKCkFueXdheXMsIHNvbWV0aGluZyB0byB0aGluayBhYm91dCBmb3IgYSBm dXR1cmUgb3B0aW1pemF0aW9uLgoKPiArCX0gaWNsX3BvcnRfZHBsbHNbSUNMX1BPUlRfRFBMTF9D T1VOVF07Cj4gKwo+ICAJLyogRFNJIFBMTCByZWdpc3RlcnMgKi8KPiAgCXN0cnVjdCB7Cj4gIAkJ dTMyIGN0cmwsIGRpdjsKPiAtLSAKPiAyLjE3LjEKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4