From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v2 3/4] drm/i915/icl: Fix HPD handling for TypeC legacy ports Date: Fri, 14 Dec 2018 20:27:02 +0200 Message-ID: <20181214182703.18865-4-imre.deak@intel.com> References: <20181214182703.18865-1-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 51EDB6F646 for ; Fri, 14 Dec 2018 18:27:13 +0000 (UTC) In-Reply-To: <20181214182703.18865-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 cywgc2luY2Ugd2UnbGwKc3dpdGNoIHRoZSBUeXBlQyBtb2RlIChiZXR3ZWVuIGxlZ2FjeSBhbmQg ZGlzY29ubmVjdGVkIG1vZGVzIGFzIHdlbGwgYXMKYW1vbmcgVVNCIERQIGFsdGVybmF0ZSwgVGh1 bmRlcmJvbHQgYWx0ZXJuYXRlIGFuZCBkaXNjb25uZWN0ZWQgbW9kZXMpIG9uCnRoZSBmbHkgZnJv bSB0aGUgSFBEIGRpc2Nvbm5lY3QgaW50ZXJydXB0IHdvcmsgd2hpbGUgdGhlIHBvcnQgbWF5IGJl CnN0aWxsIGFjdGl2ZS4KCkV2ZW4gaWYgdGhlIHBvcnQgaGFwcGVucyB0byBiZSBub3QgYWN0aXZl IGR1cmluZyB0aGUgZGlzY29ubmVjdCB3ZSdkCnN0aWxsIGhhdmUgYSBwcm9ibGVtIGR1cmluZyBh IHN1YnNlcXVlbnQgbW9kZXNldCBvciBBVVggdHJhbnNmZXIgdGhhdApjb3VsZCBoYXBwZW4gcmVn YXJkbGVzcyBvZiB0aGUgcG9ydCdzIGNvbm5lY3RlZCBzdGF0ZS4gRm9yIGluc3RhbmNlIHRoZQpz eXN0ZW0gcmVzdW1lIGRpc3BsYXkgbW9kZSByZXN0b3JlIGNvZGUgYW5kIHVzZXJzcGFjZSBjb3Vs ZCBwZXJmb3JtIGEKbW9kZXNldCBvbiB0aGUgcG9ydCBvciB1c2Vyc3BhY2UgY291bGQgc3RhcnQg YW4gQVVYIHRyYW5zZmVyIGV2ZW4gaWYgdGhlCnBvcnQgaXMgaW4gZGlzY29ubmVjdGVkIHN0YXRl LgoKVG8gZml4IHRoaXMga2VlcCBUeXBlQyBsZWdhY3kgcG9ydHMgaW4gbGVnYWN5IG1vZGUgd2hl bmV2ZXIgd2UncmUgbm90CnN1c3BlbmRlZC4gVGhpcyBtb2RlIGlzIGEgc3RhdGljIGNvbmZpZ3Vy YXRpb24gYXMgb3Bwb3NlZCB0byB0aGUKVGh1bmRlcmJvbHQgYW5kIFVTQiBEUCBhbHRlcm5hdGUg bW9kZXMgYmV0d2VlbiB3aGljaCB3ZSBjYW4gc3dpdGNoCmR5bmFtaWNhbGx5LgoKV2UgZGV0ZXJt aW5lIGlmIGEgVHlwZUMgcG9ydCBpcyBsZWdhY3kgKHdpcmVkIHRvIGEgbGVnYWN5IEhETUkgb3Ig YQpsZWdhY3kgRFAgY29ubmVjdG9yKSB2aWEgdGhlIFZCVCBEREkgcG9ydCBzcGVjaWZpYyBVU0It VHlwZUMgYW5kClRodW5kZXJib2x0IGZsYWdzLiBJZiBib3RoIHRoZXNlIGZsYWdzIGFyZSBjbGVh cmVkIHRoZW4gdGhlIHBvcnQgaXMKY29uZmlndXJlZCBmb3IgbGVnYWN5IG1vZGUuCgpPbiBzdWNo IGxlZ2FjeSBwb3J0cyB3ZSdsbCBydW4gdGhlIFR5cGVDIFBIWSBjb25uZWN0IHNlcXVlbmNlIGV4 cGxpY2l0bHkKZHVyaW5nIGRyaXZlciBsb2FkaW5nIGFuZCBzeXN0ZW0gcmVzdW1lICh2cy4gcnVu bmluZyB0aGUgc2VxdWVuY2UgZHVyaW5nCkhQRCBwcm9jZXNzaW5nKS4gVGhlIGNvbm5lY3Qgd2ls bCBzdWNjZWVkIGV2ZW4gaWYgdGhlIGRpc3BsYXkgaXMgbm90CmNvbm5lY3RlZCB0byBiZWdpbiB3 aXRoIChvciBkaXNhcHBlYXJzIGR1cmluZyB0aGUgc3VzcGVuZGVkIHN0YXRlKSBzaW5jZQpmb3Ig bGVnYWN5IHBvcnRzIHRoZSBQT1JUX1RYX0RGTEVYRFBQTVMgLyBEUF9QSFlfTU9ERV9TVEFUVVNf Q09NUExFVEVECmZsYWcgaXMgYWx3YXlzIHNldCAoYXMgb3Bwb3NlZCB0byB0aGUgVVNCIERQIGFs dGVybmF0ZSBtb2RlIHdoZXJlIGl0CmdldHMgc2V0IG9ubHkgd2hlbiBhIGRpc3BsYXkgaXMgY29u bmVjdGVkKS4KCkNvcnJlc3BvbmRpbmdseSBydW4gdGhlIFR5cGVDIFBIWSBkaXNjb25uZWN0IHNl cXVlbmNlIGR1cmluZyBzeXN0ZW0Kc3VzcGVuZCBhbmQgZHJpdmVyIHVubG9hZGluZy4gRm9yIHRo ZSB1bmxvYWRpbmcgY2FzZSBJIGhhZCB0byBzcGxpdAp1cCBpbnRlbF9kcF9lbmNvZGVyX2Rlc3Ry b3koKSB0byBiZSBhYmxlIHRvIGhhdmUgdGhlIDEuIGZsdXNoIGFueQpwZW5kaW5nIGVuY29kZXIg d29yaywgMi4gZGlzY29ubmVjdCBUQyBQSFksIDMuIGNhbGwgRFJNIGNvcmUgY2xlYW51cCBhbmQK a2ZyZWUgb24gdGhlIGVuY29kZXIgb2JqZWN0LgoKRm9yIG5vdyBydW4gdGhlIFBIWSBkaXNjb25u ZWN0IGR1cmluZyBzdXNwZW5kIG9ubHkgZm9yIFR5cGVDIGxlZ2FjeQpwb3J0cy4gV2Ugd2lsbCBu ZWVkIHRvIGRpc2Nvbm5lY3QgZXZlbiBpbiBVU0IgRFAgYWx0ZXJuYXRlIG1vZGUgaW4gdGhlCmZ1 dHVyZSwgYnV0IGF0bSB3ZSBkb24ndCBoYXZlIGEgd2F5IHRvIHJlY29ubmVjdCB0aGUgcG9ydCBp biB0aGlzIG1vZGUKZHVyaW5nIHJlc3VtZSBpZiB0aGUgZGlzcGxheSBkaXNhcHBlYXJzIHdoaWxl IGJlaW5nIHN1c3BlbmRlZC4gU28gZm9yCm5vdyBwdW50IG9uIHRoaXMgY2FzZS4KCk5vdGUgdGhh dCB3ZSBkbyBub3QgZGlzY29ubmVjdCB0aGUgcG9ydCBkdXJpbmcgcnVudGltZSBzdXNwZW5kOyBp bgpsZWdhY3kgbW9kZSB0aGVyZSBhcmUgbm8gc2hhcmVkIEhXIHJlc291cmNlcyAoUEhZIGxhbmVz KSB3aXRoIG90aGVyIEhXCmJsb2NrcyAoVVNCKSwgc28gbm8gbmVlZCB0byByZWxlYXNlIC8gcmVh Y3F1aXJlIHRoZXNlIHJlc291cmNlcyBhcyB3aXRoClVTQiBEUCBhbHRlcm5hdGUgbW9kZS4gVGhl IG9ubHkgcmVhc29uIHRvIGRpc2Nvbm5lY3QgbGVnYWN5IHBvcnRzIGR1cmluZwpzeXN0ZW0gc3Vz cGVuZCBpcyB0aGF0IHRoZSBQT1JUX1RYX0RGTEVYRFBQTVMgLwpEUF9QSFlfTU9ERV9TVEFUVVNf Q09NUExFVEVEIGZsYWcgbXVzdCBiZSByZWNoZWNrZWQgYW5kIHRoZSBwb3J0IG11c3QgYmUKY29u bmVjdGVkIGFnYWluIGR1cmluZyBzeXN0ZW0gcmVzdW1lLiBXZSdsbCBhbHNvIGhhdmUgdG8gdHVy biB0aGUgY2hlY2sKZm9yIHRoaXMgZmxhZyBpbnRvIGEgcG9sbCwgYWZ0ZXIgZmlndXJpbmcgb3V0 IHdoYXQncyB0aGUgcHJvcGVyIHRpbWVvdXQKdmFsdWUgZm9yIGl0LgoKdjI6Ci0gUmVtb3ZlIHRo ZSByZWR1bmRhbnQgc3BlY2lhbCBjYXNpbmcgb2YgbGVnYWN5IG1vZGUgd2hlbiBkb2luZyBhCiAg ZGlzY29ubmVjdCBpbiBpY2xfdGNfcG9ydF9jb25uZWN0ZWQoKS4gSXQncyBndWFyYW50ZWVkIGFs cmVhZHkgdGhhdCB3ZQogIHdvbid0IGRpc2Nvbm5lY3QgbGVnYWN5IHBvcnRzIGluIHRoYXQgZnVu Y3Rpb24uCi0gQWRkIGEgbm90ZSBhYm91dCB0aGUgbmV3IGludGVsX2RkaV9lbmNvZGVyX2Rlc3Ry b3koKSBob29rLgotIFJld29yZCB0aGUgY29tbWl0IG1lc3NhZ2UgYWZ0ZXIgc3dpdGNoaW5nIHRv IHRoZSBWQlQgYmFzZWQgZGV0ZWN0aW9uLgoKQnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVz a3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODA3MApCdWd6aWxsYTogaHR0cHM6Ly9idWdzLmZy ZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4OTI0CkNjOiBQYXVsbyBaYW5vbmkgPHBh dWxvLnIuemFub25pQGludGVsLmNvbT4KQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFs YUBsaW51eC5pbnRlbC5jb20+CkNjOiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXph QGludGVsLmNvbT4KQ2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KU2ln bmVkLW9mZi1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIHwgNjMgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgfCAyMSArKysr KysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggfCAgNSArKystCiAz IGZpbGVzIGNoYW5nZWQsIDczIGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMKaW5kZXggZjNlMWQ2YTBiN2RkLi4yOTVkNzVjNTA2ODggMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RkaS5jCkBAIC0zOTAxLDkgKzM5MDEsNTAgQEAgc3RhdGljIGJvb2wg aW50ZWxfZGRpX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAog CiB9CiAKK3N0YXRpYyB2b2lkIGludGVsX2RkaV9lbmNvZGVyX3N1c3BlbmQoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIpCit7CisJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3Bv cnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOworCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CisKKwlpbnRlbF9kcF9l bmNvZGVyX3N1c3BlbmQoZW5jb2Rlcik7CisKKwkvKgorCSAqIFRPRE86IGRpc2Nvbm5lY3QgYWxz byBmcm9tIFVTQiBEUCBhbHRlcm5hdGUgbW9kZSBvbmNlIHdlIGhhdmUgYQorCSAqIHdheSB0byBo YW5kbGUgdGhlIG1vZGVzZXQgcmVzdG9yZSBpbiB0aGF0IG1vZGUgZHVyaW5nIHJlc3VtZQorCSAq IGV2ZW4gaWYgdGhlIHNpbmsgaGFzIGRpc2FwcGVhcmVkIHdoaWxlIGJlaW5nIHN1c3BlbmRlZC4K KwkgKi8KKwlpZiAoZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0KQorCQlpY2xfdGNfcGh5X2Rpc2Nv bm5lY3QoaTkxNSwgZGlnX3BvcnQpOworfQorCitzdGF0aWMgdm9pZCBpbnRlbF9kZGlfZW5jb2Rl cl9yZXNldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmNvZGVyKQoreworCXN0cnVjdCBpbnRl bF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KGRybV9lbmNvZGVyKTsK KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZHJtX2VuY29kZXItPmRl dik7CisKKwlpZiAoaW50ZWxfcG9ydF9pc190YyhpOTE1LCBkaWdfcG9ydC0+YmFzZS5wb3J0KSkK KwkJaW50ZWxfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZCgmZGlnX3BvcnQtPmJhc2UpOworCisJaW50 ZWxfZHBfZW5jb2Rlcl9yZXNldChkcm1fZW5jb2Rlcik7Cit9CisKK3N0YXRpYyB2b2lkIGludGVs X2RkaV9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQoreworCXN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KGVuY29k ZXIpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShlbmNvZGVyLT5k ZXYpOworCisJaW50ZWxfZHBfZW5jb2Rlcl9mbHVzaF93b3JrKGVuY29kZXIpOworCisJaWYgKGlu dGVsX3BvcnRfaXNfdGMoaTkxNSwgZGlnX3BvcnQtPmJhc2UucG9ydCkpCisJCWljbF90Y19waHlf ZGlzY29ubmVjdChpOTE1LCBkaWdfcG9ydCk7CisKKwlkcm1fZW5jb2Rlcl9jbGVhbnVwKGVuY29k ZXIpOworCWtmcmVlKGRpZ19wb3J0KTsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZW5j b2Rlcl9mdW5jcyBpbnRlbF9kZGlfZnVuY3MgPSB7Ci0JLnJlc2V0ID0gaW50ZWxfZHBfZW5jb2Rl cl9yZXNldCwKLQkuZGVzdHJveSA9IGludGVsX2RwX2VuY29kZXJfZGVzdHJveSwKKwkucmVzZXQg PSBpbnRlbF9kZGlfZW5jb2Rlcl9yZXNldCwKKwkuZGVzdHJveSA9IGludGVsX2RkaV9lbmNvZGVy X2Rlc3Ryb3ksCiB9OwogCiBzdGF0aWMgc3RydWN0IGludGVsX2Nvbm5lY3RvciAqCkBAIC00MTQ3 LDE2ICs0MTg4LDE2IEBAIGludGVsX2RkaV9tYXhfbGFuZXMoc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqaW50ZWxfZHBvcnQpCiAKIHZvaWQgaW50ZWxfZGRpX2luaXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCkKIHsKKwlzdHJ1Y3QgZGRpX3ZidF9w b3J0X2luZm8gKnBvcnRfaW5mbyA9CisJCSZkZXZfcHJpdi0+dmJ0LmRkaV9wb3J0X2luZm9bcG9y dF07CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQ7CiAJc3RydWN0 IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXI7CiAJc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyOwogCWJvb2wgaW5pdF9oZG1pLCBpbml0X2RwLCBpbml0X2xzcGNvbiA9IGZhbHNlOwogCWVu dW0gcGlwZSBwaXBlOwogCi0KLQlpbml0X2hkbWkgPSAoZGV2X3ByaXYtPnZidC5kZGlfcG9ydF9p bmZvW3BvcnRdLnN1cHBvcnRzX2R2aSB8fAotCQkgICAgIGRldl9wcml2LT52YnQuZGRpX3BvcnRf aW5mb1twb3J0XS5zdXBwb3J0c19oZG1pKTsKLQlpbml0X2RwID0gZGV2X3ByaXYtPnZidC5kZGlf cG9ydF9pbmZvW3BvcnRdLnN1cHBvcnRzX2RwOworCWluaXRfaGRtaSA9IHBvcnRfaW5mby0+c3Vw cG9ydHNfZHZpIHx8IHBvcnRfaW5mby0+c3VwcG9ydHNfaGRtaTsKKwlpbml0X2RwID0gcG9ydF9p bmZvLT5zdXBwb3J0c19kcDsKIAogCWlmIChpbnRlbF9iaW9zX2lzX2xzcGNvbl9wcmVzZW50KGRl dl9wcml2LCBwb3J0KSkgewogCQkvKgpAQCAtNDE5Nyw3ICs0MjM4LDcgQEAgdm9pZCBpbnRlbF9k ZGlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0 KQogCWludGVsX2VuY29kZXItPnBvc3RfZGlzYWJsZSA9IGludGVsX2RkaV9wb3N0X2Rpc2FibGU7 CiAJaW50ZWxfZW5jb2Rlci0+Z2V0X2h3X3N0YXRlID0gaW50ZWxfZGRpX2dldF9od19zdGF0ZTsK IAlpbnRlbF9lbmNvZGVyLT5nZXRfY29uZmlnID0gaW50ZWxfZGRpX2dldF9jb25maWc7Ci0JaW50 ZWxfZW5jb2Rlci0+c3VzcGVuZCA9IGludGVsX2RwX2VuY29kZXJfc3VzcGVuZDsKKwlpbnRlbF9l bmNvZGVyLT5zdXNwZW5kID0gaW50ZWxfZGRpX2VuY29kZXJfc3VzcGVuZDsKIAlpbnRlbF9lbmNv ZGVyLT5nZXRfcG93ZXJfZG9tYWlucyA9IGludGVsX2RkaV9nZXRfcG93ZXJfZG9tYWluczsKIAlp bnRlbF9lbmNvZGVyLT50eXBlID0gSU5URUxfT1VUUFVUX0RESTsKIAlpbnRlbF9lbmNvZGVyLT5w b3dlcl9kb21haW4gPSBpbnRlbF9wb3J0X3RvX3Bvd2VyX2RvbWFpbihwb3J0KTsKQEAgLTQyMTYs NiArNDI1NywxMCBAQCB2b2lkIGludGVsX2RkaV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCiAJaW50ZWxfZGlnX3BvcnQtPm1heF9sYW5lcyA9 IGludGVsX2RkaV9tYXhfbGFuZXMoaW50ZWxfZGlnX3BvcnQpOwogCWludGVsX2RpZ19wb3J0LT5h dXhfY2ggPSBpbnRlbF9iaW9zX3BvcnRfYXV4X2NoKGRldl9wcml2LCBwb3J0KTsKIAorCWludGVs X2RpZ19wb3J0LT50Y19sZWdhY3lfcG9ydCA9IGludGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIHBv cnQpICYmCisJCQkJCSAhcG9ydF9pbmZvLT5zdXBwb3J0c190eXBlY191c2IgJiYKKwkJCQkJICFw b3J0X2luZm8tPnN1cHBvcnRzX3RidDsKKwogCXN3aXRjaCAocG9ydCkgewogCWNhc2UgUE9SVF9B OgogCQlpbnRlbF9kaWdfcG9ydC0+ZGRpX2lvX3Bvd2VyX2RvbWFpbiA9CkBAIC00Mjc0LDYgKzQz MTksMTAgQEAgdm9pZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsIGVudW0gcG9ydCBwb3J0KQogCX0KIAogCWludGVsX2luZm9mcmFtZV9pbml0KGludGVs X2RpZ19wb3J0KTsKKworCWlmIChpbnRlbF9wb3J0X2lzX3RjKGRldl9wcml2LCBwb3J0KSkKKwkJ aW50ZWxfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChpbnRlbF9lbmNvZGVyKTsKKwogCXJldHVybjsK IAogZXJyOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKaW5kZXggMDgyNTk0YmI2NWE3Li5iMmEzMDEy NDc4Y2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwpAQCAtNTEwOCw5ICs1MTA4LDYgQEAgc3Rh dGljIHZvaWQgaWNsX3VwZGF0ZV90Y19wb3J0X3R5cGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogCQkJICAgICAgdGNfdHlwZV9uYW1lKGludGVsX2RpZ19wb3J0LT50Y190eXBl KSk7CiB9CiAKLXN0YXRpYyB2b2lkIGljbF90Y19waHlfZGlzY29ubmVjdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpk aWdfcG9ydCk7Ci0KIC8qCiAgKiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgdGhlIGZpcnN0IHBh cnQgb2YgdGhlIENvbm5lY3QgRmxvdyBkZXNjcmliZWQgYnkgb3VyCiAgKiBzcGVjaWZpY2F0aW9u LCBHZW4xMSBUeXBlQyBQcm9ncmFtbWluZyBjaGFwdGVyLiBUaGUgcmVzdCBvZiB0aGUgZmxvdyAo cmVhZGluZwpAQCAtNTE0NSw2ICs1MTQyLDcgQEAgc3RhdGljIGJvb2wgaWNsX3RjX3BoeV9jb25u ZWN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAl2YWwgPSBJOTE1X1JFQUQo UE9SVF9UWF9ERkxFWERQUE1TKTsKIAlpZiAoISh2YWwgJiBEUF9QSFlfTU9ERV9TVEFUVVNfQ09N UExFVEVEKHRjX3BvcnQpKSkgewogCQlEUk1fREVCVUdfS01TKCJEUCBQSFkgZm9yIFRDIHBvcnQg JWQgbm90IHJlYWR5XG4iLCB0Y19wb3J0KTsKKwkJV0FSTl9PTihkaWdfcG9ydC0+dGNfbGVnYWN5 X3BvcnQpOwogCQlyZXR1cm4gZmFsc2U7CiAJfQogCkBAIC01MTc2LDggKzUxNzQsOCBAQCBzdGF0 aWMgYm9vbCBpY2xfdGNfcGh5X2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogICogU2VlIHRoZSBjb21tZW50IGF0IHRoZSBjb25uZWN0IGZ1bmN0aW9uLiBUaGlzIGlt cGxlbWVudHMgdGhlIERpc2Nvbm5lY3QKICAqIEZsb3cuCiAgKi8KLXN0YXRpYyB2b2lkIGljbF90 Y19waHlfZGlzY29ubmVjdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJ ICBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKK3ZvaWQgaWNsX3RjX3BoeV9k aXNjb25uZWN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAgIHN0cnVj dCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQogewogCWVudW0gdGNfcG9ydCB0Y19wb3J0 ID0gaW50ZWxfcG9ydF90b190YyhkZXZfcHJpdiwgZGlnX3BvcnQtPmJhc2UucG9ydCk7CiAKQEAg LTUyMjIsNyArNTIyMCw4IEBAIHN0YXRpYyBib29sIGljbF90Y19wb3J0X2Nvbm5lY3RlZChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJYm9vbCBpc19sZWdhY3ksIGlzX3R5cGVj LCBpc190YnQ7CiAJdTMyIGRwc3A7CiAKLQlpc19sZWdhY3kgPSBJOTE1X1JFQUQoU0RFSVNSKSAm IFNERV9UQ19IT1RQTFVHX0lDUCh0Y19wb3J0KTsKKwlpc19sZWdhY3kgPSBpbnRlbF9kaWdfcG9y dC0+dGNfbGVnYWN5X3BvcnQgfHwKKwkJSTkxNV9SRUFEKFNERUlTUikgJiBTREVfVENfSE9UUExV R19JQ1AodGNfcG9ydCk7CiAKIAkvKgogCSAqIFRoZSBzcGVjIHNheXMgd2Ugc2hvdWxkbid0IGJl IHVzaW5nIHRoZSBJU1IgYml0cyBmb3IgZGV0ZWN0aW5nCkBAIC01MjM0LDYgKzUyMzMsNyBAQCBz dGF0aWMgYm9vbCBpY2xfdGNfcG9ydF9jb25uZWN0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogCiAJaWYgKCFpc19sZWdhY3kgJiYgIWlzX3R5cGVjICYmICFpc190YnQpIHsK IAkJaWNsX3RjX3BoeV9kaXNjb25uZWN0KGRldl9wcml2LCBpbnRlbF9kaWdfcG9ydCk7CisKIAkJ cmV0dXJuIGZhbHNlOwogCX0KIApAQCAtNTU0Miw3ICs1NTQyLDcgQEAgaW50ZWxfZHBfY29ubmVj dG9yX3VucmVnaXN0ZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAlpbnRlbF9j b25uZWN0b3JfdW5yZWdpc3Rlcihjb25uZWN0b3IpOwogfQogCi12b2lkIGludGVsX2RwX2VuY29k ZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCit2b2lkIGludGVsX2RwX2Vu Y29kZXJfZmx1c2hfd29yayhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiB7CiAJc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoZW5j b2Rlcik7CiAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9ICZpbnRlbF9kaWdfcG9ydC0+ZHA7 CkBAIC01NTY1LDkgKzU1NjUsMTQgQEAgdm9pZCBpbnRlbF9kcF9lbmNvZGVyX2Rlc3Ryb3koc3Ry dWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogCX0KIAogCWludGVsX2RwX2F1eF9maW5pKGludGVs X2RwKTsKK30KKworc3RhdGljIHZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9kZXN0cm95KHN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlcikKK3sKKwlpbnRlbF9kcF9lbmNvZGVyX2ZsdXNoX3dvcmsoZW5j b2Rlcik7CiAKIAlkcm1fZW5jb2Rlcl9jbGVhbnVwKGVuY29kZXIpOwotCWtmcmVlKGludGVsX2Rp Z19wb3J0KTsKKwlrZnJlZShlbmNfdG9fZGlnX3BvcnQoZW5jb2RlcikpOwogfQogCiB2b2lkIGlu dGVsX2RwX2VuY29kZXJfc3VzcGVuZChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2Rl cikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggZDA4ZjA4ZjYwN2RkLi45N2M0MjJiZWE3 ZmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0xMjM0LDYgKzEyMzQsNyBAQCBzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0IHsKIAkvKiBVc2VkIGZvciBEUCBhbmQgSUNMKyBUeXBlQy9E UCBhbmQgVHlwZUMvSERNSSBwb3J0cy4gKi8KIAllbnVtIGF1eF9jaCBhdXhfY2g7CiAJZW51bSBp bnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkZGlfaW9fcG93ZXJfZG9tYWluOworCWJvb2wgdGNf bGVnYWN5X3BvcnQ6MTsKIAllbnVtIHRjX3BvcnRfdHlwZSB0Y190eXBlOwogCiAJdm9pZCAoKndy aXRlX2luZm9mcmFtZSkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCkBAIC0xODA2LDcg KzE4MDcsNyBAQCB2b2lkIGludGVsX2RwX3Npbmtfc2V0X2RlY29tcHJlc3Npb25fc3RhdGUoc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCwKIAkJCQkJICAgYm9vbCBlbmFibGUpOwogdm9pZCBpbnRl bF9kcF9lbmNvZGVyX3Jlc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7CiB2b2lkIGlu dGVsX2RwX2VuY29kZXJfc3VzcGVuZChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2Rl cik7Ci12b2lkIGludGVsX2RwX2VuY29kZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIpOwordm9pZCBpbnRlbF9kcF9lbmNvZGVyX2ZsdXNoX3dvcmsoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyKTsKIGJvb2wgaW50ZWxfZHBfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCiAJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBl X2NvbmZpZywKIAkJCSAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUp OwpAQCAtMTg3NCw2ICsxODc1LDggQEAgYm9vbCBpbnRlbF9kcF9yZWFkX2RwY2Qoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCk7CiBpbnQgaW50ZWxfZHBfbGlua19yZXF1aXJlZChpbnQgcGl4ZWxf Y2xvY2ssIGludCBicHApOwogaW50IGludGVsX2RwX21heF9kYXRhX3JhdGUoaW50IG1heF9saW5r X2Nsb2NrLCBpbnQgbWF4X2xhbmVzKTsKIGJvb2wgaW50ZWxfZGlnaXRhbF9wb3J0X2Nvbm5lY3Rl ZChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7Cit2b2lkIGljbF90Y19waHlfZGlzY29u bmVjdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkgICBzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCk7CiAKIC8qIGludGVsX2RwX2F1eF9iYWNrbGlnaHQu YyAqLwogaW50IGludGVsX2RwX2F1eF9pbml0X2JhY2tsaWdodF9mdW5jcyhzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IpOwotLSAKMi4xMy4yCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK