From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v3 19/23] drm/i915/icl: Reserve all required PLLs for TypeC ports Date: Fri, 28 Jun 2019 17:36:31 +0300 Message-ID: <20190628143635.22066-20-imre.deak@intel.com> References: <20190628143635.22066-1-imre.deak@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 37B2B6E940 for ; Fri, 28 Jun 2019 14:37:20 +0000 (UTC) In-Reply-To: <20190628143635.22066-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: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org V2hlbiBlbmFibGluZyBhIFR5cGVDIHBvcnQgd2UgbmVlZCB0byByZXNlcnZlIGFsbCB0aGUgcmVx dWlyZWQgUExMcyBmb3IKaXQsIHRoZSBUQlQgUExMIGZvciBUQlQtYWx0IGFuZCB0aGUgTUcgUEhZ IFBMTCBmb3IgRFAtYWx0L2xlZ2FjeSBzaW5rcy4KV2UgY2FuIHNlbGVjdCB0aGUgcHJvcGVyIFBM TCBmb3IgdGhlIGN1cnJlbnQgcG9ydCBtb2RlIGZyb20gdGhlIHJlc2VydmVkClBMTHMgb25seSBv bmNlIHdlIHNlbGVjdGVkIGFuZCBsb2NrZWQgZG93biB0aGUgcG9ydCBtb2RlIGZvciB0aGUgd2hv bGUKZHVyYXRpb24gb2YgdGhlIHBvcnQncyBhY3RpdmUgc3RhdGUuIFJlc2V0dGluZyBhbmQgbG9j a2luZyBkb3duIHRoZSBwb3J0Cm1vZGUgY2FuIGluIHR1cm4gaGFwcGVuIG9ubHkgZHVyaW5nIHRo ZSBtb2Rlc2V0IGNvbW1pdCBwaGFzZSBvbmNlIHdlCmRpc2FibGVkIHRoZSBnaXZlbiBwb3J0IGFu ZCB0aGUgUExMIGl0IHVzZWQuCgpUbyBzdXBwb3J0IHRoZSBhYm92ZSByZXNlcnZlLWFuZC1zZWxl Y3QgUExMIHNlbWFudGljIHdlIHN0b3JlIHRoZQpyZXNlcnZlZCBQTExzIGFsb25nIHdpdGggdGhl aXIgSFcgc3RhdGUgaW4gdGhlIENSVEMgc3RhdGUgYW5kIHByb3ZpZGUgYQp3YXkgdG8gc2VsZWN0 IHRoZSBhY3RpdmUgUExMIGZyb20gdGhlc2UuIFRoZSBzZWxlY3RlZCBQTEwgYWxvbmcgd2l0aCBp dHMKSFcgc3RhdGUgd2lsbCBiZSBwb2ludGVkIGF0IGJ5IGNydGNfc3RhdGUtPnNoYXJlZF9kcGxs L2RwbGxfaHdfc3RhdGUgYXMKaW4gdGhlIGNhc2Ugb2Ygb3RoZXIgcG9ydCB0eXBlcy4KCkJlc2lk ZXMgcmVzZXJ2aW5nIGFsbCByZXF1aXJlZCBQTExzIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcy4KCnYy OgotIEZpeCByZWxlYXNpbmcgdGhlIElDTCBQTExzLCBub3QgY2xlYXJpbmcgdGhlIFBMTHMgZnJv bSB0aGUgb2xkCiAgY3J0Y19zdGF0ZS4KLSBJbml0IHBvcnRfZHBsbCB0byBJQ0xfUE9SVF9EUExM X0RFRkFVTFQgY2xvc2VyIHRvIHdoZXJlIHBvcnRfZHBsbCBpcwogIHVzZWQgZm9yIHN5bW1ldHJ5 IHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgSUNMX1BPUlRfRFBMTF9NR19QSFkgaW5pdC4KICAoVmls bGUpCnYzOgotIEFkZCBGSVhNRTogZm9yIGNsZWFyaW5nIHRoZSBJQ0wgcG9ydCBQTExzIGZyb20g dGhlIG5ldyBjcnRjIHN0YXRlLgoKQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNo PgpDYzogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNv bT4KU2lnbmVkLW9mZi1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgpSZXZpZXdl ZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyAgfCAgMTEgKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYyB8IDE1MyArKysr KysrKysrKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9t Z3IuaCB8ICAgOSArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICAgICAg ICAgIHwgICA5ICsrCiA0IGZpbGVzIGNoYW5nZWQsIDE0MCBpbnNlcnRpb25zKCspLCA0MiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5j CmluZGV4IGUzOGFjYjg2MGZiMS4uNzdhZjQzYWM2NGZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwpAQCAtOTk1OCw2ICs5OTU4LDcgQEAgc3RhdGlj IHZvaWQgaWNlbGFrZV9nZXRfZGRpX3BsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCiAJCQkJZW51bSBwb3J0IHBvcnQsCiAJCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBp cGVfY29uZmlnKQogeworCWVudW0gaWNsX3BvcnRfZHBsbF9pZCBwb3J0X2RwbGxfaWQ7CiAJZW51 bSBpbnRlbF9kcGxsX2lkIGlkOwogCXUzMiB0ZW1wOwogCkBAIC05OTY1LDIyICs5OTY2LDI4IEBA IHN0YXRpYyB2b2lkIGljZWxha2VfZ2V0X2RkaV9wbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogCQl0ZW1wID0gSTkxNV9SRUFEKERQQ0xLQV9DRkdDUjBfSUNMKSAmCiAJCSAg ICAgICBEUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VMX01BU0socG9ydCk7CiAJCWlkID0gdGVtcCA+ PiBEUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VMX1NISUZUKHBvcnQpOworCQlwb3J0X2RwbGxfaWQg PSBJQ0xfUE9SVF9EUExMX0RFRkFVTFQ7CiAJfSBlbHNlIGlmIChpbnRlbF9wb3J0X2lzX3RjKGRl dl9wcml2LCBwb3J0KSkgewogCQl1MzIgY2xrX3NlbCA9IEk5MTVfUkVBRChERElfQ0xLX1NFTChw b3J0KSkgJiBERElfQ0xLX1NFTF9NQVNLOwogCiAJCWlmIChjbGtfc2VsID09IERESV9DTEtfU0VM X01HKSB7CiAJCQlpZCA9IGljbF90Y19wb3J0X3RvX3BsbF9pZChpbnRlbF9wb3J0X3RvX3RjKGRl dl9wcml2LAogCQkJCQkJCQkgICAgcG9ydCkpOworCQkJcG9ydF9kcGxsX2lkID0gSUNMX1BPUlRf RFBMTF9NR19QSFk7CiAJCX0gZWxzZSB7CiAJCQlXQVJOX09OKGNsa19zZWwgPCBERElfQ0xLX1NF TF9UQlRfMTYyKTsKIAkJCWlkID0gRFBMTF9JRF9JQ0xfVEJUUExMOworCQkJcG9ydF9kcGxsX2lk ID0gSUNMX1BPUlRfRFBMTF9ERUZBVUxUOwogCQl9CiAJfSBlbHNlIHsKIAkJV0FSTigxLCAiSW52 YWxpZCBwb3J0ICV4XG4iLCBwb3J0KTsKIAkJcmV0dXJuOwogCX0KIAotCXBpcGVfY29uZmlnLT5z aGFyZWRfZHBsbCA9IGludGVsX2dldF9zaGFyZWRfZHBsbF9ieV9pZChkZXZfcHJpdiwgaWQpOwor CXBpcGVfY29uZmlnLT5pY2xfcG9ydF9kcGxsc1twb3J0X2RwbGxfaWRdLnBsbCA9CisJCWludGVs X2dldF9zaGFyZWRfZHBsbF9ieV9pZChkZXZfcHJpdiwgaWQpOworCisJaWNsX3NldF9hY3RpdmVf cG9ydF9kcGxsKHBpcGVfY29uZmlnLCBwb3J0X2RwbGxfaWQpOwogfQogCiBzdGF0aWMgdm9pZCBi eHRfZ2V0X2RkaV9wbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAtMTIx MTksNiArMTIxMjYsOCBAQCBjbGVhcl9pbnRlbF9jcnRjX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQogCXNhdmVkX3N0YXRlLT5zY2FsZXJfc3RhdGUgPSBjcnRjX3N0 YXRlLT5zY2FsZXJfc3RhdGU7CiAJc2F2ZWRfc3RhdGUtPnNoYXJlZF9kcGxsID0gY3J0Y19zdGF0 ZS0+c2hhcmVkX2RwbGw7CiAJc2F2ZWRfc3RhdGUtPmRwbGxfaHdfc3RhdGUgPSBjcnRjX3N0YXRl LT5kcGxsX2h3X3N0YXRlOworCW1lbWNweShzYXZlZF9zdGF0ZS0+aWNsX3BvcnRfZHBsbHMsIGNy dGNfc3RhdGUtPmljbF9wb3J0X2RwbGxzLAorCSAgICAgICBzaXplb2Yoc2F2ZWRfc3RhdGUtPmlj bF9wb3J0X2RwbGxzKSk7CiAJc2F2ZWRfc3RhdGUtPmNyY19lbmFibGVkID0gY3J0Y19zdGF0ZS0+ Y3JjX2VuYWJsZWQ7CiAJaWYgKElTX0c0WChkZXZfcHJpdikgfHwKIAkgICAgSVNfVkFMTEVZVklF VyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxfbWdyLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxfbWdyLmMKaW5kZXggODVjMzhlZWQ5M2E4Li5iZGM3 MTUwZGJmYWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZHBsbF9tZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxf bWdyLmMKQEAgLTI4NTYsMzQgKzI4NTYsNzkgQEAgc3RhdGljIGJvb2wgaWNsX2NhbGNfbWdfcGxs X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCXJldHVybiB0cnVl OwogfQogCisvKioKKyAqIGljbF9zZXRfYWN0aXZlX3BvcnRfZHBsbCAtIHNlbGVjdCB0aGUgYWN0 aXZlIHBvcnQgRFBMTCBmb3IgYSBnaXZlbiBDUlRDCisgKiBAY3J0Y19zdGF0ZTogc3RhdGUgZm9y IHRoZSBDUlRDIHRvIHNlbGVjdCB0aGUgRFBMTCBmb3IKKyAqIEBwb3J0X2RwbGxfaWQ6IHRoZSBh Y3RpdmUgQHBvcnRfZHBsbF9pZCB0byBzZWxlY3QKKyAqCisgKiBTZWxlY3QgdGhlIGdpdmVuIEBw b3J0X2RwbGxfaWQgaW5zdGFuY2UgZnJvbSB0aGUgRFBMTHMgcmVzZXJ2ZWQgZm9yIHRoZQorICog Q1JUQy4KKyAqLwordm9pZCBpY2xfc2V0X2FjdGl2ZV9wb3J0X2RwbGwoc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkgICAgICBlbnVtIGljbF9wb3J0X2RwbGxfaWQgcG9y dF9kcGxsX2lkKQoreworCXN0cnVjdCBpY2xfcG9ydF9kcGxsICpwb3J0X2RwbGwgPQorCQkmY3J0 Y19zdGF0ZS0+aWNsX3BvcnRfZHBsbHNbcG9ydF9kcGxsX2lkXTsKKworCWNydGNfc3RhdGUtPnNo YXJlZF9kcGxsID0gcG9ydF9kcGxsLT5wbGw7CisJY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSA9 IHBvcnRfZHBsbC0+aHdfc3RhdGU7Cit9CisKK3N0YXRpYyB2b2lkIGljbF91cGRhdGVfYWN0aXZl X2RwbGwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkJICAgc3RydWN0IGlu dGVsX2NydGMgKmNydGMsCisJCQkJICAgc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCit7 CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQorCQlpbnRlbF9hdG9taWNf Z2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9w b3J0ICpwcmltYXJ5X3BvcnQ7CisJZW51bSBpY2xfcG9ydF9kcGxsX2lkIHBvcnRfZHBsbF9pZDsK KworCXByaW1hcnlfcG9ydCA9IGVuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0RQX01TVCA/ CisJCWVuY190b19tc3QoJmVuY29kZXItPmJhc2UpLT5wcmltYXJ5IDoKKwkJZW5jX3RvX2RpZ19w b3J0KCZlbmNvZGVyLT5iYXNlKTsKKworCXN3aXRjaCAocHJpbWFyeV9wb3J0LT50Y19tb2RlKSB7 CisJY2FzZSBUQ19QT1JUX1RCVF9BTFQ6CisJCXBvcnRfZHBsbF9pZCA9IElDTF9QT1JUX0RQTExf REVGQVVMVDsKKwkJYnJlYWs7CisJY2FzZSBUQ19QT1JUX0RQX0FMVDoKKwljYXNlIFRDX1BPUlRf TEVHQUNZOgorCQlwb3J0X2RwbGxfaWQgPSBJQ0xfUE9SVF9EUExMX01HX1BIWTsKKwkJYnJlYWs7 CisJfQorCisJaWNsX3NldF9hY3RpdmVfcG9ydF9kcGxsKGNydGNfc3RhdGUsIHBvcnRfZHBsbF9p ZCk7Cit9CisKIHN0YXRpYyBib29sIGljbF9nZXRfY29tYm9fcGh5X2RwbGwoc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkJICAgc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJ CQkJICAgc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiB7CiAJc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUgPQogCQlpbnRlbF9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRl KHN0YXRlLCBjcnRjKTsKLQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsKKwlzdHJ1Y3Qg aWNsX3BvcnRfZHBsbCAqcG9ydF9kcGxsID0KKwkJJmNydGNfc3RhdGUtPmljbF9wb3J0X2RwbGxz W0lDTF9QT1JUX0RQTExfREVGQVVMVF07CiAKLQlpZiAoIWljbF9jYWxjX2RwbGxfc3RhdGUoY3J0 Y19zdGF0ZSwgZW5jb2RlciwKLQkJCQkgJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUpKSB7CisJ aWYgKCFpY2xfY2FsY19kcGxsX3N0YXRlKGNydGNfc3RhdGUsIGVuY29kZXIsICZwb3J0X2RwbGwt Pmh3X3N0YXRlKSkgewogCQlEUk1fREVCVUdfS01TKCJDb3VsZCBub3QgY2FsY3VsYXRlIGNvbWJv IFBIWSBQTEwgc3RhdGUuXG4iKTsKIAogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JcGxsID0gaW50 ZWxfZmluZF9zaGFyZWRfZHBsbChzdGF0ZSwgY3J0YywgJmNydGNfc3RhdGUtPmRwbGxfaHdfc3Rh dGUsCi0JCQkJICAgICBEUExMX0lEX0lDTF9EUExMMCwKLQkJCQkgICAgIERQTExfSURfSUNMX0RQ TEwxKTsKLQlpZiAoIXBsbCkgeworCXBvcnRfZHBsbC0+cGxsID0gaW50ZWxfZmluZF9zaGFyZWRf ZHBsbChzdGF0ZSwgY3J0YywKKwkJCQkJCSZwb3J0X2RwbGwtPmh3X3N0YXRlLAorCQkJCQkJRFBM TF9JRF9JQ0xfRFBMTDAsCisJCQkJCQlEUExMX0lEX0lDTF9EUExMMSk7CisJaWYgKCFwb3J0X2Rw bGwtPnBsbCkgewogCQlEUk1fREVCVUdfS01TKCJObyBjb21ibyBQSFkgUExMIGZvdW5kIGZvciBw b3J0ICVjXG4iLAogCQkJICAgICAgcG9ydF9uYW1lKGVuY29kZXItPnBvcnQpKTsKIAkJcmV0dXJu IGZhbHNlOwogCX0KIAogCWludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbChzdGF0ZSwgY3J0YywK LQkJCQkgICAgcGxsLCAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSk7CisJCQkJICAgIHBvcnRf ZHBsbC0+cGxsLCAmcG9ydF9kcGxsLT5od19zdGF0ZSk7CiAKLQljcnRjX3N0YXRlLT5zaGFyZWRf ZHBsbCA9IHBsbDsKKwlpY2xfdXBkYXRlX2FjdGl2ZV9kcGxsKHN0YXRlLCBjcnRjLCBlbmNvZGVy KTsKIAogCXJldHVybiB0cnVlOwogfQpAQCAtMjg5NSw0OSArMjk0MCw1NSBAQCBzdGF0aWMgYm9v bCBpY2xfZ2V0X3RjX3BoeV9kcGxscyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNl LmRldik7CiAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQogCQlpbnRlbF9h dG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKLQllbnVtIHRjX3BvcnQgdGNf cG9ydCA9IGludGVsX3BvcnRfdG9fdGMoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpOwotCXN0cnVj dCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0OwotCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBs bCAqcGxsOwotCWVudW0gaW50ZWxfZHBsbF9pZCBtaW4sIG1heDsKLQlib29sIHJldDsKLQotCWlm IChlbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9EUF9NU1QpCi0JCWRpZ19wb3J0ID0gZW5j X3RvX21zdCgmZW5jb2Rlci0+YmFzZSktPnByaW1hcnk7Ci0JZWxzZQotCQlkaWdfcG9ydCA9IGVu Y190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7CisJc3RydWN0IGljbF9wb3J0X2RwbGwgKnBv cnRfZHBsbDsKKwllbnVtIGludGVsX2RwbGxfaWQgZHBsbF9pZDsKIAotCWlmIChkaWdfcG9ydC0+ dGNfbW9kZSA9PSBUQ19QT1JUX1RCVF9BTFQpIHsKLQkJbWluID0gRFBMTF9JRF9JQ0xfVEJUUExM OwotCQltYXggPSBtaW47Ci0JCXJldCA9IGljbF9jYWxjX2RwbGxfc3RhdGUoY3J0Y19zdGF0ZSwg ZW5jb2RlciwKLQkJCQkJICAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSk7Ci0JfSBlbHNlIHsK LQkJbWluID0gaWNsX3RjX3BvcnRfdG9fcGxsX2lkKHRjX3BvcnQpOwotCQltYXggPSBtaW47Ci0J CXJldCA9IGljbF9jYWxjX21nX3BsbF9zdGF0ZShjcnRjX3N0YXRlLAotCQkJCQkgICAgJmNydGNf c3RhdGUtPmRwbGxfaHdfc3RhdGUpOworCXBvcnRfZHBsbCA9ICZjcnRjX3N0YXRlLT5pY2xfcG9y dF9kcGxsc1tJQ0xfUE9SVF9EUExMX0RFRkFVTFRdOworCWlmICghaWNsX2NhbGNfZHBsbF9zdGF0 ZShjcnRjX3N0YXRlLCBlbmNvZGVyLCAmcG9ydF9kcGxsLT5od19zdGF0ZSkpIHsKKwkJRFJNX0RF QlVHX0tNUygiQ291bGQgbm90IGNhbGN1bGF0ZSBUQlQgUExMIHN0YXRlLlxuIik7CisJCXJldHVy biBmYWxzZTsKIAl9CiAKLQlpZiAoIXJldCkgewotCQlEUk1fREVCVUdfS01TKCJDb3VsZCBub3Qg Y2FsY3VsYXRlIFBMTCBzdGF0ZS5cbiIpOworCXBvcnRfZHBsbC0+cGxsID0gaW50ZWxfZmluZF9z aGFyZWRfZHBsbChzdGF0ZSwgY3J0YywKKwkJCQkJCSZwb3J0X2RwbGwtPmh3X3N0YXRlLAorCQkJ CQkJRFBMTF9JRF9JQ0xfVEJUUExMLAorCQkJCQkJRFBMTF9JRF9JQ0xfVEJUUExMKTsKKwlpZiAo IXBvcnRfZHBsbC0+cGxsKSB7CisJCURSTV9ERUJVR19LTVMoIk5vIFRCVC1BTFQgUExMIGZvdW5k XG4iKTsKIAkJcmV0dXJuIGZhbHNlOwogCX0KKwlpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwo c3RhdGUsIGNydGMsCisJCQkJICAgIHBvcnRfZHBsbC0+cGxsLCAmcG9ydF9kcGxsLT5od19zdGF0 ZSk7CiAKIAotCXBsbCA9IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsCi0JCQkJ ICAgICAmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSwKLQkJCQkgICAgIG1pbiwgbWF4KTsKLQlp ZiAoIXBsbCkgewotCQlEUk1fREVCVUdfS01TKCJObyBQTEwgc2VsZWN0ZWRcbiIpOwotCQlyZXR1 cm4gZmFsc2U7CisJcG9ydF9kcGxsID0gJmNydGNfc3RhdGUtPmljbF9wb3J0X2RwbGxzW0lDTF9Q T1JUX0RQTExfTUdfUEhZXTsKKwlpZiAoIWljbF9jYWxjX21nX3BsbF9zdGF0ZShjcnRjX3N0YXRl LCAmcG9ydF9kcGxsLT5od19zdGF0ZSkpIHsKKwkJRFJNX0RFQlVHX0tNUygiQ291bGQgbm90IGNh bGN1bGF0ZSBNRyBQSFkgUExMIHN0YXRlLlxuIik7CisJCWdvdG8gZXJyX3VucmVmZXJlbmNlX3Ri dF9wbGw7CiAJfQogCisJZHBsbF9pZCA9IGljbF90Y19wb3J0X3RvX3BsbF9pZChpbnRlbF9wb3J0 X3RvX3RjKGRldl9wcml2LAorCQkJCQkJCSBlbmNvZGVyLT5wb3J0KSk7CisJcG9ydF9kcGxsLT5w bGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0YXRlLCBjcnRjLAorCQkJCQkJJnBvcnRfZHBs bC0+aHdfc3RhdGUsCisJCQkJCQlkcGxsX2lkLAorCQkJCQkJZHBsbF9pZCk7CisJaWYgKCFwb3J0 X2RwbGwtPnBsbCkgeworCQlEUk1fREVCVUdfS01TKCJObyBNRyBQSFkgUExMIGZvdW5kXG4iKTsK KwkJZ290byBlcnJfdW5yZWZlcmVuY2VfdGJ0X3BsbDsKKwl9CiAJaW50ZWxfcmVmZXJlbmNlX3No YXJlZF9kcGxsKHN0YXRlLCBjcnRjLAotCQkJCSAgICBwbGwsICZjcnRjX3N0YXRlLT5kcGxsX2h3 X3N0YXRlKTsKKwkJCQkgICAgcG9ydF9kcGxsLT5wbGwsICZwb3J0X2RwbGwtPmh3X3N0YXRlKTsK IAotCWNydGNfc3RhdGUtPnNoYXJlZF9kcGxsID0gcGxsOworCWljbF91cGRhdGVfYWN0aXZlX2Rw bGwoc3RhdGUsIGNydGMsIGVuY29kZXIpOwogCiAJcmV0dXJuIHRydWU7CisKK2Vycl91bnJlZmVy ZW5jZV90YnRfcGxsOgorCXBvcnRfZHBsbCA9ICZjcnRjX3N0YXRlLT5pY2xfcG9ydF9kcGxsc1tJ Q0xfUE9SVF9EUExMX0RFRkFVTFRdOworCWludGVsX3VucmVmZXJlbmNlX3NoYXJlZF9kcGxsKHN0 YXRlLCBjcnRjLCBwb3J0X2RwbGwtPnBsbCk7CisKKwlyZXR1cm4gZmFsc2U7CiB9CiAKIHN0YXRp YyBib29sIGljbF9nZXRfZHBsbHMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCkBA IC0yOTU3LDYgKzMwMDgsMjYgQEAgc3RhdGljIGJvb2wgaWNsX2dldF9kcGxscyhzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAlyZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyB2b2lk IGljbF9wdXRfZHBsbHMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkgIHN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjKQoreworCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlID0KKwkJaW50ZWxfYXRvbWljX2dldF9vbGRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7 CisJZW51bSBpY2xfcG9ydF9kcGxsX2lkIGlkOworCisJZm9yIChpZCA9IElDTF9QT1JUX0RQTExf REVGQVVMVDsgaWQgPCBJQ0xfUE9SVF9EUExMX0NPVU5UOyBpZCsrKSB7CisJCXN0cnVjdCBpY2xf cG9ydF9kcGxsICpwb3J0X2RwbGwgPQorCQkJJmNydGNfc3RhdGUtPmljbF9wb3J0X2RwbGxzW2lk XTsKKworCQlpZiAoIXBvcnRfZHBsbC0+cGxsKQorCQkJY29udGludWU7CisKKwkJaW50ZWxfdW5y ZWZlcmVuY2Vfc2hhcmVkX2RwbGwoc3RhdGUsIGNydGMsIHBvcnRfZHBsbC0+cGxsKTsKKworCQkv KiBGSVhNRTogQ2xlYXIgdGhlIGljbF9wb3J0X2RwbGxzIGZyb20gdGhlIG5ldyBjcnRjIHN0YXRl ICovCisJfQorfQorCiBzdGF0aWMgYm9vbCBtZ19wbGxfZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBs bCwKIAkJCQlzdHJ1Y3QgaW50ZWxfZHBsbF9od19zdGF0ZSAqaHdfc3RhdGUpCkBAIC0zMzMwLDcg KzM0MDEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfaW5mbyBpY2xfcGxsc1tdID0gewog c3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciBpY2xfcGxsX21nciA9IHsKIAkuZHBs bF9pbmZvID0gaWNsX3BsbHMsCiAJLmdldF9kcGxscyA9IGljbF9nZXRfZHBsbHMsCi0JLnB1dF9k cGxscyA9IGludGVsX3B1dF9kcGxsLAorCS5wdXRfZHBsbHMgPSBpY2xfcHV0X2RwbGxzLAogCS5k dW1wX2h3X3N0YXRlID0gaWNsX2R1bXBfaHdfc3RhdGUsCiB9OwogCkBAIC0zMzQzLDcgKzM0MTQs NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfaW5mbyBlaGxfcGxsc1tdID0gewogc3RhdGlj IGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciBlaGxfcGxsX21nciA9IHsKIAkuZHBsbF9pbmZv ID0gZWhsX3BsbHMsCiAJLmdldF9kcGxscyA9IGljbF9nZXRfZHBsbHMsCi0JLnB1dF9kcGxscyA9 IGludGVsX3B1dF9kcGxsLAorCS5wdXRfZHBsbHMgPSBpY2xfcHV0X2RwbGxzLAogCS5kdW1wX2h3 X3N0YXRlID0gaWNsX2R1bXBfaHdfc3RhdGUsCiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxfbWdyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2RwbGxfbWdyLmgKaW5kZXggMTZkZGFiMTM4NTc0Li41NzlmMmNlYWZi YTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9t Z3IuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxfbWdyLmgK QEAgLTE0MSw2ICsxNDEsMTMgQEAgZW51bSBpbnRlbF9kcGxsX2lkIHsKIH07CiAjZGVmaW5lIEk5 MTVfTlVNX1BMTFMgNwogCitlbnVtIGljbF9wb3J0X2RwbGxfaWQgeworCUlDTF9QT1JUX0RQTExf REVGQVVMVCwKKwlJQ0xfUE9SVF9EUExMX01HX1BIWSwKKworCUlDTF9QT1JUX0RQTExfQ09VTlQs Cit9OworCiBzdHJ1Y3QgaW50ZWxfZHBsbF9od19zdGF0ZSB7CiAJLyogaTl4eCwgcGNoIHBsbHMg Ki8KIAl1MzIgZHBsbDsKQEAgLTMzNyw2ICszNDQsOCBAQCBib29sIGludGVsX3Jlc2VydmVfc2hh cmVkX2RwbGxzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQkJCXN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyKTsKIHZvaWQgaW50ZWxfcmVsZWFzZV9zaGFyZWRfZHBsbHMo c3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkJc3RydWN0IGludGVsX2NydGMg KmNydGMpOwordm9pZCBpY2xfc2V0X2FjdGl2ZV9wb3J0X2RwbGwoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCisJCQkgICAgICBlbnVtIGljbF9wb3J0X2RwbGxfaWQgcG9ydF9k cGxsX2lkKTsKIHZvaWQgaW50ZWxfcHJlcGFyZV9zaGFyZWRfZHBsbChjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CiB2b2lkIGludGVsX2VuYWJsZV9zaGFyZWRfZHBs bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CiB2b2lkIGludGVs X2Rpc2FibGVfc2hhcmVkX2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCBkOWU3ZDAxMWVkNGEuLjEyYTEw MmUyMzljNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTgxMiw2ICs4MTIsMTUgQEAg c3RydWN0IGludGVsX2NydGNfc3RhdGUgewogCS8qIEFjdHVhbCByZWdpc3RlciBzdGF0ZSBvZiB0 aGUgZHBsbCwgZm9yIHNoYXJlZCBkcGxsIGNyb3NzLWNoZWNraW5nLiAqLwogCXN0cnVjdCBpbnRl bF9kcGxsX2h3X3N0YXRlIGRwbGxfaHdfc3RhdGU7CiAKKwkvKgorCSAqIElDTCByZXNlcnZlZCBE UExMcyBmb3IgdGhlIENSVEMvcG9ydC4gVGhlIGFjdGl2ZSBQTEwgaXMgc2VsZWN0ZWQgYnkKKwkg KiBzZXR0aW5nIHNoYXJlZF9kcGxsIGFuZCBkcGxsX2h3X3N0YXRlIHRvIG9uZSBvZiB0aGVzZSBy ZXNlcnZlZCBvbmVzLgorCSAqLworCXN0cnVjdCBpY2xfcG9ydF9kcGxsIHsKKwkJc3RydWN0IGlu dGVsX3NoYXJlZF9kcGxsICpwbGw7CisJCXN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlIGh3X3N0 YXRlOworCX0gaWNsX3BvcnRfZHBsbHNbSUNMX1BPUlRfRFBMTF9DT1VOVF07CisKIAkvKiBEU0kg UExMIHJlZ2lzdGVycyAqLwogCXN0cnVjdCB7CiAJCXUzMiBjdHJsLCBkaXY7Ci0tIAoyLjE3LjEK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==