From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] drm/i915: Consider SPLL as another shared pll, v2. Date: Mon, 16 Nov 2015 17:53:46 +0200 Message-ID: <878u5y9bzp.fsf@intel.com> References: <1447681332-6318-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 849BF6E019 for ; Mon, 16 Nov 2015 07:54:22 -0800 (PST) In-Reply-To: <1447681332-6318-1-git-send-email-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst , intel-gfx@lists.freedesktop.org Cc: Emil Renner Berthing List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAxNiBOb3YgMjAxNSwgTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0 QGxpbnV4LmludGVsLmNvbT4gd3JvdGU6Cj4gV2hlbiBkaWFnbm9zaW5nIGEgdW5yZWxhdGVkIGJ1 ZyBmb3Igc29tZW9uZSBvbiBpcmMsIGl0IHdvdWxkIHNlZW0gdGhlIGhhcmR3YXJlIGNhbgo+IGJl IGJyb3VnaHQgdXAgYnkgdGhlIEJJT1Mgd2l0aCB0aGUgZW1iZWRkZWQgZGlzcGxheXBvcnQgdXNp bmcgdGhlIFNQTEwgZm9yIHNwcmVhZCBzcGVjdHJ1bS4KPgo+IFJpZ2h0IG5vdyB0aGlzIGlzIG5v dCBoYW5kbGVkIHdlbGwgaW4gaTkxNSwgYW5kIGl0IGNhbGN1bGF0ZXMgdGhlIGNydGMgbmVlZHMg dG8KPiBiZSByZXByb2dyYW1tZWQgb24gdGhlIGZpcnN0IG1vZGVzZXQgd2l0aG91dCBTU0MsIGJ1 dCAgdGhlIFNQTEwgaXRzZWxmIHdhcyBrZXB0Cj4gYWN0aXZlLiBGaXggdGhpcyBieSBleHBvc2lu ZyBTUExMIGFzIGEgc2hhcmVkIHBsbCB0aGF0IHdpbGwgbm90IGJlIHJldHVybmVkCj4gYnkgaW50 ZWxfZ2V0X3NoYXJlZF9kcGxsOyB5b3UgaGF2ZSB0byBrbm93IGl0IGV4aXN0cyB0byB1c2UgaXQu Cj4KPiBDaGFuZ2VzIHNpbmNlIHYxOgo+IC0gQ3JlYXRlIGEgc2VwYXJhdGUgZHBsbF9od19zdGF0 ZS5zcGxsIGZvciBzcGxsLCBhbmQgdXNlCj4gICBzZXBhcmF0ZSBwbGwgZnVuY3Rpb25zIGZvciBz cGxsLgo+Cj4gVGVzdGVkLWJ5OiBFbWlsIFJlbm5lciBCZXJ0aGluZyA8a2VybmVsQGVzbWlsLmRr PiAjdjEKPiBSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5j aD4KPiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RA bGludXguaW50ZWwuY29tPgo+IC0tLQo+IEVtaWwsIGNhbiB5b3UgcmV0ZXN0PwoKR2FicmllbCwg eW91IHRvbyBwbGVhc2UhCgpCUiwKSmFuaS4KCj4KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCAgICAgIHwgIDMgKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0LmMg ICAgIHwgMzEgKystLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rk aS5jICAgICB8IDc1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAxNSArKysrKystLQo+ICA0IGZpbGVz IGNoYW5nZWQsIDgzIGluc2VydGlvbnMoKyksIDQxIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCj4gaW5kZXggODVjODRjNjI0ZWQxLi5iNmI2MjM4N2NiZTEgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMzUxLDYgKzM1MSw4IEBAIGVudW0gaW50ZWxfZHBs bF9pZCB7Cj4gIAkvKiBoc3cvYmR3ICovCj4gIAlEUExMX0lEX1dSUExMMSA9IDAsCj4gIAlEUExM X0lEX1dSUExMMiA9IDEsCj4gKwlEUExMX0lEX1NQTEwgPSAyLAo+ICsKPiAgCS8qIHNrbCAqLwo+ ICAJRFBMTF9JRF9TS0xfRFBMTDEgPSAwLAo+ICAJRFBMTF9JRF9TS0xfRFBMTDIgPSAxLAo+IEBA IC0zNjcsNiArMzY5LDcgQEAgc3RydWN0IGludGVsX2RwbGxfaHdfc3RhdGUgewo+ICAKPiAgCS8q IGhzdywgYmR3ICovCj4gIAl1aW50MzJfdCB3cnBsbDsKPiArCXVpbnQzMl90IHNwbGw7Cj4gIAo+ ICAJLyogc2tsICovCj4gIAkvKgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9jcnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jCj4gaW5kZXggYjg0 YWFhMGJiNDhhLi42YTJjNzZlMzY3YTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfY3J0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYwo+ IEBAIC0xMzgsMTggKzEzOCw2IEBAIHN0YXRpYyB2b2lkIGhzd19jcnRfZ2V0X2NvbmZpZyhzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVk X21vZGUuZmxhZ3MgfD0gaW50ZWxfY3J0X2dldF9mbGFncyhlbmNvZGVyKTsKPiAgfQo+ICAKPiAt c3RhdGljIHZvaWQgaHN3X2NydF9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7 Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRl Owo+IC0KPiAtCVdBUk4oSTkxNV9SRUFEKFNQTExfQ1RMKSAmIFNQTExfUExMX0VOQUJMRSwgIlNQ TEwgYWxyZWFkeSBlbmFibGVkXG4iKTsKPiAtCUk5MTVfV1JJVEUoU1BMTF9DVEwsCj4gLQkJICAg U1BMTF9QTExfRU5BQkxFIHwgU1BMTF9QTExfRlJFUV8xMzUwTUh6IHwgU1BMTF9QTExfU1NDKTsK PiAtCVBPU1RJTkdfUkVBRChTUExMX0NUTCk7Cj4gLQl1ZGVsYXkoMjApOwo+IC19Cj4gLQo+ICAv KiBOb3RlOiBUaGUgY2FsbGVyIGlzIHJlcXVpcmVkIHRvIGZpbHRlciBvdXQgZHBtcyBtb2RlcyBu b3Qgc3VwcG9ydGVkIGJ5IHRoZQo+ICAgKiBwbGF0Zm9ybS4gKi8KPiAgc3RhdGljIHZvaWQgaW50 ZWxfY3J0X3NldF9kcG1zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgbW9kZSkK PiBAQCAtMjE2LDE5ICsyMDQsNiBAQCBzdGF0aWMgdm9pZCBwY2hfcG9zdF9kaXNhYmxlX2NydChz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCWludGVsX2Rpc2FibGVfY3J0KGVuY29k ZXIpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBoc3dfY3J0X3Bvc3RfZGlzYWJsZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAtewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGVuY29kZXItPmJhc2UuZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXVpbnQzMl90IHZhbDsKPiAtCj4gLQlEUk1fREVCVUdf S01TKCJEaXNhYmxpbmcgU1BMTFxuIik7Cj4gLQl2YWwgPSBJOTE1X1JFQUQoU1BMTF9DVEwpOwo+ IC0JV0FSTl9PTighKHZhbCAmIFNQTExfUExMX0VOQUJMRSkpOwo+IC0JSTkxNV9XUklURShTUExM X0NUTCwgdmFsICYgflNQTExfUExMX0VOQUJMRSk7Cj4gLQlQT1NUSU5HX1JFQUQoU1BMTF9DVEwp Owo+IC19Cj4gLQo+ICBzdGF0aWMgdm9pZCBpbnRlbF9lbmFibGVfY3J0KHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0ICpjcnQgPSBpbnRlbF9l bmNvZGVyX3RvX2NydChlbmNvZGVyKTsKPiBAQCAtMjgwLDYgKzI1NSwxMCBAQCBzdGF0aWMgYm9v bCBpbnRlbF9jcnRfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs Cj4gIAlpZiAoSEFTX0RESShkZXYpKSB7Cj4gIAkJcGlwZV9jb25maWctPmRkaV9wbGxfc2VsID0g UE9SVF9DTEtfU0VMX1NQTEw7Cj4gIAkJcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPSAxMzUwMDAg KiAyOwo+ICsKPiArCQlwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS53cnBsbCA9IDA7Cj4gKwkJ cGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUuc3BsbCA9Cj4gKwkJCVNQTExfUExMX0VOQUJMRSB8 IFNQTExfUExMX0ZSRVFfMTM1ME1IeiB8IFNQTExfUExMX1NTQzsKPiAgCX0KPiAgCj4gIAlyZXR1 cm4gdHJ1ZTsKPiBAQCAtODYwLDggKzgzOSw2IEBAIHZvaWQgaW50ZWxfY3J0X2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKPiAgCWlmIChIQVNfRERJKGRldikpIHsKPiAgCQljcnQtPmJhc2Uu Z2V0X2NvbmZpZyA9IGhzd19jcnRfZ2V0X2NvbmZpZzsKPiAgCQljcnQtPmJhc2UuZ2V0X2h3X3N0 YXRlID0gaW50ZWxfZGRpX2dldF9od19zdGF0ZTsKPiAtCQljcnQtPmJhc2UucHJlX2VuYWJsZSA9 IGhzd19jcnRfcHJlX2VuYWJsZTsKPiAtCQljcnQtPmJhc2UucG9zdF9kaXNhYmxlID0gaHN3X2Ny dF9wb3N0X2Rpc2FibGU7Cj4gIAl9IGVsc2Ugewo+ICAJCWNydC0+YmFzZS5nZXRfY29uZmlnID0g aW50ZWxfY3J0X2dldF9jb25maWc7Cj4gIAkJY3J0LT5iYXNlLmdldF9od19zdGF0ZSA9IGludGVs X2NydF9nZXRfaHdfc3RhdGU7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiBpbmRleCBhYmI0 YTI2NWE2ZGYuLjkwZmFkN2FkMTJhYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kZGkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4g QEAgLTEyODYsNiArMTI4NiwxOCBAQCBoc3dfZGRpX3BsbF9zZWxlY3Qoc3RydWN0IGludGVsX2Ny dGMgKmludGVsX2NydGMsCj4gIAkJfQo+ICAKPiAgCQljcnRjX3N0YXRlLT5kZGlfcGxsX3NlbCA9 IFBPUlRfQ0xLX1NFTF9XUlBMTChwbGwtPmlkKTsKPiArCX0gZWxzZSBpZiAoY3J0Y19zdGF0ZS0+ ZGRpX3BsbF9zZWwgPT0gUE9SVF9DTEtfU0VMX1NQTEwpIHsKPiArCQlzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5iYXNlLnN0YXRlOwo+ICsJCXN0cnVjdCBpbnRl bF9zaGFyZWRfZHBsbF9jb25maWcgKnNwbGwgPQo+ICsJCQkmaW50ZWxfYXRvbWljX2dldF9zaGFy ZWRfZHBsbF9zdGF0ZShzdGF0ZSlbRFBMTF9JRF9TUExMXTsKPiArCj4gKwkJaWYgKHNwbGwtPmNy dGNfbWFzayAmJgo+ICsJCSAgICBXQVJOX09OKHNwbGwtPmh3X3N0YXRlLnNwbGwgIT0gY3J0Y19z dGF0ZS0+ZHBsbF9od19zdGF0ZS5zcGxsKSkKPiArCQkJcmV0dXJuIGZhbHNlOwo+ICsKPiArCQlj cnRjX3N0YXRlLT5zaGFyZWRfZHBsbCA9IERQTExfSURfU1BMTDsKPiArCQlzcGxsLT5od19zdGF0 ZS5zcGxsID0gY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZS5zcGxsOwo+ICsJCXNwbGwtPmNydGNf bWFzayB8PSAxIDw8IGludGVsX2NydGMtPnBpcGU7Cj4gIAl9Cj4gIAo+ICAJcmV0dXJuIHRydWU7 Cj4gQEAgLTI0NDYsNyArMjQ1OCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfZGRpKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+ICAJfQo+ICB9Cj4gIAo+IC1zdGF0 aWMgdm9pZCBoc3dfZGRpX3BsbF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+ICtzdGF0aWMgdm9pZCBoc3dfZGRpX3dycGxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwg KnBsbCkKPiAgewo+ICAJSTkxNV9XUklURShXUlBMTF9DVEwocGxsLT5pZCksIHBsbC0+Y29uZmln Lmh3X3N0YXRlLndycGxsKTsKPiBAQCAtMjQ1NCw5ICsyNDY2LDE3IEBAIHN0YXRpYyB2b2lkIGhz d19kZGlfcGxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAl1 ZGVsYXkoMjApOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBoc3dfZGRpX3BsbF9kaXNhYmxlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArc3RhdGljIHZvaWQgaHN3X2RkaV9z cGxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCQlzdHJ1 Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCkKPiAgewo+ICsJSTkxNV9XUklURShTUExMX0NUTCwg cGxsLT5jb25maWcuaHdfc3RhdGUuc3BsbCk7Cj4gKwlQT1NUSU5HX1JFQUQoU1BMTF9DVEwpOwo+ ICsJdWRlbGF5KDIwKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgaHN3X2RkaV93cnBsbF9kaXNh YmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJCSAgc3RydWN0IGlu dGVsX3NoYXJlZF9kcGxsICpwbGwpCj4gK3sKPiAgCXVpbnQzMl90IHZhbDsKPiAgCj4gIAl2YWwg PSBJOTE1X1JFQUQoV1JQTExfQ1RMKHBsbC0+aWQpKTsKPiBAQCAtMjQ2NCw5ICsyNDg0LDE5IEBA IHN0YXRpYyB2b2lkIGhzd19kZGlfcGxsX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+ICAJUE9TVElOR19SRUFEKFdSUExMX0NUTChwbGwtPmlkKSk7Cj4gIH0KPiAg Cj4gLXN0YXRpYyBib29sIGhzd19kZGlfcGxsX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gLQkJCQkgICAgIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAq cGxsLAo+IC0JCQkJICAgICBzdHJ1Y3QgaW50ZWxfZHBsbF9od19zdGF0ZSAqaHdfc3RhdGUpCj4g K3N0YXRpYyB2b2lkIGhzd19kZGlfc3BsbF9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiArCQkJCSBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCkKPiArewo+ ICsJdWludDMyX3QgdmFsOwo+ICsKPiArCXZhbCA9IEk5MTVfUkVBRChTUExMX0NUTCk7Cj4gKwlJ OTE1X1dSSVRFKFNQTExfQ1RMLCB2YWwgJiB+U1BMTF9QTExfRU5BQkxFKTsKPiArCVBPU1RJTkdf UkVBRChTUExMX0NUTCk7Cj4gK30KPiArCj4gK3N0YXRpYyBib29sIGhzd19kZGlfd3JwbGxfZ2V0 X2h3X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJCSAgICAg ICBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCwKPiArCQkJCSAgICAgICBzdHJ1Y3QgaW50 ZWxfZHBsbF9od19zdGF0ZSAqaHdfc3RhdGUpCj4gIHsKPiAgCXVpbnQzMl90IHZhbDsKPiAgCj4g QEAgLTI0NzksMjUgKzI1MDksNTAgQEAgc3RhdGljIGJvb2wgaHN3X2RkaV9wbGxfZ2V0X2h3X3N0 YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCXJldHVybiB2YWwgJiBX UlBMTF9QTExfRU5BQkxFOwo+ICB9Cj4gIAo+ICtzdGF0aWMgYm9vbCBoc3dfZGRpX3NwbGxfZ2V0 X2h3X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJCSAgICAg IHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsLAo+ICsJCQkJICAgICAgc3RydWN0IGludGVs X2RwbGxfaHdfc3RhdGUgKmh3X3N0YXRlKQo+ICt7Cj4gKwl1aW50MzJfdCB2YWw7Cj4gKwo+ICsJ aWYgKCFpbnRlbF9kaXNwbGF5X3Bvd2VyX2lzX2VuYWJsZWQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJ Tl9QTExTKSkKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwo+ICsJdmFsID0gSTkxNV9SRUFEKFNQTExf Q1RMKTsKPiArCWh3X3N0YXRlLT5zcGxsID0gdmFsOwo+ICsKPiArCXJldHVybiB2YWwgJiBTUExM X1BMTF9FTkFCTEU7Cj4gK30KPiArCj4gKwo+ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGhz d19kZGlfcGxsX25hbWVzW10gPSB7Cj4gIAkiV1JQTEwgMSIsCj4gIAkiV1JQTEwgMiIsCj4gKwki U1BMTCIKPiAgfTsKPiAgCj4gIHN0YXRpYyB2b2lkIGhzd19zaGFyZWRfZHBsbHNfaW5pdChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAgCWludCBpOwo+ICAKPiAtCWRl dl9wcml2LT5udW1fc2hhcmVkX2RwbGwgPSAyOwo+ICsJZGV2X3ByaXYtPm51bV9zaGFyZWRfZHBs bCA9IDM7Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8IGRldl9wcml2LT5udW1fc2hhcmVkX2RwbGw7 IGkrKykgewo+ICsJZm9yIChpID0gMDsgaSA8IDI7IGkrKykgewo+ICAJCWRldl9wcml2LT5zaGFy ZWRfZHBsbHNbaV0uaWQgPSBpOwo+ICAJCWRldl9wcml2LT5zaGFyZWRfZHBsbHNbaV0ubmFtZSA9 IGhzd19kZGlfcGxsX25hbWVzW2ldOwo+IC0JCWRldl9wcml2LT5zaGFyZWRfZHBsbHNbaV0uZGlz YWJsZSA9IGhzd19kZGlfcGxsX2Rpc2FibGU7Cj4gLQkJZGV2X3ByaXYtPnNoYXJlZF9kcGxsc1tp XS5lbmFibGUgPSBoc3dfZGRpX3BsbF9lbmFibGU7Cj4gKwkJZGV2X3ByaXYtPnNoYXJlZF9kcGxs c1tpXS5kaXNhYmxlID0gaHN3X2RkaV93cnBsbF9kaXNhYmxlOwo+ICsJCWRldl9wcml2LT5zaGFy ZWRfZHBsbHNbaV0uZW5hYmxlID0gaHN3X2RkaV93cnBsbF9lbmFibGU7Cj4gIAkJZGV2X3ByaXYt PnNoYXJlZF9kcGxsc1tpXS5nZXRfaHdfc3RhdGUgPQo+IC0JCQloc3dfZGRpX3BsbF9nZXRfaHdf c3RhdGU7Cj4gKwkJCWhzd19kZGlfd3JwbGxfZ2V0X2h3X3N0YXRlOwo+ICAJfQo+ICsKPiArCS8q IFNQTEwgaXMgc3BlY2lhbCwgYnV0IG5lZWRzIHRvIGJlIGluaXRpYWxpemVkIGFueXdheS4uICov Cj4gKwlkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ldLmlkID0gaTsKPiArCWRldl9wcml2LT5zaGFy ZWRfZHBsbHNbaV0ubmFtZSA9IGhzd19kZGlfcGxsX25hbWVzW2ldOwo+ICsJZGV2X3ByaXYtPnNo YXJlZF9kcGxsc1tpXS5kaXNhYmxlID0gaHN3X2RkaV9zcGxsX2Rpc2FibGU7Cj4gKwlkZXZfcHJp di0+c2hhcmVkX2RwbGxzW2ldLmVuYWJsZSA9IGhzd19kZGlfc3BsbF9lbmFibGU7Cj4gKwlkZXZf cHJpdi0+c2hhcmVkX2RwbGxzW2ldLmdldF9od19zdGF0ZSA9IGhzd19kZGlfc3BsbF9nZXRfaHdf c3RhdGU7Cj4gKwo+ICB9Cj4gIAo+ICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNrbF9kZGlf cGxsX25hbWVzW10gPSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4 IDNjYTM4ZmM0OTNkZS4uYjM4M2NiZTM5NjRjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+IEBAIC00MjEwLDYgKzQyMTAsNyBAQCBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2Rw bGwgKmludGVsX2dldF9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCXN0 cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOwo+ICAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxs X2NvbmZpZyAqc2hhcmVkX2RwbGw7Cj4gIAllbnVtIGludGVsX2RwbGxfaWQgaTsKPiArCWludCBt YXggPSBkZXZfcHJpdi0+bnVtX3NoYXJlZF9kcGxsOwo+ICAKPiAgCXNoYXJlZF9kcGxsID0gaW50 ZWxfYXRvbWljX2dldF9zaGFyZWRfZHBsbF9zdGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsK PiAgCj4gQEAgLTQyNDQsOSArNDI0NSwxMSBAQCBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKmlu dGVsX2dldF9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCQlXQVJOX09O KHNoYXJlZF9kcGxsW2ldLmNydGNfbWFzayk7Cj4gIAo+ICAJCWdvdG8gZm91bmQ7Cj4gLQl9Cj4g Kwl9IGVsc2UgaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5nZW4gPCA5ICYmIEhBU19EREkoZGV2 X3ByaXYpKQo+ICsJCS8qIERvIG5vdCBjb25zaWRlciBTUExMICovCj4gKwkJbWF4ID0gMjsKPiAg Cj4gLQlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPm51bV9zaGFyZWRfZHBsbDsgaSsrKSB7Cj4g Kwlmb3IgKGkgPSAwOyBpIDwgbWF4OyBpKyspIHsKPiAgCQlwbGwgPSAmZGV2X3ByaXYtPnNoYXJl ZF9kcGxsc1tpXTsKPiAgCj4gIAkJLyogT25seSB3YW50IHRvIGNoZWNrIGVuYWJsZWQgdGltaW5n cyBmaXJzdCAqLwo+IEBAIC05NzY3LDYgKzk3NzAsOCBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2dl dF9kZGlfcGxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCWNhc2UgUE9S VF9DTEtfU0VMX1dSUExMMjoKPiAgCQlwaXBlX2NvbmZpZy0+c2hhcmVkX2RwbGwgPSBEUExMX0lE X1dSUExMMjsKPiAgCQlicmVhazsKPiArCWNhc2UgUE9SVF9DTEtfU0VMX1NQTEw6Cj4gKwkJcGlw ZV9jb25maWctPnNoYXJlZF9kcGxsID0gRFBMTF9JRF9TUExMOwo+ICAJfQo+ICB9Cj4gIAo+IEBA IC0xMjA3MCw5ICsxMjA3NSwxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kdW1wX3BpcGVfY29uZmln KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJCQkgICAgICBwaXBlX2NvbmZpZy0+ZHBsbF9o d19zdGF0ZS5jZmdjcjEsCj4gIAkJCSAgICAgIHBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlLmNm Z2NyMik7Cj4gIAl9IGVsc2UgaWYgKEhBU19EREkoZGV2KSkgewo+IC0JCURSTV9ERUJVR19LTVMo ImRkaV9wbGxfc2VsOiAldTsgZHBsbF9od19zdGF0ZTogd3JwbGw6IDB4JXhcbiIsCj4gKwkJRFJN X0RFQlVHX0tNUygiZGRpX3BsbF9zZWw6ICV1OyBkcGxsX2h3X3N0YXRlOiB3cnBsbDogMHgleCBz cGxsOiAweCV4XG4iLAo+ICAJCQkgICAgICBwaXBlX2NvbmZpZy0+ZGRpX3BsbF9zZWwsCj4gLQkJ CSAgICAgIHBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlLndycGxsKTsKPiArCQkJICAgICAgcGlw ZV9jb25maWctPmRwbGxfaHdfc3RhdGUud3JwbGwsCj4gKwkJCSAgICAgIHBpcGVfY29uZmlnLT5k cGxsX2h3X3N0YXRlLnNwbGwpOwo+ICAJfSBlbHNlIHsKPiAgCQlEUk1fREVCVUdfS01TKCJkcGxs X2h3X3N0YXRlOiBkcGxsOiAweCV4LCBkcGxsX21kOiAweCV4LCAiCj4gIAkJCSAgICAgICJmcDA6 IDB4JXgsIGZwMTogMHgleFxuIiwKPiBAQCAtMTI2MDcsNiArMTI2MTMsNyBAQCBpbnRlbF9waXBl X2NvbmZpZ19jb21wYXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlQSVBFX0NPTkZfQ0hF Q0tfWChkcGxsX2h3X3N0YXRlLmZwMCk7Cj4gIAlQSVBFX0NPTkZfQ0hFQ0tfWChkcGxsX2h3X3N0 YXRlLmZwMSk7Cj4gIAlQSVBFX0NPTkZfQ0hFQ0tfWChkcGxsX2h3X3N0YXRlLndycGxsKTsKPiAr CVBJUEVfQ09ORl9DSEVDS19YKGRwbGxfaHdfc3RhdGUuc3BsbCk7Cj4gIAlQSVBFX0NPTkZfQ0hF Q0tfWChkcGxsX2h3X3N0YXRlLmN0cmwxKTsKPiAgCVBJUEVfQ09ORl9DSEVDS19YKGRwbGxfaHdf c3RhdGUuY2ZnY3IxKTsKPiAgCVBJUEVfQ09ORl9DSEVDS19YKGRwbGxfaHdfc3RhdGUuY2ZnY3Iy KTsKCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK