From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v3 4/7] drm/i915: Clean up DP pipe select bits Date: Wed, 23 May 2018 12:37:35 +0300 Message-ID: <87in7en25c.fsf@intel.com> References: <20180518152931.13104-1-ville.syrjala@linux.intel.com> <20180518152931.13104-4-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 19AD889A6D for ; Wed, 23 May 2018 09:33:39 +0000 (UTC) In-Reply-To: <20180518152931.13104-4-ville.syrjala@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: Ville Syrjala , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAxOCBNYXkgMjAxOCwgVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+IHdyb3RlOgo+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+Cj4KPiBDbGVhbiB1cCB0aGUgRFAgcGlwZSBzZWxlY3QgYml0cy4gVG8g bWFrZSB0aGUgd2hvbGUgc2l0dWF0aW9uIGEgYml0Cj4gbGVzcyB1Z2x5IHdlJ2xsIHN0YXJ0IHRv IHNoYXJlIHRoZSBzYW1lIGNvZGUgYmV0d2VlbiAuZ2V0X2h3X3N0YXRlKCksCj4gdGhlIHBvcnQg c3RhdGUgYXNzZXJ0cywgYW5kIHRoZSBWTFYgcG93ZXIgc2VxdWVuY2VyIGNvZGUuCj4KPiB2Mjog UmV0dXJuIFBJUEVfQSBmb3IgY3B0L3BwdCB3aGVuIHRoZSBwb3J0IGlzbid0IHNlbGVjdGVkIGJ5 Cj4gICAgIGFueSB0cmFuc2NvZGVyLiBSZXR1cm5pbmcgSU5WQUxJRF9QSVBFIGV4cGxvZGVzICpz b21ld2hlcmUqCj4gICAgIG9uIHNvbWUgbWFjaGluZXMgKGNhbid0IGltbWVkaWF0ZWx5IHNlZSB3 aGVyZSB0aG91Z2gpLiBUaGlzCj4gICAgIG5vdyBtYXRjaGVzIHRoZSBvbGQgYmVoYXZpb3VyLgo+ IHYzOiBPcmRlciB0aGUgZGVmaW5lcyBzaGlmdCxtYXNrLHZhbHVlIChKYW5pKQo+Cj4gU2lnbmVk LW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K CkkgY291bGQndmUgYmlrZXNoZWRkZWQgYWJvdXQgc29tZSBuYW1pbmcgaGVyZSwgYnV0IEkgZG9u J3Qgd2FudCB0byByZWFkCnRoaXMgcGFydGljdWxhciBwYXRjaCBhZ2Fpbiwgc28KClJldmlld2Vk LWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgoKPiAtLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgIHwgIDI0ICsrKy0tLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICA0OCArKysrKy0tLS0tLS0tLS0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAgIHwgMTEzICsrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAg ICB8ICAgMyArCj4gIDQgZmlsZXMgY2hhbmdlZCwgOTIgaW5zZXJ0aW9ucygrKSwgOTYgZGVsZXRp b25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBpbmRleCA1YTEwMzQ5NjQyM2MuLmI4 ODhkYTk2Y2FmNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5o Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC01MTgyLDEwICs1 MTgyLDE1IEBAIGVudW0gewo+ICAjZGVmaW5lIENIVl9EUF9ECQlfTU1JTyhWTFZfRElTUExBWV9C QVNFICsgMHg2NDMwMCkKPiAgCj4gICNkZWZpbmUgICBEUF9QT1JUX0VOCQkJKDEgPDwgMzEpCj4g LSNkZWZpbmUgICBEUF9QSVBFQl9TRUxFQ1QJCSgxIDw8IDMwKQo+IC0jZGVmaW5lICAgRFBfUElQ RV9NQVNLCQkJKDEgPDwgMzApCj4gLSNkZWZpbmUgICBEUF9QSVBFX1NFTEVDVF9DSFYocGlwZSkJ KChwaXBlKSA8PCAxNikKPiAtI2RlZmluZSAgIERQX1BJUEVfTUFTS19DSFYJCSgzIDw8IDE2KQo+ ICsjZGVmaW5lICAgRFBfUElQRV9TRUxfU0hJRlQJCTMwCj4gKyNkZWZpbmUgICBEUF9QSVBFX1NF TF9NQVNLCQkoMSA8PCAzMCkKPiArI2RlZmluZSAgIERQX1BJUEVfU0VMKHBpcGUpCQkoKHBpcGUp IDw8IDMwKQo+ICsjZGVmaW5lICAgRFBfUElQRV9TRUxfU0hJRlRfSVZCCQkyOQo+ICsjZGVmaW5l ICAgRFBfUElQRV9TRUxfTUFTS19JVkIJCSgzIDw8IDI5KQo+ICsjZGVmaW5lICAgRFBfUElQRV9T RUxfSVZCKHBpcGUpCQkoKHBpcGUpIDw8IDI5KQo+ICsjZGVmaW5lICAgRFBfUElQRV9TRUxfU0hJ RlRfQ0hWCQkxNgo+ICsjZGVmaW5lICAgRFBfUElQRV9TRUxfTUFTS19DSFYJCSgzIDw8IDE2KQo+ ICsjZGVmaW5lICAgRFBfUElQRV9TRUxfQ0hWKHBpcGUpCQkoKHBpcGUpIDw8IDE2KQo+ICAKPiAg LyogTGluayB0cmFpbmluZyBtb2RlIC0gc2VsZWN0IGEgc3VpdGFibGUgbW9kZSBmb3IgZWFjaCBz dGFnZSAqLwo+ICAjZGVmaW5lICAgRFBfTElOS19UUkFJTl9QQVRfMQkJKDAgPDwgMjgpCj4gQEAg LTc4NzIsMTYgKzc4NzcsNiBAQCBlbnVtIHsKPiAgI2RlZmluZSBQQ0hfRFBfQVVYX0NIX0RBVEEo YXV4X2NoLCBpKQlfTU1JTyhfUE9SVCgoYXV4X2NoKSAtIEFVWF9DSF9CLCBfUENIX0RQQl9BVVhf Q0hfREFUQTEsIF9QQ0hfRFBDX0FVWF9DSF9EQVRBMSkgKyAoaSkgKiA0KSAvKiA1IHJlZ2lzdGVy cyAqLwo+ICAKPiAgLyogQ1BUICovCj4gLSNkZWZpbmUgIFBPUlRfVFJBTlNfQV9TRUxfQ1BUCTAK PiAtI2RlZmluZSAgUE9SVF9UUkFOU19CX1NFTF9DUFQJKDE8PDI5KQo+IC0jZGVmaW5lICBQT1JU X1RSQU5TX0NfU0VMX0NQVAkoMjw8MjkpCj4gLSNkZWZpbmUgIFBPUlRfVFJBTlNfU0VMX01BU0sJ KDM8PDI5KQo+IC0jZGVmaW5lICBQT1JUX1RSQU5TX1NFTF9DUFQocGlwZSkJKChwaXBlKSA8PCAy OSkKPiAtI2RlZmluZSAgUE9SVF9UT19QSVBFKHZhbCkJKCgodmFsKSAmICgxPDwzMCkpID4+IDMw KQo+IC0jZGVmaW5lICBQT1JUX1RPX1BJUEVfQ1BUKHZhbCkJKCgodmFsKSAmIFBPUlRfVFJBTlNf U0VMX01BU0spID4+IDI5KQo+IC0jZGVmaW5lICBTRFZPX1BPUlRfVE9fUElQRV9DSFYodmFsKQko KCh2YWwpICYgKDM8PDI0KSkgPj4gMjQpCj4gLSNkZWZpbmUgIERQX1BPUlRfVE9fUElQRV9DSFYo dmFsKQkoKCh2YWwpICYgKDM8PDE2KSkgPj4gMTYpCj4gLQo+ICAjZGVmaW5lIF9UUkFOU19EUF9D VExfQQkJMHhlMDMwMAo+ICAjZGVmaW5lIF9UUkFOU19EUF9DVExfQgkJMHhlMTMwMAo+ICAjZGVm aW5lIF9UUkFOU19EUF9DVExfQwkJMHhlMjMwMAo+IEBAIC03ODkwLDcgKzc4ODUsNiBAQCBlbnVt IHsKPiAgI2RlZmluZSAgVFJBTlNfRFBfUE9SVF9TRUxfTUFTSwkJKDMgPDwgMjkpCj4gICNkZWZp bmUgIFRSQU5TX0RQX1BPUlRfU0VMX05PTkUJCSgzIDw8IDI5KQo+ICAjZGVmaW5lICBUUkFOU19E UF9QT1JUX1NFTChwb3J0KQkoKChwb3J0KSAtIFBPUlRfQikgPDwgMjkpCj4gLSNkZWZpbmUgIFRS QU5TX0RQX1BJUEVfVE9fUE9SVCh2YWwpCSgoKCh2YWwpICYgVFJBTlNfRFBfUE9SVF9TRUxfTUFT SykgPj4gMjkpICsgUE9SVF9CKQo+ICAjZGVmaW5lICBUUkFOU19EUF9BVURJT19PTkxZCSgxPDwy NikKPiAgI2RlZmluZSAgVFJBTlNfRFBfRU5IX0ZSQU1JTkcJKDE8PDE4KQo+ICAjZGVmaW5lICBU UkFOU19EUF84QlBDCQkoMDw8OSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4g aW5kZXggZDM2ZGVhNTY4YjgyLi5kMzk3ZmViYjVhN2YgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCj4gQEAgLTEzMDMsMzggKzEzMDMsMjIgQEAgdm9pZCBhc3NlcnRfcGNo X3RyYW5zY29kZXJfZGlzYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ICAJICAgICBwaXBlX25hbWUocGlwZSkpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgYm9vbCBkcF9waXBl X2VuYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IC0JCQkgICAgZW51 bSBwaXBlIHBpcGUsIHUzMiBwb3J0X3NlbCwgdTMyIHZhbCkKPiAtewo+IC0JaWYgKCh2YWwgJiBE UF9QT1JUX0VOKSA9PSAwKQo+IC0JCXJldHVybiBmYWxzZTsKPiAtCj4gLQlpZiAoSEFTX1BDSF9D UFQoZGV2X3ByaXYpKSB7Cj4gLQkJdTMyIHRyYW5zX2RwX2N0bCA9IEk5MTVfUkVBRChUUkFOU19E UF9DVEwocGlwZSkpOwo+IC0JCWlmICgodHJhbnNfZHBfY3RsICYgVFJBTlNfRFBfUE9SVF9TRUxf TUFTSykgIT0gcG9ydF9zZWwpCj4gLQkJCXJldHVybiBmYWxzZTsKPiAtCX0gZWxzZSBpZiAoSVNf Q0hFUlJZVklFVyhkZXZfcHJpdikpIHsKPiAtCQlpZiAoKHZhbCAmIERQX1BJUEVfTUFTS19DSFYp ICE9IERQX1BJUEVfU0VMRUNUX0NIVihwaXBlKSkKPiAtCQkJcmV0dXJuIGZhbHNlOwo+IC0JfSBl bHNlIHsKPiAtCQlpZiAoKHZhbCAmIERQX1BJUEVfTUFTSykgIT0gKHBpcGUgPDwgMzApKQo+IC0J CQlyZXR1cm4gZmFsc2U7Cj4gLQl9Cj4gLQlyZXR1cm4gdHJ1ZTsKPiAtfQo+IC0KPiAgc3RhdGlj IHZvaWQgYXNzZXJ0X3BjaF9kcF9kaXNhYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gLQkJCQkgICBlbnVtIHBpcGUgcGlwZSwgaTkxNV9yZWdfdCByZWcsCj4gLQkJCQkg ICB1MzIgcG9ydF9zZWwpCj4gKwkJCQkgICBlbnVtIHBpcGUgcGlwZSwgZW51bSBwb3J0IHBvcnQs Cj4gKwkJCQkgICBpOTE1X3JlZ190IGRwX3JlZykKPiAgewo+IC0JdTMyIHZhbCA9IEk5MTVfUkVB RChyZWcpOwo+IC0JSTkxNV9TVEFURV9XQVJOKGRwX3BpcGVfZW5hYmxlZChkZXZfcHJpdiwgcGlw ZSwgcG9ydF9zZWwsIHZhbCksCj4gLQkgICAgICJQQ0ggRFAgKDB4JTA4eCkgZW5hYmxlZCBvbiB0 cmFuc2NvZGVyICVjLCBzaG91bGQgYmUgZGlzYWJsZWRcbiIsCj4gLQkgICAgIGk5MTVfbW1pb19y ZWdfb2Zmc2V0KHJlZyksIHBpcGVfbmFtZShwaXBlKSk7Cj4gKwllbnVtIHBpcGUgcG9ydF9waXBl Owo+ICsJYm9vbCBzdGF0ZTsKPiAgCj4gLQlJOTE1X1NUQVRFX1dBUk4oSEFTX1BDSF9JQlgoZGV2 X3ByaXYpICYmICh2YWwgJiBEUF9QT1JUX0VOKSA9PSAwCj4gLQkgICAgICYmICh2YWwgJiBEUF9Q SVBFQl9TRUxFQ1QpLAo+IC0JICAgICAiSUJYIFBDSCBkcCBwb3J0IHN0aWxsIHVzaW5nIHRyYW5z Y29kZXIgQlxuIik7Cj4gKwlzdGF0ZSA9IGludGVsX2RwX3BvcnRfZW5hYmxlZChkZXZfcHJpdiwg ZHBfcmVnLCBwb3J0LCAmcG9ydF9waXBlKTsKPiArCj4gKwlJOTE1X1NUQVRFX1dBUk4oc3RhdGUg JiYgcG9ydF9waXBlID09IHBpcGUsCj4gKwkJCSJQQ0ggRFAgJWMgZW5hYmxlZCBvbiB0cmFuc2Nv ZGVyICVjLCBzaG91bGQgYmUgZGlzYWJsZWRcbiIsCj4gKwkJCXBvcnRfbmFtZShwb3J0KSwgcGlw ZV9uYW1lKHBpcGUpKTsKPiArCj4gKwlJOTE1X1NUQVRFX1dBUk4oSEFTX1BDSF9JQlgoZGV2X3By aXYpICYmICFzdGF0ZSAmJiBwb3J0X3BpcGUgPT0gUElQRV9CLAo+ICsJCQkiSUJYIFBDSCBEUCAl YyBzdGlsbCB1c2luZyB0cmFuc2NvZGVyIEJcbiIsCj4gKwkJCXBvcnRfbmFtZShwb3J0KSk7Cj4g IH0KPiAgCj4gIHN0YXRpYyB2b2lkIGFzc2VydF9wY2hfaGRtaV9kaXNhYmxlZChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gQEAgLTEzNjAsOSArMTM0NCw5IEBAIHN0YXRpYyB2 b2lkIGFzc2VydF9wY2hfcG9ydHNfZGlzYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+ICB7Cj4gIAllbnVtIHBpcGUgcG9ydF9waXBlOwo+ICAKPiAtCWFzc2VydF9wY2hf ZHBfZGlzYWJsZWQoZGV2X3ByaXYsIHBpcGUsIFBDSF9EUF9CLCBUUkFOU19EUF9QT1JUX1NFTChQ T1JUX0IpKTsKPiAtCWFzc2VydF9wY2hfZHBfZGlzYWJsZWQoZGV2X3ByaXYsIHBpcGUsIFBDSF9E UF9DLCBUUkFOU19EUF9QT1JUX1NFTChQT1JUX0MpKTsKPiAtCWFzc2VydF9wY2hfZHBfZGlzYWJs ZWQoZGV2X3ByaXYsIHBpcGUsIFBDSF9EUF9ELCBUUkFOU19EUF9QT1JUX1NFTChQT1JUX0QpKTsK PiArCWFzc2VydF9wY2hfZHBfZGlzYWJsZWQoZGV2X3ByaXYsIHBpcGUsIFBPUlRfQiwgUENIX0RQ X0IpOwo+ICsJYXNzZXJ0X3BjaF9kcF9kaXNhYmxlZChkZXZfcHJpdiwgcGlwZSwgUE9SVF9DLCBQ Q0hfRFBfQyk7Cj4gKwlhc3NlcnRfcGNoX2RwX2Rpc2FibGVkKGRldl9wcml2LCBwaXBlLCBQT1JU X0QsIFBDSF9EUF9EKTsKPiAgCj4gIAlJOTE1X1NUQVRFX1dBUk4oaW50ZWxfY3J0X3BvcnRfZW5h YmxlZChkZXZfcHJpdiwgUENIX0FEUEEsICZwb3J0X3BpcGUpICYmCj4gIAkJCXBvcnRfcGlwZSA9 PSBwaXBlLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IGluZGV4IDEwMjA3MDk0MDA5NS4uYWFi NDgyODNmMTU1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gQEAgLTUyOSw5ICs1Mjks OSBAQCB2bHZfcG93ZXJfc2VxdWVuY2VyX2tpY2soc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkK PiAgCURQIHw9IERQX0xJTktfVFJBSU5fUEFUXzE7Cj4gIAo+ICAJaWYgKElTX0NIRVJSWVZJRVco ZGV2X3ByaXYpKQo+IC0JCURQIHw9IERQX1BJUEVfU0VMRUNUX0NIVihwaXBlKTsKPiAtCWVsc2Ug aWYgKHBpcGUgPT0gUElQRV9CKQo+IC0JCURQIHw9IERQX1BJUEVCX1NFTEVDVDsKPiArCQlEUCB8 PSBEUF9QSVBFX1NFTF9DSFYocGlwZSk7Cj4gKwllbHNlCj4gKwkJRFAgfD0gRFBfUElQRV9TRUwo cGlwZSk7Cj4gIAo+ICAJcGxsX2VuYWJsZWQgPSBJOTE1X1JFQUQoRFBMTChwaXBlKSkgJiBEUExM X1ZDT19FTkFCTEU7Cj4gIAo+IEBAIC0xOTk5LDcgKzE5OTksNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9kcF9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCWlmIChkcm1f ZHBfZW5oYW5jZWRfZnJhbWVfY2FwKGludGVsX2RwLT5kcGNkKSkKPiAgCQkJaW50ZWxfZHAtPkRQ IHw9IERQX0VOSEFOQ0VEX0ZSQU1JTkc7Cj4gIAo+IC0JCWludGVsX2RwLT5EUCB8PSBjcnRjLT5w aXBlIDw8IDI5Owo+ICsJCWludGVsX2RwLT5EUCB8PSBEUF9QSVBFX1NFTF9JVkIoY3J0Yy0+cGlw ZSk7Cj4gIAl9IGVsc2UgaWYgKEhBU19QQ0hfQ1BUKGRldl9wcml2KSAmJiBwb3J0ICE9IFBPUlRf QSkgewo+ICAJCXUzMiB0cmFuc19kcDsKPiAgCj4gQEAgLTIwMjUsOSArMjAyNSw5IEBAIHN0YXRp YyB2b2lkIGludGVsX2RwX3ByZXBhcmUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4g IAkJCWludGVsX2RwLT5EUCB8PSBEUF9FTkhBTkNFRF9GUkFNSU5HOwo+ICAKPiAgCQlpZiAoSVNf Q0hFUlJZVklFVyhkZXZfcHJpdikpCj4gLQkJCWludGVsX2RwLT5EUCB8PSBEUF9QSVBFX1NFTEVD VF9DSFYoY3J0Yy0+cGlwZSk7Cj4gLQkJZWxzZSBpZiAoY3J0Yy0+cGlwZSA9PSBQSVBFX0IpCj4g LQkJCWludGVsX2RwLT5EUCB8PSBEUF9QSVBFQl9TRUxFQ1Q7Cj4gKwkJCWludGVsX2RwLT5EUCB8 PSBEUF9QSVBFX1NFTF9DSFYoY3J0Yy0+cGlwZSk7Cj4gKwkJZWxzZQo+ICsJCQlpbnRlbF9kcC0+ RFAgfD0gRFBfUElQRV9TRUwoY3J0Yy0+cGlwZSk7Cj4gIAl9Cj4gIH0KPiAgCj4gQEAgLTI2NDks NTIgKzI2NDksNjYgQEAgdm9pZCBpbnRlbF9kcF9zaW5rX2RwbXMoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCwgaW50IG1vZGUpCj4gIAkJCSAgICAgIG1vZGUgPT0gRFJNX01PREVfRFBNU19PTiA/ ICJlbmFibGUiIDogImRpc2FibGUiKTsKPiAgfQo+ICAKPiArc3RhdGljIGJvb2wgY3B0X2RwX3Bv cnRfc2VsZWN0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCQkJIGVu dW0gcG9ydCBwb3J0LCBlbnVtIHBpcGUgKnBpcGUpCj4gK3sKPiArCWVudW0gcGlwZSBwOwo+ICsK PiArCWZvcl9lYWNoX3BpcGUoZGV2X3ByaXYsIHApIHsKPiArCQl1MzIgdmFsID0gSTkxNV9SRUFE KFRSQU5TX0RQX0NUTChwKSk7Cj4gKwo+ICsJCWlmICgodmFsICYgVFJBTlNfRFBfUE9SVF9TRUxf TUFTSykgPT0gVFJBTlNfRFBfUE9SVF9TRUwocG9ydCkpIHsKPiArCQkJKnBpcGUgPSBwOwo+ICsJ CQlyZXR1cm4gdHJ1ZTsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJRFJNX0RFQlVHX0tNUygiTm8gcGlw ZSBmb3IgRFAgcG9ydCAlYyBmb3VuZFxuIiwgcG9ydF9uYW1lKHBvcnQpKTsKPiArCj4gKwkvKiBt dXN0IGluaXRpYWxpemUgcGlwZSB0byBzb21ldGhpbmcgZm9yIHRoZSBhc3NlcnRzICovCj4gKwkq cGlwZSA9IFBJUEVfQTsKPiArCj4gKwlyZXR1cm4gZmFsc2U7Cj4gK30KPiArCj4gK2Jvb2wgaW50 ZWxfZHBfcG9ydF9lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAr CQkJICAgaTkxNV9yZWdfdCBkcF9yZWcsIGVudW0gcG9ydCBwb3J0LAo+ICsJCQkgICBlbnVtIHBp cGUgKnBpcGUpCj4gK3sKPiArCWJvb2wgcmV0Owo+ICsJdTMyIHZhbDsKPiArCj4gKwl2YWwgPSBJ OTE1X1JFQUQoZHBfcmVnKTsKPiArCj4gKwlyZXQgPSB2YWwgJiBEUF9QT1JUX0VOOwo+ICsKPiAr CS8qIGFzc2VydHMgd2FudCB0byBrbm93IHRoZSBwaXBlIGV2ZW4gaWYgdGhlIHBvcnQgaXMgZGlz YWJsZWQgKi8KPiArCWlmIChJU19JVllCUklER0UoZGV2X3ByaXYpICYmIHBvcnQgPT0gUE9SVF9B KQo+ICsJCSpwaXBlID0gKHZhbCAmIERQX1BJUEVfU0VMX01BU0tfSVZCKSA+PiBEUF9QSVBFX1NF TF9TSElGVF9JVkI7Cj4gKwllbHNlIGlmIChIQVNfUENIX0NQVChkZXZfcHJpdikgJiYgcG9ydCAh PSBQT1JUX0EpCj4gKwkJcmV0ICY9IGNwdF9kcF9wb3J0X3NlbGVjdGVkKGRldl9wcml2LCBwb3J0 LCBwaXBlKTsKPiArCWVsc2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ICsJCSpwaXBl ID0gKHZhbCAmIERQX1BJUEVfU0VMX01BU0tfQ0hWKSA+PiBEUF9QSVBFX1NFTF9TSElGVF9DSFY7 Cj4gKwllbHNlCj4gKwkJKnBpcGUgPSAodmFsICYgRFBfUElQRV9TRUxfTUFTSykgPj4gRFBfUElQ RV9TRUxfU0hJRlQ7Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiAgc3RhdGljIGJvb2wg aW50ZWxfZHBfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJ CQkJICBlbnVtIHBpcGUgKnBpcGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAJc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4gLQllbnVtIHBv cnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7Cj4gLQl1MzIgdG1wOwo+ICAJYm9vbCByZXQ7Cj4gIAo+ ICAJaWYgKCFpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldF9pZl9lbmFibGVkKGRldl9wcml2LAo+ICAJ CQkJCQllbmNvZGVyLT5wb3dlcl9kb21haW4pKQo+ICAJCXJldHVybiBmYWxzZTsKPiAgCj4gLQly ZXQgPSBmYWxzZTsKPiArCXJldCA9IGludGVsX2RwX3BvcnRfZW5hYmxlZChkZXZfcHJpdiwgaW50 ZWxfZHAtPm91dHB1dF9yZWcsCj4gKwkJCQkgICAgZW5jb2Rlci0+cG9ydCwgcGlwZSk7Cj4gIAo+ IC0JdG1wID0gSTkxNV9SRUFEKGludGVsX2RwLT5vdXRwdXRfcmVnKTsKPiAtCj4gLQlpZiAoISh0 bXAgJiBEUF9QT1JUX0VOKSkKPiAtCQlnb3RvIG91dDsKPiAtCj4gLQlpZiAoSVNfSVZZQlJJREdF KGRldl9wcml2KSAmJiBwb3J0ID09IFBPUlRfQSkgewo+IC0JCSpwaXBlID0gUE9SVF9UT19QSVBF X0NQVCh0bXApOwo+IC0JfSBlbHNlIGlmIChIQVNfUENIX0NQVChkZXZfcHJpdikgJiYgcG9ydCAh PSBQT1JUX0EpIHsKPiAtCQllbnVtIHBpcGUgcDsKPiAtCj4gLQkJZm9yX2VhY2hfcGlwZShkZXZf cHJpdiwgcCkgewo+IC0JCQl1MzIgdHJhbnNfZHAgPSBJOTE1X1JFQUQoVFJBTlNfRFBfQ1RMKHAp KTsKPiAtCQkJaWYgKFRSQU5TX0RQX1BJUEVfVE9fUE9SVCh0cmFuc19kcCkgPT0gcG9ydCkgewo+ IC0JCQkJKnBpcGUgPSBwOwo+IC0JCQkJcmV0ID0gdHJ1ZTsKPiAtCj4gLQkJCQlnb3RvIG91dDsK PiAtCQkJfQo+IC0JCX0KPiAtCj4gLQkJRFJNX0RFQlVHX0tNUygiTm8gcGlwZSBmb3IgZHAgcG9y dCAweCV4IGZvdW5kXG4iLAo+IC0JCQkgICAgICBpOTE1X21taW9fcmVnX29mZnNldChpbnRlbF9k cC0+b3V0cHV0X3JlZykpOwo+IC0JfSBlbHNlIGlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkg ewo+IC0JCSpwaXBlID0gRFBfUE9SVF9UT19QSVBFX0NIVih0bXApOwo+IC0JfSBlbHNlIHsKPiAt CQkqcGlwZSA9IFBPUlRfVE9fUElQRSh0bXApOwo+IC0JfQo+IC0KPiAtCXJldCA9IHRydWU7Cj4g LQo+IC1vdXQ6Cj4gIAlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgZW5jb2Rlci0+ cG93ZXJfZG9tYWluKTsKPiAgCj4gIAlyZXR1cm4gcmV0Owo+IEBAIC0zNjg0LDggKzM2OTgsOSBA QCBpbnRlbF9kcF9saW5rX2Rvd24oc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJ aW50ZWxfc2V0X3BjaF9maWZvX3VuZGVycnVuX3JlcG9ydGluZyhkZXZfcHJpdiwgUElQRV9BLCBm YWxzZSk7Cj4gIAo+ICAJCS8qIGFsd2F5cyBlbmFibGUgd2l0aCBwYXR0ZXJuIDEgKGFzIHBlciBz cGVjKSAqLwo+IC0JCURQICY9IH4oRFBfUElQRUJfU0VMRUNUIHwgRFBfTElOS19UUkFJTl9NQVNL KTsKPiAtCQlEUCB8PSBEUF9QT1JUX0VOIHwgRFBfTElOS19UUkFJTl9QQVRfMTsKPiArCQlEUCAm PSB+KERQX1BJUEVfU0VMX01BU0sgfCBEUF9MSU5LX1RSQUlOX01BU0spOwo+ICsJCURQIHw9IERQ X1BPUlRfRU4gfCBEUF9QSVBFX1NFTChQSVBFX0EpIHwKPiArCQkJRFBfTElOS19UUkFJTl9QQVRf MTsKPiAgCQlJOTE1X1dSSVRFKGludGVsX2RwLT5vdXRwdXRfcmVnLCBEUCk7Cj4gIAkJUE9TVElO R19SRUFEKGludGVsX2RwLT5vdXRwdXRfcmVnKTsKPiAgCj4gQEAgLTUzMjAsMTQgKzUzMzUsMTQg QEAgc3RhdGljIHZvaWQgaW50ZWxfZWRwX3BhbmVsX3ZkZF9zYW5pdGl6ZShzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQo+ICBzdGF0aWMgZW51bSBwaXBlIHZsdl9hY3RpdmVfcGlwZShzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ICsJc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIgPSAmZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLT5iYXNlOwo+ ICsJZW51bSBwaXBlIHBpcGU7Cj4gIAo+IC0JaWYgKChpbnRlbF9kcC0+RFAgJiBEUF9QT1JUX0VO KSA9PSAwKQo+IC0JCXJldHVybiBJTlZBTElEX1BJUEU7Cj4gKwlpZiAoaW50ZWxfZHBfcG9ydF9l bmFibGVkKGRldl9wcml2LCBpbnRlbF9kcC0+b3V0cHV0X3JlZywKPiArCQkJCSAgZW5jb2Rlci0+ cG9ydCwgJnBpcGUpKQo+ICsJCXJldHVybiBwaXBlOwo+ICAKPiAtCWlmIChJU19DSEVSUllWSUVX KGRldl9wcml2KSkKPiAtCQlyZXR1cm4gRFBfUE9SVF9UT19QSVBFX0NIVihpbnRlbF9kcC0+RFAp Owo+IC0JZWxzZQo+IC0JCXJldHVybiBQT1JUX1RPX1BJUEUoaW50ZWxfZHAtPkRQKTsKPiArCXJl dHVybiBJTlZBTElEX1BJUEU7Cj4gIH0KPiAgCj4gIHZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9yZXNl dChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK PiBpbmRleCBhODI3YTIyNDVjMTguLmRjN2Y4MWUxZTIwYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4gQEAgLTE2NDcsNiArMTY0Nyw5IEBAIHZvaWQgaW50ZWxfY3NyX3Vjb2RlX3N1 c3BlbmQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKik7Cj4gIHZvaWQgaW50ZWxfY3NyX3Vjb2Rl X3Jlc3VtZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqKTsKPiAgCj4gIC8qIGludGVsX2RwLmMg Ki8KPiArYm9vbCBpbnRlbF9kcF9wb3J0X2VuYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+ICsJCQkgICBpOTE1X3JlZ190IGRwX3JlZywgZW51bSBwb3J0IHBvcnQsCj4g KwkJCSAgIGVudW0gcGlwZSAqcGlwZSk7Cj4gIGJvb2wgaW50ZWxfZHBfaW5pdChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGk5MTVfcmVnX3Qgb3V0cHV0X3JlZywKPiAgCQkgICBl bnVtIHBvcnQgcG9ydCk7Cj4gIGJvb2wgaW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCgotLSAKSmFuaSBOaWt1bGEsIEludGVs IE9wZW4gU291cmNlIEdyYXBoaWNzIENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK