From: Imre Deak Subject: [PATCH 2/3] drm/i915/icl: Fix TypeC legacy HDMI HPD handling Date: Thu, 13 Dec 2018 21:48:49 +0200 Message-ID: <20181213194850.25406-3-imre.deak@intel.com> References: <20181213194850.25406-1-imre.deak@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 363A96F048 for ; Thu, 13 Dec 2018 19:48:57 +0000 (UTC) In-Reply-To: <20181213194850.25406-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: intel-gfx@lists.freedesktop.org Cc: Paulo Zanoni , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org QXRtIEhQRCBkaXNjb25uZWN0IGV2ZW50cyBvbiBUeXBlQyBwb3J0cyB3aWxsIGJyZWFrIHRoaW5n cywgc2luY2Ugd2UnbGwKc3dpdGNoIHRoZSBUeXBlQyBtb2RlIChiZXR3ZWVuIExlZ2FjeSBhbmQg ZGlzY29ubmVjdGVkIG1vZGVzIGFzIHdlbGwgYXMKYW1vbmcgVVNCIERQIGFsdGVybmF0ZSwgVGh1 bmRlcmJvbHQgYWx0ZXJuYXRlIGFuZCBkaXNjb25uZWN0ZWQgbW9kZXMpIG9uCnRoZSBmbHkgZnJv bSB0aGUgSFBEIGRpc2Nvbm5lY3QgaW50ZXJydXB0IHdvcmsgd2hpbGUgdGhlIHBvcnQgbWF5IGJl CnN0aWxsIGFjdGl2ZS4KCkV2ZW4gaWYgdGhlIHBvcnQgaGFwcGVucyB0byBiZSBub3QgYWN0aXZl IGR1cmluZyB0aGUgZGlzY29ubmVjdCB3ZSdkCnN0aWxsIGhhdmUgYSBwcm9ibGVtIGR1cmluZyBh IHN1YnNlcXVlbnQgbW9kZXNldCBvciBBVVggdHJhbnNmZXIgdGhhdApjb3VsZCBoYXBwZW4gcmVn YXJkbGVzcyBvZiB0aGUgcG9ydCdzIGNvbm5lY3RlZCBzdGF0ZS4gRm9yIGluc3RhbmNlIHRoZQpz eXN0ZW0gcmVzdW1lIGRpc3BsYXkgbW9kZSByZXN0b3JlIGNvZGUgYW5kIHVzZXJzcGFjZSBjb3Vs ZCBwZXJmb3JtIGEKbW9kZXNldCBvbiB0aGUgcG9ydCBvciB1c2Vyc3BhY2UgY291bGQgc3RhcnQg YW4gQVVYIHRyYW5zZmVyIGV2ZW4gaWYgdGhlCnBvcnQgaXMgaW4gZGlzY29ubmVjdGVkIHN0YXRl LgoKVG8gZml4IHRoaXMga2VlcCBsZWdhY3kgVHlwZUMgcG9ydHMgaW4gVHlwZUMgbGVnYWN5IG1v ZGUgd2hlbmV2ZXIgd2UncmUKbm90IHN1c3BlbmRlZC4gVGhlIGxlZ2FjeSBtb2RlIGlzIGEgc3Rh dGljIGNvbmZpZ3VyYXRpb24gYXMgb3Bwb3NlZCB0bwp0aGUgVGh1bmRlcmJvbHQgYW5kIFVTQiBE UCBhbHRlcm5hdGUgbW9kZXMgYmV0d2VlbiB3aGljaCB3ZSBjYW4gc3dpdGNoCmR5bmFtaWNhbGx5 LgoKV2UgZG9uJ3QgaGF2ZSB5ZXQgYW4gZXhwbGljaXQgd2F5IHRvIGRldGVjdCBUeXBlQyBsZWdh Y3kgcG9ydHMsIGJ1dCB3ZQpjYW4gaW1wbHkgdGhhdCBhdCBsZWFzdCBpbiBjYXNlIG9mIEhETUkg ZW5hYmxlZCBwb3J0cywgc2luY2UgSERNSSBjYW4Kb25seSBiZSBwcm92aWRlZCBpbiBsZWdhY3kg bW9kZS4gU28gbWFyayBUeXBlQyBIRE1JIGVuYWJsZWQgcG9ydHMgYXMKbGVnYWN5IGFuZCBydW4g dGhlIFR5cGVDIFBIWSBjb25uZWN0IHNlcXVlbmNlIGV4cGxpY2l0bHkgZHVyaW5nIGRyaXZlcgps b2FkaW5nIGFuZCBzeXN0ZW0gcmVzdW1lLiBUaGUgY29ubmVjdCB3aWxsIHN1Y2NlZWQgZXZlbiBp ZiB0aGUgZGlzcGxheQppcyBub3QgY29ubmVjdGVkIHRvIGJlZ2luIHdpdGggKG9yIGRpc2FwcGVh cnMgZHVyaW5nIHRoZSBzdXNwZW5kZWQKc3RhdGUpIHNpbmNlIGZvciBsZWdhY3kgcG9ydHMgdGhl IFBPUlRfVFhfREZMRVhEUFBNUyAvCkRQX1BIWV9NT0RFX1NUQVRVU19DT01QTEVURUQgZmxhZyBp cyBhbHdheXMgc2V0IChhcyBvcHBvc2VkIHRvIHRoZSBVU0IKRFAgYWx0ZXJuYXRlIG1vZGUgd2hl cmUgaXQgZ2V0cyBzZXQgb25seSB3aGVuIGEgZGlzcGxheSBpcyBjb25uZWN0ZWQpLgoKQ29ycmVz cG9uZGluZ2x5IHJ1biB0aGUgVHlwZUMgUEhZIGRpc2Nvbm5lY3Qgc2VxdWVuY2UgZHVyaW5nIHN5 c3RlbQpzdXNwZW5kIGFuZCBkcml2ZXIgdW5sb2FkaW5nLCBidXQgZGlzY29ubmVjdCBkdXJpbmcg c3VzcGVuZCBvbmx5IGZvcgpsZWdhY3kgVHlwZUMgbW9kZS4gV2Ugd2lsbCBuZWVkIHRvIGRpc2Nv bm5lY3QgZXZlbiBpbiBVU0IgRFAgYWx0ZXJuYXRlCm1vZGUgaW4gdGhlIGZ1dHVyZSwgYnV0IGF0 bSB3ZSBkb24ndCBoYXZlIGEgd2F5IHRvIHJlY29ubmVjdCB0aGUgcG9ydAppbiB0aGlzIG1vZGUg ZHVyaW5nIHJlc3VtZSBpZiB0aGUgZGlzcGxheSBkaXNhcHBlYXJzIHdoaWxlIGJlaW5nCnN1c3Bl bmRlZC4gU28gZm9yIG5vdyBwdW50IG9uIHRoaXMgY2FzZS4KCk5vdGUgdGhhdCB3ZSBkbyBub3Qg ZGlzY29ubmVjdCB0aGUgcG9ydCBkdXJpbmcgcnVudGltZSBzdXNwZW5kOyBpbgpsZWdhY3kgbW9k ZSB0aGVyZSBhcmUgbm8gc2hhcmVkIEhXIHJlc291cmNlcyAoUEhZIGxhbmVzKSB3aXRoIG90aGVy IEhXCmJsb2NrcyAoVVNCKSwgc28gbm8gbmVlZCB0byByZWxlYXNlIC8gcmVhY3F1aXJlIHRoZXNl IHJlc291cmNlcyBhcyB3aXRoClVTQiBEUCBhbHRlcm5hdGUgbW9kZS4gVGhlIG9ubHkgcmVhc29u IHRvIGRpc2Nvbm5lY3QgbGVnYWN5IHBvcnRzIGR1cmluZwpzeXN0ZW0gc3VzcGVuZCBpcyB0aGF0 IHRoZSBQT1JUX1RYX0RGTEVYRFBQTVMgLwpEUF9QSFlfTU9ERV9TVEFUVVNfQ09NUExFVEVEIGZs YWcgbXVzdCBiZSByZWNoZWNrZWQgYW5kIHRoZSBwb3J0IG11c3QgYmUKY29ubmVjdGVkIGFnYWlu IGR1cmluZyBzeXN0ZW0gcmVzdW1lLiBXZSBtYXkgYWxzbyBuZWVkIHRvIHR1cm4gdGhlIGNoZWNr CmZvciB0aGlzIGZsYWcgaW50byBhIHBvbGwsIGRlcGVuZGluZyBvbiBmdXJ0aGVyIHRlc3RzIGFu ZCBjbGFyaWZpY2F0aW9ucwp3ZSBhcmUgZXhwZWN0aW5nIGZyb20gSFcvRlcgcGVvcGxlLgoKSWYg VkJUIHNheXMgdGhhdCB0aGUgcG9ydCBwcm92aWRlcyBvbmx5IERQIGZ1bmN0aW9uYWxpdHkgdGhl biB3ZSBjYW4ndAphc3N1bWUgdGhhdCBpdCdzIGEgbGVnYWN5IHBvcnQgYXMgZm9yIEhETUkgKHNp bmNlIGl0IGNvdWxkIGFzIHdlbGwgYmUKYSBUQlQvRFAgQWx0IGNvbm5lY3RvciksIHNvIHdlJ2xs IHNvbHZlIEhQRCBoYW5kbGluZyBmb3IgdGhlIERQIGNhc2UKd2l0aCBhIGRpZmZlcmVudCBtZXRo b2QgaW4gdGhlIG5leHQgcGF0Y2guCgpFdmVudHVhbGx5IC0gaW5zdGVhZCBvZiB0aGUgYWJvdmUg bWV0aG9kIC0gd2UnbGwgZGVwZW5kIG9uIGFuIGV4cGxpY2l0CmRldGVjdGlvbiBtZXRob2QgcHJv dmlkZWQgZWl0aGVyIHZpYSBhIFZCVCBmbGFnIG9yIGEgRlcvSFcgcmVnaXN0ZXIgYm90aApmb3Ig dGhlIEhETUkgYW5kIERQIGNhc2UuCgpCdWd6aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9w Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MDcwCkJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRl c2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg5MjQKQ2M6IFBhdWxvIFphbm9uaSA8cGF1bG8u ci56YW5vbmlAaW50ZWwuY29tPgpDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KQ2M6IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50 ZWwuY29tPgpDYzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBJbXJlIERlYWsgPGltcmUuZGVha0BpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGRpLmMgfCA1NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICB8IDI5ICsrKysrKysr KysrKysrLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggfCAgNSArKyst CiAzIGZpbGVzIGNoYW5nZWQsIDc1IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGRpLmMKaW5kZXggZjNlMWQ2YTBiN2RkLi4yZTQ3ZmZhMWM5NWEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCkBAIC0zOTAxLDkgKzM5MDEsNTAgQEAgc3RhdGljIGJv b2wgaW50ZWxfZGRpX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAogCiB9CiAKK3N0YXRpYyB2b2lkIGludGVsX2RkaV9lbmNvZGVyX3N1c3BlbmQoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIpCit7CisJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGln X3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOworCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CisKKwlpbnRlbF9k cF9lbmNvZGVyX3N1c3BlbmQoZW5jb2Rlcik7CisKKwkvKgorCSAqIFRPRE86IGRpc2Nvbm5lY3Qg YWxzbyBmcm9tIFVTQiBEUCBhbHRlcm5hdGUgbW9kZSBvbmNlIHdlIGhhdmUgYQorCSAqIHdheSB0 byBoYW5kbGUgdGhlIG1vZGVzZXQgcmVzdG9yZSBpbiB0aGF0IG1vZGUgZHVyaW5nIHJlc3VtZQor CSAqIGV2ZW4gaWYgdGhlIHNpbmsgaGFzIGRpc2FwcGVhcmVkIHdoaWxlIGJlaW5nIHN1c3BlbmRl ZC4KKwkgKi8KKwlpZiAoZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0KQorCQlpY2xfdGNfcGh5X2Rp c2Nvbm5lY3QoaTkxNSwgZGlnX3BvcnQpOworfQorCitzdGF0aWMgdm9pZCBpbnRlbF9kZGlfZW5j b2Rlcl9yZXNldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmNvZGVyKQoreworCXN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KGRybV9lbmNvZGVy KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZHJtX2VuY29kZXIt PmRldik7CisKKwlpZiAoaW50ZWxfcG9ydF9pc190YyhpOTE1LCBkaWdfcG9ydC0+YmFzZS5wb3J0 KSkKKwkJaW50ZWxfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZCgmZGlnX3BvcnQtPmJhc2UpOworCisJ aW50ZWxfZHBfZW5jb2Rlcl9yZXNldChkcm1fZW5jb2Rlcik7Cit9CisKK3N0YXRpYyB2b2lkIGlu dGVsX2RkaV9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQorewor CXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KGVu Y29kZXIpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShlbmNvZGVy LT5kZXYpOworCisJaW50ZWxfZHBfZW5jb2Rlcl9mbHVzaF93b3JrKGVuY29kZXIpOworCisJaWYg KGludGVsX3BvcnRfaXNfdGMoaTkxNSwgZGlnX3BvcnQtPmJhc2UucG9ydCkpCisJCWljbF90Y19w aHlfZGlzY29ubmVjdChpOTE1LCBkaWdfcG9ydCk7CisKKwlkcm1fZW5jb2Rlcl9jbGVhbnVwKGVu Y29kZXIpOworCWtmcmVlKGRpZ19wb3J0KTsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1f ZW5jb2Rlcl9mdW5jcyBpbnRlbF9kZGlfZnVuY3MgPSB7Ci0JLnJlc2V0ID0gaW50ZWxfZHBfZW5j b2Rlcl9yZXNldCwKLQkuZGVzdHJveSA9IGludGVsX2RwX2VuY29kZXJfZGVzdHJveSwKKwkucmVz ZXQgPSBpbnRlbF9kZGlfZW5jb2Rlcl9yZXNldCwKKwkuZGVzdHJveSA9IGludGVsX2RkaV9lbmNv ZGVyX2Rlc3Ryb3ksCiB9OwogCiBzdGF0aWMgc3RydWN0IGludGVsX2Nvbm5lY3RvciAqCkBAIC00 MTk3LDcgKzQyMzgsNyBAQCB2b2lkIGludGVsX2RkaV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCiAJaW50ZWxfZW5jb2Rlci0+cG9zdF9kaXNh YmxlID0gaW50ZWxfZGRpX3Bvc3RfZGlzYWJsZTsKIAlpbnRlbF9lbmNvZGVyLT5nZXRfaHdfc3Rh dGUgPSBpbnRlbF9kZGlfZ2V0X2h3X3N0YXRlOwogCWludGVsX2VuY29kZXItPmdldF9jb25maWcg PSBpbnRlbF9kZGlfZ2V0X2NvbmZpZzsKLQlpbnRlbF9lbmNvZGVyLT5zdXNwZW5kID0gaW50ZWxf ZHBfZW5jb2Rlcl9zdXNwZW5kOworCWludGVsX2VuY29kZXItPnN1c3BlbmQgPSBpbnRlbF9kZGlf ZW5jb2Rlcl9zdXNwZW5kOwogCWludGVsX2VuY29kZXItPmdldF9wb3dlcl9kb21haW5zID0gaW50 ZWxfZGRpX2dldF9wb3dlcl9kb21haW5zOwogCWludGVsX2VuY29kZXItPnR5cGUgPSBJTlRFTF9P VVRQVVRfRERJOwogCWludGVsX2VuY29kZXItPnBvd2VyX2RvbWFpbiA9IGludGVsX3BvcnRfdG9f cG93ZXJfZG9tYWluKHBvcnQpOwpAQCAtNDI1Nyw2ICs0Mjk4LDkgQEAgdm9pZCBpbnRlbF9kZGlf aW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQog CWlmIChpbnRlbF9lbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9FRFAgJiYgaW5pdF9oZG1p KSB7CiAJCWlmICghaW50ZWxfZGRpX2luaXRfaGRtaV9jb25uZWN0b3IoaW50ZWxfZGlnX3BvcnQp KQogCQkJZ290byBlcnI7CisKKwkJaWYgKGludGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIHBvcnQp KQorCQkJaW50ZWxfZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0ID0gdHJ1ZTsKIAl9CiAKIAlpZiAo aW5pdF9sc3Bjb24pIHsKQEAgLTQyNzQsNiArNDMxOCwxMCBAQCB2b2lkIGludGVsX2RkaV9pbml0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCiAJfQog CiAJaW50ZWxfaW5mb2ZyYW1lX2luaXQoaW50ZWxfZGlnX3BvcnQpOworCisJaWYgKGludGVsX3Bv cnRfaXNfdGMoZGV2X3ByaXYsIHBvcnQpKQorCQlpbnRlbF9kaWdpdGFsX3BvcnRfY29ubmVjdGVk KGludGVsX2VuY29kZXIpOworCiAJcmV0dXJuOwogCiBlcnI6CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu YwppbmRleCAwODI1OTRiYjY1YTcuLjE5ZTQ5YWRhYjU0OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cC5jCkBAIC01MTA4LDkgKzUxMDgsNiBAQCBzdGF0aWMgdm9pZCBpY2xfdXBkYXRlX3RjX3BvcnRf dHlwZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgICAgICB0Y190eXBl X25hbWUoaW50ZWxfZGlnX3BvcnQtPnRjX3R5cGUpKTsKIH0KIAotc3RhdGljIHZvaWQgaWNsX3Rj X3BoeV9kaXNjb25uZWN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkg IHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KTsKLQogLyoKICAqIFRoaXMgZnVu Y3Rpb24gaW1wbGVtZW50cyB0aGUgZmlyc3QgcGFydCBvZiB0aGUgQ29ubmVjdCBGbG93IGRlc2Ny aWJlZCBieSBvdXIKICAqIHNwZWNpZmljYXRpb24sIEdlbjExIFR5cGVDIFByb2dyYW1taW5nIGNo YXB0ZXIuIFRoZSByZXN0IG9mIHRoZSBmbG93IChyZWFkaW5nCkBAIC01MTQ1LDYgKzUxNDIsNyBA QCBzdGF0aWMgYm9vbCBpY2xfdGNfcGh5X2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogCXZhbCA9IEk5MTVfUkVBRChQT1JUX1RYX0RGTEVYRFBQTVMpOwogCWlmICgh KHZhbCAmIERQX1BIWV9NT0RFX1NUQVRVU19DT01QTEVURUQodGNfcG9ydCkpKSB7CiAJCURSTV9E RUJVR19LTVMoIkRQIFBIWSBmb3IgVEMgcG9ydCAlZCBub3QgcmVhZHlcbiIsIHRjX3BvcnQpOwor CQlXQVJOX09OKGRpZ19wb3J0LT50Y19sZWdhY3lfcG9ydCk7CiAJCXJldHVybiBmYWxzZTsKIAl9 CiAKQEAgLTUxNzYsOCArNTE3NCw4IEBAIHN0YXRpYyBib29sIGljbF90Y19waHlfY29ubmVjdChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAgKiBTZWUgdGhlIGNvbW1lbnQgYXQg dGhlIGNvbm5lY3QgZnVuY3Rpb24uIFRoaXMgaW1wbGVtZW50cyB0aGUgRGlzY29ubmVjdAogICog Rmxvdy4KICAqLwotc3RhdGljIHZvaWQgaWNsX3RjX3BoeV9kaXNjb25uZWN0KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkgIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KmRpZ19wb3J0KQordm9pZCBpY2xfdGNfcGh5X2Rpc2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAorCQkJICAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3Bv cnQpCiB7CiAJZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRlbF9wb3J0X3RvX3RjKGRldl9wcml2 LCBkaWdfcG9ydC0+YmFzZS5wb3J0KTsKIApAQCAtNTIyMiw3ICs1MjIwLDggQEAgc3RhdGljIGJv b2wgaWNsX3RjX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAlib29sIGlzX2xlZ2FjeSwgaXNfdHlwZWMsIGlzX3RidDsKIAl1MzIgZHBzcDsKIAotCWlz X2xlZ2FjeSA9IEk5MTVfUkVBRChTREVJU1IpICYgU0RFX1RDX0hPVFBMVUdfSUNQKHRjX3BvcnQp OworCWlzX2xlZ2FjeSA9IGludGVsX2RpZ19wb3J0LT50Y19sZWdhY3lfcG9ydCB8fAorCQlJOTE1 X1JFQUQoU0RFSVNSKSAmIFNERV9UQ19IT1RQTFVHX0lDUCh0Y19wb3J0KTsKIAogCS8qCiAJICog VGhlIHNwZWMgc2F5cyB3ZSBzaG91bGRuJ3QgYmUgdXNpbmcgdGhlIElTUiBiaXRzIGZvciBkZXRl Y3RpbmcKQEAgLTUyMzMsNyArNTIzMiwxNCBAQCBzdGF0aWMgYm9vbCBpY2xfdGNfcG9ydF9jb25u ZWN0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWlzX3RidCA9IGRwc3Ag JiBUQ19MSVZFX1NUQVRFX1RCVCh0Y19wb3J0KTsKIAogCWlmICghaXNfbGVnYWN5ICYmICFpc190 eXBlYyAmJiAhaXNfdGJ0KSB7Ci0JCWljbF90Y19waHlfZGlzY29ubmVjdChkZXZfcHJpdiwgaW50 ZWxfZGlnX3BvcnQpOworCQkvKgorCQkgKiBXZSBkaXNjb25uZWN0IGZyb20gbGVnYWN5IG1vZGUg b25seSBkdXJpbmcgc3lzdGVtCisJCSAqIHN1c3BlbmQgYW5kIGRyaXZlciB1bmxvYWRpbmcsIG90 aGVyd2lzZSB3ZSBrZWVwIHRoZSBwb3J0IGluCisJCSAqIGxlZ2FjeSBtb2RlIGV2ZW4gYWZ0ZXIg YW4gSFBEIGRpc2Nvbm5lY3QgZXZlbnQuCisJCSAqLworCQlpZiAoaW50ZWxfZGlnX3BvcnQtPnRj X3R5cGUgIT0gVENfUE9SVF9MRUdBQ1kpCisJCQlpY2xfdGNfcGh5X2Rpc2Nvbm5lY3QoZGV2X3By aXYsIGludGVsX2RpZ19wb3J0KTsKKwogCQlyZXR1cm4gZmFsc2U7CiAJfQogCkBAIC01NTQyLDcg KzU1NDgsNyBAQCBpbnRlbF9kcF9jb25uZWN0b3JfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yKQogCWludGVsX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyKGNvbm5lY3Rvcik7 CiB9CiAKLXZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9kZXN0cm95KHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlcikKK3ZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9mbHVzaF93b3JrKHN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2RlcikKIHsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdf cG9ydCA9IGVuY190b19kaWdfcG9ydChlbmNvZGVyKTsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwID0gJmludGVsX2RpZ19wb3J0LT5kcDsKQEAgLTU1NjUsOSArNTU3MSwxNCBAQCB2b2lkIGlu dGVsX2RwX2VuY29kZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAJfQog CiAJaW50ZWxfZHBfYXV4X2ZpbmkoaW50ZWxfZHApOworfQorCitzdGF0aWMgdm9pZCBpbnRlbF9k cF9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQoreworCWludGVs X2RwX2VuY29kZXJfZmx1c2hfd29yayhlbmNvZGVyKTsKIAogCWRybV9lbmNvZGVyX2NsZWFudXAo ZW5jb2Rlcik7Ci0Ja2ZyZWUoaW50ZWxfZGlnX3BvcnQpOworCWtmcmVlKGVuY190b19kaWdfcG9y dChlbmNvZGVyKSk7CiB9CiAKIHZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9zdXNwZW5kKHN0cnVjdCBp bnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRl eCBkMDhmMDhmNjA3ZGQuLjk3YzQyMmJlYTdmYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK QEAgLTEyMzQsNiArMTIzNCw3IEBAIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgewogCS8qIFVz ZWQgZm9yIERQIGFuZCBJQ0wrIFR5cGVDL0RQIGFuZCBUeXBlQy9IRE1JIHBvcnRzLiAqLwogCWVu dW0gYXV4X2NoIGF1eF9jaDsKIAllbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRkaV9p b19wb3dlcl9kb21haW47CisJYm9vbCB0Y19sZWdhY3lfcG9ydDoxOwogCWVudW0gdGNfcG9ydF90 eXBlIHRjX3R5cGU7CiAKIAl2b2lkICgqd3JpdGVfaW5mb2ZyYW1lKShzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKQEAgLTE4MDYsNyArMTgwNyw3IEBAIHZvaWQgaW50ZWxfZHBfc2lua19z ZXRfZGVjb21wcmVzc2lvbl9zdGF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCQkJCQkg ICBib29sIGVuYWJsZSk7CiB2b2lkIGludGVsX2RwX2VuY29kZXJfcmVzZXQoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyKTsKIHZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9zdXNwZW5kKHN0cnVjdCBp bnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKTsKLXZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9kZXN0 cm95KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Cit2b2lkIGludGVsX2RwX2VuY29kZXJf Zmx1c2hfd29yayhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwogYm9vbCBpbnRlbF9kcF9j b21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgICAgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCQkJICAgICBzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSk7CkBAIC0xODc0LDYgKzE4NzUsOCBAQCBib29sIGlu dGVsX2RwX3JlYWRfZHBjZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKIGludCBpbnRlbF9k cF9saW5rX3JlcXVpcmVkKGludCBwaXhlbF9jbG9jaywgaW50IGJwcCk7CiBpbnQgaW50ZWxfZHBf bWF4X2RhdGFfcmF0ZShpbnQgbWF4X2xpbmtfY2xvY2ssIGludCBtYXhfbGFuZXMpOwogYm9vbCBp bnRlbF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy KTsKK3ZvaWQgaWNsX3RjX3BoeV9kaXNjb25uZWN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKKwkJCSAgIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KTsKIAog LyogaW50ZWxfZHBfYXV4X2JhY2tsaWdodC5jICovCiBpbnQgaW50ZWxfZHBfYXV4X2luaXRfYmFj a2xpZ2h0X2Z1bmNzKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3Rvcik7Ci0t IAoyLjEzLjIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=